亚洲一区亚洲二区亚洲三区,国产成人高清在线,久久久精品成人免费看,999久久久免费精品国产牛牛,青草视频在线观看完整版,狠狠夜色午夜久久综合热91,日韩精品视频在线免费观看

SharePoint狀態(tài)機(jī)工作流解決方案(二):SharePoint中的WF狀態(tài)機(jī) -電腦資料

電腦資料 時(shí)間:2019-01-01 我要投稿
【www.ishadingyu.com - 電腦資料】

在前文中我們提到 SharePoint 是在 WF 工作流引擎之上,封裝了事件驅(qū)動(dòng)接口的一個(gè)工作流平臺(tái); SharePoint 在 WF 上擴(kuò)充了很多 Activity,其中和 WF 密切相關(guān)的有三個(gè)常用 Activity是: OnWorkflowActivated,CreateTask,OnTaskChanged,

SharePoint狀態(tài)機(jī)工作流解決方案(二):SharePoint中的WF狀態(tài)機(jī)

。

一個(gè)簡(jiǎn)單的 SharePoint 順序流。

OnWorkflowActivated:響應(yīng)流程啟動(dòng)的事件。

CreateTask:生成 SharePoint 的任務(wù)。

OnTaskChanged:響應(yīng)任務(wù)被改變的事件。

在一個(gè)流程中只能有一個(gè) OnWorkflowActivated ;可以有任意數(shù)量的 CreateTask 和 OnTaskChanged ,但必須成對(duì);

很多 SharePoint 工作流解決方案,在順序流模式下,將 CreateTask 和 OnTaskChanged 組成一個(gè)自 定義的Activity,然后利用 ReplicatorActivity 的自動(dòng)復(fù)制功能,使之支持多人同時(shí)審批。這種方式流 程很簡(jiǎn)潔,但順序流不支持回退,遇到需要回退的情況,只能通過(guò) WhileActivity 模擬,流程又會(huì)變得 很復(fù)雜。

一個(gè)簡(jiǎn)單的 SharePoint 狀態(tài)機(jī)

流程包含了三個(gè)狀態(tài)啟動(dòng)、審批和完成;再添加其他狀態(tài)就可以實(shí)現(xiàn)狀態(tài)之間的回退。

“響應(yīng)啟動(dòng)事件”中包括了 OnWorkflowActivated 和 SetStateActivity

“添加審批人”中包括了 CreateTask

“響應(yīng)審批事件”中包括了 OnTaskChanged 和 SetStateActivity

WF 的每個(gè) StateActivity 只能包含一個(gè) StateInitializationActivity,用于添加審批人和實(shí)現(xiàn)初 始化的業(yè)務(wù)邏輯,

電腦資料

SharePoint狀態(tài)機(jī)工作流解決方案(二):SharePoint中的WF狀態(tài)機(jī)》(http://www.ishadingyu.com)。可以包含多個(gè) EventDrivenActivity,用于同時(shí)響應(yīng)多個(gè)審批事件,和實(shí)現(xiàn)審批后的業(yè) 務(wù)邏輯;EventDrivenActivity 的第一個(gè)控件必須是 HandleExternalEventActivity (OnTaskChanged的 基類)。

從上圖中我們看到,在狀態(tài)機(jī)下 CreateTask 和 OnTaskChanged 仍然是必須成對(duì)的,但他們的位置分 開了,CreateTask 處于 StateInitalizationActivity 中,OnTaskChanged 處于 EventDrivenActivity 中。

可以多人同時(shí)審批的 SharePoint 狀態(tài)機(jī)

如果要多人同時(shí)審批,需要在 StateInitializationActivity 中添加多個(gè) CreateTask,和在 StateActivity 中添加多個(gè) EventDriven。

“添加審批人”中包括了 A 的 CreateTask 和 B 的 CreateTask。

“響應(yīng)A的審批事件”中包含了 A 的 OnTaskChanged。

“響應(yīng)B的審批事件”中包含了 B 的 OnTaskChanged。

如果需要添加更多的審批人,以此類推。

SharePoint 狀態(tài)機(jī)工作流存在的問(wèn)題

從上面我們可以發(fā)現(xiàn),SharePoint 的狀態(tài)機(jī)應(yīng)用存在下面兩個(gè)問(wèn)題:

1、EventDrivenActivity 中的流程存在冗余,當(dāng)流程復(fù)雜,審批人多的時(shí)候,很難維護(hù)。

2、審批人數(shù)在設(shè)計(jì)期就必須確定,不能改變。

在下一篇《SharePoint 狀態(tài)機(jī)工作流解決方案(三);內(nèi)置缺省流程邏輯的 SharePoint 狀態(tài)機(jī)》中 ,我們會(huì)介紹對(duì)這兩個(gè)問(wèn)題的解決方案。

最新文章