顺序流和任务
2018-08-19 本文已影响21人
小鱼嘻嘻
顺序流
顺序流是两个模型之间的连接者,可以把顺序流比作是人体的动脉,每一条连接到不同的器官。顺序流分为两类:标准顺序流,条件顺序流。
标准顺序流
标准顺序流可以用来连接两个或者多个模型建立关系。

对于的XML
<sequenceFlow id="_5" sourceRef="start" targetRef="_3"/>
条件顺序流
条件顺序流是在标准顺序流上添加了条件表达式,只有满足了条件表达式才能通过顺序流到达目标活动。

对于XML
<sequenceFlow id="_4" sourceRef="_3" targetRef="_2">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[isLeader]]></conditionExpression>
</sequenceFlow>
任务
任务主要有:用户任务,脚本任务,webservice任务,业务规则任务,邮件任务,mule任务,camel任务,手动任务,Java service任务,shell任务。
用户任务
用户任务必须要有人来参加,也就是必须是人来触发。

对应的XML
<userTask id="_2" name="UserTask">
<humanPerformer>
<resourceAssignmentExpression>
<expression>xiaoyuxixi</expression>
</resourceAssignmentExpression>
</humanPerformer>
</userTask>
用户任务除了可以分配到某一个具体的人,还可以分配给组或者两者混合
<userTask id="_2" name="UserTask">
<potentialOwner>
<resourceAssignmentExpression>
<expression>xiaoyuxixi,group(leader)</expression>
</resourceAssignmentExpression>
</potentialOwner>
</userTask>
属性名称 | 属性说明 | 示例 |
---|---|---|
activiti:assignee | 用来指定任务的处理人 | <userTask activiti:assignee="xixi"/> |
activiti:cadidateUsers | 用来指定任务的候选人 | <userTask activiti:candidateUsers="xx"/> |
activiti:cadidateGroups | 用来指定任务的候选组 | <userTask activiti:candidateGroups="leader,manager"/> |
除了这些还可以设置监听,这个放到以后再说。
手动任务
手动任务是比较特殊的任务之一,它不做任何事情。

对应的XML
<manualTask id="manualTask"></manualTask>
Java service 任务

对应的XML
<serviceTask id="serviceTask" activiti:class="com.xiaoyuxixi.JavaService">
</serviceTask>
属性名称 | 属性说明 | 示例 |
---|---|---|
activiti:class | 实现了接口JavaDelegate或者Activtity-Behavior的Java类 | <serviceTask id="serviceTask" activiti:class="com.xiaoyuxixi.JavaService"/> |
activiti:expression | 可以使用spring代理 | <serviceTask activiti:expression="#{userService.back()}"/> |
activiti:delegateExpression | 在运行过程动态生成,可以使用spring代理 | <serviceTask activiti:delegateExpression="#{userService}"/> |
多实例
多实例实际业务流程中某个任务甚至子流程可以重复执行多次,在实际应用中一个申请由多人审批是多实例的典型应用场景。多实例可以选择顺序执行,还可以选择并行执行多实例任务或者子流程。