美文网首页activiti
顺序流和任务

顺序流和任务

作者: 小鱼嘻嘻 | 来源:发表于2018-08-19 12:25 被阅读21次

    顺序流

    顺序流是两个模型之间的连接者,可以把顺序流比作是人体的动脉,每一条连接到不同的器官。顺序流分为两类:标准顺序流,条件顺序流。

    标准顺序流

    标准顺序流可以用来连接两个或者多个模型建立关系。


    image.png

    对于的XML

     <sequenceFlow id="_5" sourceRef="start" targetRef="_3"/>
    
    条件顺序流

    条件顺序流是在标准顺序流上添加了条件表达式,只有满足了条件表达式才能通过顺序流到达目标活动。


    image.png

    对于XML

     <sequenceFlow id="_4" sourceRef="_3" targetRef="_2">
          <conditionExpression xsi:type="tFormalExpression"><![CDATA[isLeader]]></conditionExpression>
        </sequenceFlow>
    

    任务

    任务主要有:用户任务,脚本任务,webservice任务,业务规则任务,邮件任务,mule任务,camel任务,手动任务,Java service任务,shell任务。

    用户任务

    用户任务必须要有人来参加,也就是必须是人来触发。


    image.png

    对应的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"/>

    除了这些还可以设置监听,这个放到以后再说。

    手动任务

    手动任务是比较特殊的任务之一,它不做任何事情。


    image.png

    对应的XML

    <manualTask id="manualTask"></manualTask>
    
    Java service 任务
    image.png

    对应的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}"/>

    多实例

    多实例实际业务流程中某个任务甚至子流程可以重复执行多次,在实际应用中一个申请由多人审批是多实例的典型应用场景。多实例可以选择顺序执行,还可以选择并行执行多实例任务或者子流程。

    相关文章

      网友评论

        本文标题:顺序流和任务

        本文链接:https://www.haomeiwen.com/subject/owhciftx.html