工作流之收回

          Posted on 2008-08-28 10:21 黎民 閱讀(294) 評論(0)  編輯  收藏 所屬分類: 工作流原理
          收回:收回是工作流參與者對自己“已辦任務”(對已完成的工作項)的一種操作,即參與者主動對已辦理過的工作項進行重新辦理。

          為什么要收回?

          參與者完成任務后,發現自己辦理有錯誤等情況后,需要將此任務收回重新辦理。

          工作項的參與方式

          目前有四種方式:共同參與、競爭參與、順序參與、基于角色的共同參與。

          下面會針對這四種方式進行討論。

          工作項收回模式

          1、未觸發下一節點的工作項的收回
          即當前任務節點并未完成,依舊處于執行狀態

          1.1共同參與

          如圖:在節點A未結束之前,workitem1、workitem2和workitem3正常完成后可以任意收回。在只產生一個workitem的情況下,不存在未觸發下一節點的收回情況。

          1.2順序參與

          如圖:workitem1、workitem2和workitem3順序完成,workitem1在workitem2簽收(包括掛起和手工終止)前可以收回,同樣,workitem2在workitem3簽收(包括掛起和手工終止)前也可以收回。在只產生一個workitem的情況下,不存在未觸發下一節點的收回情況。

          1.3競爭參與

          因為只會產生一個workitem,該workitem完成后會立刻觸發下一節點,所以不存在未觸發下一節點的收回情況。


          1.4基于角色的共同參與

          與1.1相同。

          2、已觸發下一節點的工作項的收回

          2.1共同參與

          問題1:多個工作項時誰可以執行收回操作?
          workitem1、workitem2和workitem3都可以執行收回操作。第一個工作項的收回將會導致節點B實例的刪除,同時節點A重新恢復執行狀態。


          問題2:節點B處于什么狀態節點A的工作項可以執行收回操作?
          由A觸發的節點B處于正在執行的狀態,節點B所產生的工作項:
          a共同參與   工作項均未簽收、掛起或手工終止
          b順序參與    第一個工作項未簽收、掛起或手工終止
          c 競爭參與   工作項均未簽收、掛起或手工終止
          d角色
          同共同參與


          問題3:工作項收回產生的影響?
          節點A重新執行,收回的工作項重新執行。節點B重新恢復未觸發狀態,B所產生的工作項全部刪除。


          2.2順序參與


          問題1:多個工作項時誰可以執行收回操作?
          workitem1、workitem2和workitem3根據順序可以依次執行收回操作。

          2.3競爭參與
          情況簡單,只有一個工作項,所以可以直接收回。


          2.4基于角色的共同參與
          同2.1


          工作流收回模式
          后續觸發節點只能是人工節點(可以是多個,至少一個),否則不支持收回。目前不支持父子流程之間的收回。
          一個典型的同步匯聚情況:


          節點1首先執行完畢,但是因為是同步匯聚,所以它不會觸發實際的流轉;而節點2的完成則會觸發節點3的執行。在這種情況下,節點2的工作項可以執行收回操作,而節點1的工作項因為后續沒有觸發節點而不能收回。

          posts - 57, comments - 3, trackbacks - 0, articles - 1

          Copyright © 黎民

          主站蜘蛛池模板: 新和县| 岳池县| 卢龙县| 延长县| 隆昌县| 蕲春县| 如东县| 盐池县| 马关县| 舟曲县| 大洼县| 上饶市| 临高县| 潮州市| 明水县| 日照市| 美姑县| 普宁市| 靖西县| 永兴县| 高邮市| 温州市| 通辽市| 贡觉县| 上高县| 鹿泉市| 元阳县| 咸宁市| 屯留县| 渝北区| 阳原县| 靖西县| 二连浩特市| 阜城县| 松溪县| 华阴市| 图片| 安庆市| 潮州市| 长寿区| 县级市|