# demo47 **Repository Path**: FlowableDemo/demo47 ## Basic Information - **Project Name**: demo47 - **Description**: 引用外部流程实践 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-01-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ------ 环境: [jkd8+]() [mysql5.6+]() [flowable6.4.0]() ## 一、原理 主流程中定义引用流程节点,此节点定义需要引用的外部流程id,通过calledElement元素指定,外部子流程执行完毕后,回到主流程继续执行。主流程和子流程变量间传导使用flowable:in和flowable:out元素来指定。 ``` flowable:in 指主流程向子流程输入变量。 source指定主流程输入到子流程变量,target指定子流程接受主流程的变量,变量从source自动赋值给target。也就是主流程输入变量(source指定的变量),子流程用target指定的变量接收。 flowable:out 指子流程执行完毕后返回到主流程。 source指子流程返回变量,target指主流程接受变量。也就是子流程变量(source指定的变量)返回,主流程用target指定的变量接收。 ``` ## 二、流程图 - 引用流程--主流程 ![](./images/mainprocess.png) - 外部流程 ![](./images/outerprocess.png) ## 三、配置 - 配置引用的外部流程(子流程) 通过**calledElement**元素来指定引用的外部流程。 - 主流程和子流程变量传导 flowable:in 指主流程向子流程输入变量, source指定主流程变量,target指子流程接受主流程的变量,变量从source自动赋值给target。 **本例中,主流程变量varOutFromMainprocess,子流程用varInSubprocess接收。** flowable:out 指子流程执行完毕后返回到主流程,source指子流程变量,target指主流程接收变量。 **本例中,子流程变量varInSubprocess,主流程用varOutFromSubprocess接收。** ``` ``` ## 四、实践测试 - 分别部署主流程、外部流程。 - 启动主流程流程。 - 完成用户节点任务。