# 父子流程设计指引

为了简化流程图,提高流程的复用性,我们引入了父子流程的设计。父流程中可以添加子流程节点,子流程节点可以理解为一系列节点和动作的集合,但是他们并不画在父流程图中而是在子流程图中,父流程中仅仅引入子流程节点代表了子流程图中流程流转逻辑,这样就能使子流程中的逻辑模块化,并可以在多个父流程中使用。

# 流程流转

# 父到子

父流程中的子流程节点是个多出多入的节点,通过指定子流程的代码确定流程进入该节点后父流程发起一个什么子流程,同时可以指定子流程从哪个入口节点发起,子流程代码填写格式为entrance@workflowCode,其中entrance为可选项,可以不指定入口直接指定子流程代码,详见子流程代码设置

# 子流程创建人

子流程创建人和父流程相同,因此可以使用表单变量“流程创建人”进行执行人限定。

# 子流程入口节点的办理人

一个流程做为子流程发起和普通发起最大的差别是当前登录人不会被设置为发起入口节点的默认办理人,这是因为业务场景上子流程的入口节点不一定由当前登录人来办理, 因此子流程开发者需要特别关注入口节点的执行权限配置,主流程引用一个子流程时也需要关注其入口节点执行权限配置是否合适做为子流程发起。

举例来说,入口节点允许所有教职工执行且无限定的流程做为普通流程发起没有问题,但是做为子流程发起就会出现所有教职工均可办理的情况,因此需要添加必要的限定 来明确入口节点的办理用户,开发者需要意识到基于历史环节办理人的限定在发起流程时不起作用,因此此类限定通常应该基于表单变量进行。

# 子到父

父流程发起的子流程结束后会回到父流程继续执行,父流程中从子流程节点流转的动作取决于子流程中结束于哪个自动节点,详见子流程节点动作名称的说明

# 数据流转

父子流程之间的数据流转可通过在父流程中的子流程节点配置字段权限来控制,详见子流程节点字段权限配置

缺省父子流程数据流转按照同名原则自动寻找匹配的字段,如果父子流程字段不同名,那么需要在子流程上配置数据映射