`
huqi
  • 浏览: 93127 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

工作流引擎设计之退回任务定义

阅读更多

退回(Rollback Work Item)

退回是针对本人(工作流参与者)的“待办任务”的操作,即参与者主动退回待办任务列表中的任务。

为什么要退回?

参与者接受任务后,发现不应由自己办理此任务或上一步的执行者办理有错误等情况后,需要将此接受的任务退回给上一步的执行者重新办理。

退回的原则:执行退回以不影响本活动以及前活动的其他执行者已完成的工作为基本指导原则。

以下是一些不可执行退回的场景,当然这不是绝对的,有的引擎设计是可以支持部分下列场景的退回,所以,仅供参考。

1. 本活动的定义不允许对任务执行退回操作。

2. 本活动非单任务,且有其它任务已经被完成。

3. 本活动非单任务,且有其它任务正在处理中。

4. 本活动为流程定义的第一个活动,即没有可退回的前活动。如图4

5. 前活动为自动活动的情况,如图5

6. 前活动为子流程活动的情况,如图6

7. 前活动的分支流转策略为“与”且有两个或两个以上的分支(AND-split),如图7

图注:蓝色标识本活动,即待办任务所处的活动。

工作流任务不可退回的场景

补充说明

退回原则上应该支持AND-join场景的退回。

如果本活动和前活动之间存在一个或多个路由节点,则路由不会对退回规则产生任何影响,引擎在做退回运算时将跳过所有路由节点。

——以上是我以前在实现工作流引擎系统时的一些设计和指导原则,现在发表出来,供大家参考。不足之处,欢迎拍砖。



分享到:
评论
2 楼 ccflow 2009-06-09  
不错,考虑的很周全,工作流引擎设计大道致简.
1 楼 luopiaopiao 2008-03-07  
分析得很透彻。

相关推荐

Global site tag (gtag.js) - Google Analytics