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


ccflow 馳騁工做流引擎的共享任務,應用背景,設置,設計,sdk接口
------------------------------------------------------------------- web

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

  以上的應用場景具備必定的侷限性,若是處理得工做人員有多個,容易出現工做交叉處理的狀況,爲此ccflow啓用了任務池的概念。 設計

   
  關於對ccflow任務池的描述: 日誌

  1,在流程屬性與全局配置設置了啓動任務池的狀態下,若是一個節點遇到多我的處理,這個任務就放在了任務池裏,只有參與處理的人人員才能看獲得。
  2,工做人員在處理該工做以前須要申請,放到本身的代辦裏,一人申請以後,其餘人就不能申請了,多我的同時申請第一我的申請的先獲得。
  3,申請以後,任務池裏就不出如今條工做而是進入了被申請人的待辦裏。
  4,若是申請人處理不了這件工做,他能夠把該工做放入任務池中,放入任務池的工做能夠被其餘的N我的能夠看到。
  5,無論取回與放入,都須要寫入流程日誌。 接口

  任務池的功能啓用: 工作流

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

  2,web.config 中的配置,是用來講明全局是否啓用任務池?若是全局啓用了任務池,流程屬性裏的 IsEnableTaskPool 設置纔有效。 List

  3,若是全局啓用了任務池,可是個別的流程不使用任務池,就在流程屬性裏單獨配置它,這樣既能夠解決有一些流程須要啓用任務池,有一些流程不須要任務池的須要。 sdk


  任務池的設計: co

  
  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

相關文章
相關標籤/搜索