Flowable中如何导出含Collapsed subprocess的完整BPMN模型XML?
Flowable折叠子流程导出&消息流关联问题解决方案
一、导出包含折叠子流程的完整XML
方式1:用部署包导出(推荐)
直接在Flowable Modeler里选择**部署包(Deployment Package)**导出,这个选项会自动把主流程和所有关联的子流程打包成ZIP文件,里面包含所有需要的XML文件,不会遗漏子流程。如果需要单文件XML,可以后续手动合并。
方式2:手动合并主/子流程XML
如果已经分别导出了主流程和子流程的XML,按以下步骤合并:
- 打开主流程XML,找到根节点
<definitions> - 打开子流程XML,复制其完整的
<process>节点(包含子流程的所有任务、网关等内容) - 将复制的
<process>节点粘贴到主流程的<definitions>节点内,和主流程的<process>节点同级 - 修改主流程中折叠子流程的
calledElement属性,设置为子流程的key值(确保两个流程的key不重复)
二、同一文件内用消息流关联子流程
如果要把主流程和子流程放在同一个XML文件里,用消息流关联,按以下步骤配置:
- 确保主流程和子流程的
id、key都唯一,避免冲突 - 在折叠子流程的属性面板中,将
calledElement设置为子流程的key - 定义消息:在
<definitions>节点下添加消息定义,比如:<message id="orderNotifyMsg" name="OrderNotification" /> - 在主流程中添加消息抛出事件,关联上面定义的消息;在子流程中添加消息捕获事件,关联同一个消息
- 用消息流箭头连接抛出事件和捕获事件,完成关联
三、流程"key"的含义
- 流程
key是Flowable中流程定义的核心标识,同一租户下唯一。 - 部署流程时,Flowable会根据
key管理版本:相同key的流程,每次部署会生成新的版本号,旧版本不会被覆盖。 - 调用子流程、启动流程实例时,都是通过
key来指定要使用的流程定义,默认会调用该key对应的最新版本流程。
内容的提问来源于stack exchange,提问作者Sneka
相关产品推荐
相关产品推荐

