# 子流程
子流程为了简化复杂流程,复用通用流程,处理复杂的业务嵌套场景的一种解决方案。
子流程使用场景:
1.简化流程:通过将复杂的业务逻辑拆分到子流程中,使得整体流程更易于理解和管理,便于后期维护。
2.流程共享:可以将功能单一规范的流程嵌入到大的流程中,子流程可以在不同的流程中重复使用。提高了流程的可维护性和可重用性。
3.独立性:子流程可以独立于主流程进行测试、调试和修改,从而避免对主流程造成影响。
4.灵活性:通过使用多个子流程,可以构建灵活的流程,以应对不同的业务场景和需求变化。
# 1 单子流程
子流程参数的定义用于将父流程中指定的相关数据进行主子流程之间传递,流程参数中可进行添加参数和添加返回值。
类型为参数则是将父流程中相关数据或迭代变量中数据设置到子流程中
类型为返回值,返回值需要在父流程的子流程参数中设置回填为true。在子流程完成后将子流程中定义的返回值名称作为key在子流程相关数据中获取到对应值,回填到父流程中设置的子流程活动返回值中设置的父流程相关数据key。
示例:
- 子流程属性添加参数、添加返回值
父流程中子流程参数中设置参数值传递、返回值回填。
入参设置:在子流程参数设置中将__bfp_entity/id传递给子流程的PKID入参中,该值会在启动子流程后设置到子流程的相关数据中去。
返回值回填:在子流程参数设置中子流程返回值勾选回填,并将值填写为要回填的父流程相关数据中的key,此示例中将子流程中
__bfp_entity/name的值回填到父流程中__bfp_entity/grade。
- 发起父流程后在激活子流程活动时会将__bfp_entity/id传递给子流程的PKID入参中,继而子流程实例启动,相关数据中会存在key为PKID的数据。
- 在子流程实例完成后会将相关数据中__bfp_entity/name的值设置到父流程实例相关数据的__bfp_entity/grade中去,这个是回填操作,当子流程参数中为勾选回填时,则不会进行对应值的传递。
# 2 多子流程
在子流程活动节点上可以通过配置多子流程策略中开启多子流程设置开关来实现多子流程场景实现,该场景下需要配置被迭代元素来根据被迭代元素数组长度决定创建子流程的个数。
示例:
- 开启多子流程配置,并设置被迭代变量为子实体students对象长度。
发起父流程,当激活子流程活动实例时根据主流程表单中__bfp_entity/Students数组长度循环遍历生成对应个数的子流程实例。
如下图,根据子实体students列表总数创建2个子流程实例。
# 3.触发事件
触发事件可以参考自动活动的触发事件
# 4.回退触发事件
回退触发事件可以参考自动活动的回退触发事件。
# 5.启动策略
启动策略可以参考自动活动的启动策略。