activiti5 流程复用技术 callActivity

来源:互联网 发布:数据分析的应用有哪些 编辑:程序博客网 时间:2024/05/22 13:01

定义:当流程执行到callActivity,会创建一个新分支,它是到达调用节点的流程的分支。 这个分支会用来执行子流程,默认创建并行子流程,就像一个普通的流程。 上级流程会等待子流程完成,然后才会继续向下执行。


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>


实例

下面的流程图演示了简单订单处理。先判断客户端信用,这可能与很多其他流程相同。 检查信用阶段这里设计成调用节点。

流程看起来像下面这样:

<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" />

子流程看起来像下面这样:

子流程的流程定义没有什么特别的。 它也可以单独使用,不用其他流程调用。




原创粉丝点击