天天看點

ccflow 馳騁工作流引擎的共享任務,應用背景,設定,設計,sdk接口

ccflow 馳騁工作流引擎的共享任務,應用背景,設定,設計,sdk接口

-------------------------------------------------------------------

   在以前的版本中,如果多人處理一個工作,ccflow 按照強辦處理,比如: a 發送到 b , 在B 點如果N人處理(N>=2),其中的一個人處理完成後,其他的人就不能看到了,如果多個人同時打開了,一個人發送了,另外的一個人在執行發送就會提示發送錯誤。

  以上的應用場景具有一定的局限性,如果處理得從業人員有多個,容易出現工作交叉處理的情況,為此ccflow啟用了任務池的概念。

   

  關于對ccflow任務池的描述:

  1,在流程屬性與全局配置設定了啟動任務池的狀态下,如果一個節點遇到多個人處理,這個任務就放在了任務池裡,隻有參與處理的人人員才能看得到。

  2,從業人員在處理該工作之前需要申請,放到自己的代辦裡,一人申請之後,其他人就不能申請了,多個人同時申請第一個人申請的先得到。

  3,申請之後,任務池裡就不出現在條工作而是進入了被申請人的待辦裡。

  4,如果申請人處理不了這件工作,他可以把該工作放入任務池中,放入任務池的工作可以被其他的N個人可以看到。

  5,不管取回與放入,都需要寫入流程日志。

  任務池的功能啟用:

  1,任務池功能有兩個地方配置,web.config , 與流程屬性,屬性名稱都是: IsEnableTaskPool 是否啟用任務池。

  2,web.config 中的配置,是用來說明全局是否啟用任務池?如果全局啟用了任務池,流程屬性裡的 IsEnableTaskPool 設定才有效。

  3,如果全局啟用了任務池,但是個别的流程不使用任務池,就在流程屬性裡單獨配置它,這樣既可以解決有一些流程需要啟用任務池,有一些流程不需要任務池的需要。

  任務池的設計:

  

  1,在流程引擎控制表 WF_GenerWorkFlow 中增加了如下字段:

     TaskSta, 枚舉類型, 0=不啟用,1=共享,2=被申請。

     TodoEmpsNum,int類型,處理人員數量,目前節點工作有多少人待辦,如果此值大于等于2,讨論共享任務才有意義。

         TodoEmps varchar(500) 待辦人員,格式為 處理人員編号,處理人員名稱; 比如:guobaogeng,郭寶庚;fuhui,福惠;

      

  2,在流程引擎控制表的人員清單中 WF_GenerWorkerList 中對于IsEnable字段,進行擴充了,如果等于 -1=任務池禁用,0=配置設定工作被屏蔽,1=正常。 

  3,增加了一個功能界面 /WF/TaskPoolSmaller.aspx 次功能界面是有在任務池啟用才能被使用。

  4,在流程屬性裡增加一個字段 IsEnableTaskPool 是否啟用任務池? 此字段用來控制該流程是否啟用任務池。

  任務池的SDK接口:

  1,獲得共享任務: DB_TaskPool

  2,獲得共享任務中我的待辦:DB_TaskPoolOfMy

  3,從共享任務中取回:Node_TaskPoolTakebackOne

  4,把取回的共享任務放入任務池: Node_TaskPoolPutOne

ccflow 馳騁工作流引擎的共享任務,應用背景,設定,設計,sdk接口

繼續閱讀