1. 程式人生 > >工作流引擎設計之退回任務定義

工作流引擎設計之退回任務定義

退回(Rollback Work Item)

退回是針對本人(工作流參與者)的“待辦任務”的操作,即參與者主動退回待辦任務列表中的任務。

為什麼要退回?

參與者接受任務後,發現不應由自己辦理此任務或上一步的執行者辦理有錯誤等情況後,需要將此接受的任務退回給上一步的執行者重新辦理。

退回的原則:執行退回以不影響本活動以及前活動的其他執行者已完成的工作為基本指導原則。

以下是一些不可執行退回的場景,當然這不是絕對的,有的引擎設計是可以支援部分下列場景的退回,所以,僅供參考。

1. 本活動的定義不允許對任務執行退回操作。

2. 本活動非單任務,且有其它任務已經被完成。

3. 本活動非單任務,且有其它任務正在處理中。

4. 本活動為流程定義的第一個活動,即沒有可退回的前活動。


5. 前活動為自動活動的情況


6. 前活動為子流程活動的情況


7. 前活動的分支流轉策略為“與”且有兩個或兩個以上的分支(AND-split)


圖注:藍色標識本活動,即待辦任務所處的活動。

工作流任務不可退回的場景

補充說明

退回原則上應該支援AND-join場景的退回。

如果本活動和前活動之間存在一個或多個路由節點,則路由不會對退回規則產生任何影響,引擎在做退回運算時將跳過所有路由節點。

——以上是我以前在實現工作流引擎系統時的一些設計和指導原則,現在發表出來,供大家參考。不足之處,歡迎拍磚。