1. Activiti有跟hibernate类似的启动配置参数,主要包括如下启动配置参数
数据配置参数
databaseSchemaUpdate:可以在流程引擎启动,销毁的时候操作流程表结构
1:flase 不操作
2:true 流程引擎启动的时候,创建表结构
3:create-drop:流程引擎启动,销毁的时候,创建,和删除表结构
2.Activiti测试案例需要继承activiti测试类PluggableActivitiTestCase
主要作用以及使用方法为。
自动产生流程引擎,自动获得流程API对象,比如runtimeService,repositoryService,以及流程测试结束后,清除测试所使用的数据的数据
可以之间使用@Deployment(resource=***.bpmn)标签,标注在方法上,resource参数写流程定义文件,可以直接得到流程实例以及相应的流程定义操作类,流程实例操作类,任务实例操作类。
3. 用户任务,指定某些人来完成任务
代理人指定时代理人只能是一个人,用API
taskService.createTaskQuery().taskAssignee("lxs").list()来进行查询。
候选人可以是多个,使用逗号分隔,用API:
taskService.createTaskQuery().taskCandidateUser("lxs").list()来进行查询。
候选组也可以有多个,可以通过API
taskService.createTaskQuery().taskCandidateGroup("lxs").list()来查询
bpmn2.0的标签学习
1. timer start event定时器启动事件标签
流程会在特定的时间启动,时间设置遵循IOS-8061格式,如下实例
<timerEventDefinition >
<timeDate >2011-03-11T12:13:14</ timeDate >
</ timerEventDefiniti on>
2:从2011年3 月11 日12:13 开始,流程将启动4 次,每次间隔5 分钟
<timerEventDefinition >
<timeCycle>R4/2011-03-11T12:13/PT5M </ timeCycle>
</ timerEventDefinition >
3:流程会在10天之后启动
<timerEventDefinition >
<timeDuration >P10D</ timeDuration >
</ timerEventDefinition >
2. ExclusiveGateway,排他分支,只能有一个分支条件成立,然后向下执行,分支的条件,要配置在sequenceFlow中去
<sequenceFlow id="flow2" name="input == 1" sourceRef="exclusivegateway1" targetRef="usertask1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${input == 1}]]></conditionExpression>
</sequenceFlow>
3.inclusiveGateway:包容分支,能有多个条件分支成立,向下执行,在执行时两个任务都结束后,流程才能向下一个结点执行,只有一个完成时流程没法向下一个结点执行。
4.并行分支 parallelGateway,能并行的执行所有分支,fork可以流出多个分支,join可以多个分支流入一个口。并行分支自动执行分支后的所有输入流,不需要条件。
5. 有条件的顺序流,可以使用有条件的顺序流去实现驳回的执行,即在一个用户结点上设置条件,然后让用户任务根据条件选择下一个可以执行的节点。在执行时设置用户变量
数据配置参数
databaseSchemaUpdate:可以在流程引擎启动,销毁的时候操作流程表结构
1:flase 不操作
2:true 流程引擎启动的时候,创建表结构
3:create-drop:流程引擎启动,销毁的时候,创建,和删除表结构
2.Activiti测试案例需要继承activiti测试类PluggableActivitiTestCase
主要作用以及使用方法为。
自动产生流程引擎,自动获得流程API对象,比如runtimeService,repositoryService,以及流程测试结束后,清除测试所使用的数据的数据
可以之间使用@Deployment(resource=***.bpmn)标签,标注在方法上,resource参数写流程定义文件,可以直接得到流程实例以及相应的流程定义操作类,流程实例操作类,任务实例操作类。
3. 用户任务,指定某些人来完成任务
代理人指定时代理人只能是一个人,用API
taskService.createTaskQuery().taskAssignee("lxs").list()来进行查询。
候选人可以是多个,使用逗号分隔,用API:
taskService.createTaskQuery().taskCandidateUser("lxs").list()来进行查询。
候选组也可以有多个,可以通过API
taskService.createTaskQuery().taskCandidateGroup("lxs").list()来查询
bpmn2.0的标签学习
1. timer start event定时器启动事件标签
流程会在特定的时间启动,时间设置遵循IOS-8061格式,如下实例
<timerEventDefinition >
<timeDate >2011-03-11T12:13:14</ timeDate >
</ timerEventDefiniti on>
2:从2011年3 月11 日12:13 开始,流程将启动4 次,每次间隔5 分钟
<timerEventDefinition >
<timeCycle>R4/2011-03-11T12:13/PT5M </ timeCycle>
</ timerEventDefinition >
3:流程会在10天之后启动
<timerEventDefinition >
<timeDuration >P10D</ timeDuration >
</ timerEventDefinition >
2. ExclusiveGateway,排他分支,只能有一个分支条件成立,然后向下执行,分支的条件,要配置在sequenceFlow中去
<sequenceFlow id="flow2" name="input == 1" sourceRef="exclusivegateway1" targetRef="usertask1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${input == 1}]]></conditionExpression>
</sequenceFlow>
3.inclusiveGateway:包容分支,能有多个条件分支成立,向下执行,在执行时两个任务都结束后,流程才能向下一个结点执行,只有一个完成时流程没法向下一个结点执行。
4.并行分支 parallelGateway,能并行的执行所有分支,fork可以流出多个分支,join可以多个分支流入一个口。并行分支自动执行分支后的所有输入流,不需要条件。
5. 有条件的顺序流,可以使用有条件的顺序流去实现驳回的执行,即在一个用户结点上设置条件,然后让用户任务根据条件选择下一个可以执行的节点。在执行时设置用户变量