前一个场景的设置是针对两个并发分支都会走到的情形,但如果这些分支是可选的,就是说用户可以选择两条分支都走,也可以只走其中一条,那还是这样设置吗?
答案是不行的,因为如果只走一条的话,未走到的分支的最后一个步骤上的步骤条件的“检验完成”功能会检查该环节是否完成,如果永远不会走到,那就永远都是未完成的,所以条件不会成立,这样就会导致另一条分支走完后无法到达汇合点。那该如何设置才能满足呢?
方法有两种,一种是通过复合条件实现,一种是通过脚本条件实现,以下分别解说。
一、通过复合条件实现
以左边分支那个复合条件做示范,如下:
把选择条件和步骤条件的“检验完成”功能结合起来使用即可。右边分支的复合条件同理。
二、通过脚本条件实现
除了把“复合条件”改为“脚本条件”外,其他跟上面的设置一样。
左边分支脚本条件的脚本如下:
Result = False;
#未走过该分支的第一节点,则返回True
ExistStart = False;
for item in DataItems.FlowTrack:
if item.TaskName == '土建结算':
ExistStart = True;
break;
if ExistStart == False:
Result = True;
else:
#走到最后一个节点并已完成,则返回True
for item in DataItems.FlowTrack:
if item.TaskName == '土建终验' and item.FinishTime != None:
Result = True;
break;
右边分支脚本条件同理。