让品高工作流牛起来

做一个徘徊在牛A和牛C之间的产品也不错啊

导航

当存在可选环节时,如何实现该并发场景?

Posted on 2010-10-12 15:27  Brian.KFC  阅读(670)  评论(0编辑  收藏  举报

前一个场景的设置是针对两个并发分支都会走到的情形,但如果这些分支是可选的,就是说用户可以选择两条分支都走,也可以只走其中一条,那还是这样设置吗?

答案是不行的,因为如果只走一条的话,未走到的分支的最后一个步骤上的步骤条件的“检验完成”功能会检查该环节是否完成,如果永远不会走到,那就永远都是未完成的,所以条件不会成立,这样就会导致另一条分支走完后无法到达汇合点。那该如何设置才能满足呢?

方法有两种,一种是通过复合条件实现,一种是通过脚本条件实现,以下分别解说。

 

一、通过复合条件实现

image

以左边分支那个复合条件做示范,如下:

image

把选择条件和步骤条件的“检验完成”功能结合起来使用即可。右边分支的复合条件同理。

 

二、通过脚本条件实现

除了把“复合条件”改为“脚本条件”外,其他跟上面的设置一样。

左边分支脚本条件的脚本如下:

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;

右边分支脚本条件同理。