工作流Activiti的学习总结(五) activiti的API和虚拟工作流测试
activiti的API
在activiti引擎中,你可以通过多种方式获取ProcessEngine对象,从ProcessEngine中获取各种服务对象,从而访问工作流/BPM方法。ProcessEngine和她的各种服务均为线程安全性服务。在整个项目中每一种服务仅需要保持一个引用。
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RuntimeService runtimeService = processEngine.getRuntimeService();
RepositoryService repositoryService = processEngine.getRepositoryService();
TaskService taskService = processEngine.getTaskService();
ManagementService managementService = processEngine.getManagementService();
…… …… 余下全文
工作流Activiti的学习总结(三) activit数据库限制和数据库相关的配置
数据库相关的配置:
在activiti中的持久化框架采用Ibatis3实现。有两种方式定义activiti的数据库。
1.通过jdbc.properties定义数据库相关的属性:
jdbcUrl:jdbc url连接字符串.
jdbcDriver:数据库驱动
jdbcUsername:用户名。
jdbcPassword: 用户密码
默认的MyBatis连接池设置基于jdbc.properties文件构建数据源的。以下属性为可选的连接池默认的属性:
jdbcMaxActiveConnections:在任何时间,连接池中最大的活动连接数.默认为10。 jdbcMaxIdleConnections: 连接池中最大的连接池空闲连接数。
jdbcMaxCheckoutTime: 连接池心跳检查毫秒数。默认 20000 (20秒). jdbcMaxWaitTime: This is a low level setting that gives the pool a chance to print a log status and re-attempt the acquisition of a connection in the case that it’s taking unusually long (to avoid failing silently forever if the pool is misconfigured) Default is 20000 (20 seconds).
在activiti-cfg.jar文件中配置如下:
<?xml version="1.0" encoding="UTF-8"?>
…… …… 余下全文
工作流Activiti的学习总结(六)Antiviti的安装详细过程 activiti-5.6的安装
项目中采用最新的Activiti版本为5.6GA的activiti REST方式访问相关的REST WebService服务,activiti提供了
对mysql、oracle、postgres的全面支持。demo的安装脚本比之前的版本都有了很大的优化,基本上按教程就能顺利demo,
真正达到了GA的效果了。为此我将在使用mysql的安装过程及遇到的一些小问题总结记录了下来。但是我们项目采用H2数据库
(Generic H2 Server)方式存储数据(安装成功之后在
${activiti_home}\apps\h2目下保存数据文件{activiti_db}.h2.db) 和{activiti_db}.lobs.db.
如下是在windows XP环境下使用mysql数据库的安装实录:
一)下载 activiti-5.6.zip
二)将activiti-5.6zip解压到指定目录,假设为“C:\mash_activiti-5.6”,注意下面提到的路径均是相对于该路径而言
三)检查数据库类型
…… …… 余下全文
工作流activiti自动执行任务的开发应用
工作流模拟某公司请假流程情景如下:
1.开发人员请假流程,如果开发人员请假,如果请假天数小于3天,组长批准,人事批准即可请假。
2.如果请假大约三天,需要项目经理或者产品经理批准,并且项目总监批准
模拟自动审批:
只需要启动一个流程实例,它会自动执行到结束。这种情况下,你不需要关注流
程的执行进度,而只需要把精力集中在每个结点的处理逻辑(通常是简单或者复杂的商业逻辑)上。
流程设计图如下:
流程配置文件AutoExecuteTask.bpmn20.xml如下:
<;?xml version=";1.0"; encoding=";UTF-8";?>;
<;definitions xmlns=";/spec/BPMN/20100524/MODEL"; xmlns:xsi=";/2001/XMLSchema-instance";
xmlns:activiti=";http://activiti.org/bpmn";
…… …… 余下全文
根据activiti官方提供的 编写
1.财务部门填写月财务报告
2.股东审核月财务审计报告
流程图:
流程配置:
<;?xml version=";1.0"; encoding=";UTF-8";?>;
<;definitions xmlns=";/spec/BPMN/20100524/MODEL"; xmlns:xsi=";/2001/XMLSchema-instance";
xmlns:activiti=";http://activiti.org/bpmn";
xmlns:bpmndi=";/spec/BPMN/20100524/DI";
xmlns:omgdc=";/spec/DD/20100524/DC";
xmlns:omgdi=";/spec/DD/20100524/DI";
typeLanguage=";/2001/XMLSchema";
expressionLanguage=";/1999/XPath";
…… …… 余下全文
工作流Activiti的学习总结(二)activiti中ProcessEngine的创建和数据库表命名规则
数据库表命名规则:
Activiti工作流引擎的数据库表中的表名称都是以 ACT_.第二部分两个字母表示表的类型。使用模糊匹配的方式说明表的类型匹配activiti的服务API. · ACT_RE_*: RE代表仓储(Repository).这种表前缀以“static”表示流程定义信息或者流程资源信息(如流程的图表和规则等).
· ACT_RU_*: RU标识为运行(Runtime)时表。包含流程实例,用户任务和变量任务等在运行时的数据信息。这些表只存储Activiti在流程实例运行执行的数据,在流程结束的时候从表中去除数据。从而保持运行时候数据的表的快速和小数据量.
· ACT_ID_*:ID标识为唯一(Identity)的。包含一些唯一的信息如用户,用户做等信息。
· ACT_HI_*:HI表示历史数据(History)表,包括过期的流程实例,过期的变量和过期的任务等。
· ACT_GE_*:GE表示公用(General data)的数据库表类型。
ProcessEngine接口中暴露了在BPMN和工作流中中所有操作的服务接口。 用户获取流程实例相关的各种运行时信息.
…… …… 余下全文
Activiti工作流引擎数据库表结构
数据库表的命名
Acitiviti数据库中表的命名都是以ACT_开头的。第二部分是一个两个字符用例表的标识。此用例大体与服务API是匹配的。
1. ACT_RE_*:’RE’表示repository。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
2. ACT_RU_*:’RU’表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
3. ACT_ID_*:’ID’表示identity。这些表包含标识的信息,如用户,用户组,等等。
…… …… 余下全文
工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解
Spring和Activiti的整合:
在Spring和Activiti的整合中ProcessEngineFactoryBean成为了两者的整合点。ProcessEngineFactoryBean为org.activiti.spring.ProcessEngineFactoryBean。提供了ProcessEngine的配置和创建的功能。
<bean
id="processEngineConfiguration"class="org.activiti.spring.SpringProcessEngineConfiguration">
...
</bean>
<bean id="processEngine"class="org.activiti.spring.ProcessEngineFactoryBean"> <property
name="processEngineConfiguration"ref="processEngineConfiguration"/> </bean>
…… …… 余下全文