在流程开发中 涉及多分支的时候,对于回退问题处理如下:
如上图,B、C 分别是 A的条件分支,当流程走到D的时候,如果直接选择回退到B(通过回退组件),然后B提交 ,流程到D,如果D 这个时候选择回退到 C,回退组件就会报错,或者 获取回退路径 的时候 发现 路径中没有C,这个是因为 上次一回退已经将路径给覆盖了,认为你的流程路径是A - B -D,而非 A - B\C - D ;
解决方案:
在 A - B/C 节点中新增一个【路由】,当D选择回退时候,将流程回退到 【路由】,然后根据用户选的回退的节点,将对应的分支条件 设置为满足,不需要回退的节点的 分支条件 设置为不满足,注意这里分支条件 1 和 3 保持一致,2 和 4 保持一致,否则当 B或者C提交后 流程会开始在 分支条件上,不流转到 D;
举例:在流程图中设定 分支条件1和3为 fz1 = 1,2和4为 fz2 = 1,当只回退给B节点是,需要将 分支2和4的条件改变,则设置相关数据区值 fz2 = 2, 并将流程回退节点指定为【路由】,那么回退后流程就不会进入分支 C;同时回退多个节点同理。