其他分享
首页 > 其他分享> > 嵌入式工作流程开发!工作流 Activiti 框架中子流程的使用指南

嵌入式工作流程开发!工作流 Activiti 框架中子流程的使用指南

作者:互联网

子流程

子流程

描述
图形标记

在这里插入图片描述

XML内容
<subProcess id="subProcess">

  <startEvent id="subProcessStart" />

  ... other Sub-Process elements ...

  <endEvent id="subProcessEnd" />

 </subProcess>

事件子流程

描述
图像标记
XML内容
<subProcess id="eventSubProcess" triggeredByEvent="true">
        ...
</subProcess>
实例
<subProcess id="eventSubProcess" triggeredByEvent="true">
        <startEvent id="catchError">
                <errorEventDefinition errorRef="error" />
        </startEvent>
        <sequenceFlow id="flow2" sourceRef="catchError" targetRef="taskAfterErrorCatch" />
        <userTask id="taskAfterErrorCatch" name="Provide additional data" />
</subProcess>

事件子流程也可以添加成内嵌子流程.如果添加为内嵌子流程,其实是边界事件的一种替代方案

事务子流程

描述
图形标记
XML内容
<transaction id="myTransaction" >
        ...
</transaction>
实例

在这里插入图片描述

调用活动(子流程)

描述
图形标记
XML内容
<callActivity id="callCheckCreditProcess" name="Check credit" calledElement="checkCreditProcess" />
传递变量
<callActivity id="callSubProcess" calledElement="checkCreditProcess" >
  <extensionElements>
          <activiti:in source="someVariableInMainProcess" target="nameOfVariableInSubProcess" />
          <activiti:out source="someVariableInSubProcss" target="nameOfVariableInMainProcess" />
  </extensionElements>
</callActivity>

这里使用Activiti扩展来简化BPMN标准元素调用dataInputAssociationdataOutputAssociation, 只在使用BPMN 2.0标准方式声明流程变量有效

<callActivity id="callSubProcess" calledElement="checkCreditProcess" >
        <extensionElements>
          <activiti:in sourceExpression="${x+5}"" target="y" />
          <activiti:out source="${y+5}" target="z" />
        </extensionElements>
</callActivity>
z = y + 5 = x + 5 + 5
实例
<startEvent id="theStart" />
<sequenceFlow id="flow1" sourceRef="theStart" targetRef="receiveOrder" />

<manualTask id="receiveOrder" name="Receive Order" />
<sequenceFlow id="flow2" sourceRef="receiveOrder" targetRef="callCheckCreditProcess" />

<callActivity id="callCheckCreditProcess" name="Check credit" calledElement="checkCreditProcess" />
<sequenceFlow id="flow3" sourceRef="callCheckCreditProcess" targetRef="prepareAndShipTask" />

<userTask id="prepareAndShipTask" name="Prepare and Ship" />
<sequenceFlow id="flow4" sourceRef="prepareAndShipTask" targetRef="end" />

<endEvent id="end" />

标签:内嵌,事务,BPMN,流程,Activiti,事件,使用指南,节点
来源: https://www.cnblogs.com/chova/p/14858390.html