外部子流程,和内部子流程一样,都是将一部分常用操作封装成一个整体,作为一个子流程,外部子流程可以直接调用其他流程。
应用场景1.公司有付款流程A,报销流程B,采购流程C,
其中B中要付款,C中也要付款,此时就可以将付款流程在作为外部子流程使用,供B.C调用
fixflow中将callActiviti节点作为外部子流程的使用
其中callActiviti节点的特殊属性解释如下:
- 流程:被调用外部子流程的processKey,不带guid的。
- 版本:被调用外部子流程的版本,版本必须存在。
- 关联值:被调用的子流程的bizKey,用来关联子流程的业务数据。
- 异步:是否异步,不勾选,则主流程等待外部子流程执行完后继续向下走,勾选,则不等待子流程的执行,主流程直接向下进行后续节点。
- 数据映射:当主流程中的某些数据变量在子流程中也想使用时,则可以使用主流程映射子流程,在进入子流程时会将对应变量赋值;当子流程中有些变量需要返回给主流程时,则使用子流程映射主流程,在执行完子流程后,会将对应变量赋值。
注意事项:
- 如果子流程第一个节点中是共享任务,则需要添加“接收任务”处理命令,而且必须要有“提交”命令。不能用“通用”命令,有点绕。
- 必须先发布子流程,再配置外部子流程,因为要通过processKey找对应的变量等信息。
- 同样,外部子流程可以进行跳过策略、连接器、多实例的配置。
- 附件中pay_process作为付款子流程,被CallActivitiTest流程调用,运行环境为fixflow官方项目bpmcenter。