1工作流開發概述

SharePoint基於WF(Window Workflow Foundation)構建了它的工作流功能。WF是SharePoint工作流框架的基礎,要深入瞭解SharePoint工作流的開發,首先應該瞭解WF的一些基礎知識,本章對WF的技術細節並不會過多講解。本節將講述SharePoint工作流的基礎知識,並介紹系統自帶的工作流模板的使用和默認的工作流任務操作方式。

2工作流開發環境的搭建

如果使用Visual Studio 2005開發SharePoint工作流應用,首先需要安裝Visual Studio 2005的WF擴展——Visual Studio 2005 Extensions for Windows Workflow Foundation ,可以在以下地址下載:http://www.microsoft.com/downloads/details.aspx?familyid= 5D61409E-1FA3-48CF- 8023-E8F38E709BA6&displaylang=zh-cn。然後安裝Office SharePoint Server 2007 SDK。

採用Visual Studio 2005開發SharePoint工作流,無論是開發環境的搭建還是開發時調試和測試,都比較煩瑣。Visual Studio 2008已經發布正式版了,VS 2008提供了對SharePoint工作流開發更好的支持,直接集成了開發、部署和調試。本章的示例將採用VS 2008來進行。

為了便於調試和測試工作流,選擇直接在SharePoint服務器環境下開發,因此VS 2008要直接安裝在SharePoint服務器上。

3  SharePoint工作流的基本概念

SharePoint工作流是一個預先定義好的對列表項或文檔庫文檔的處理流程。一個工作流實例跟一個列表項或文檔進行關聯,工作流實例不能脱離列表項存在。當需要用户處理數據的時候,比如進行審批操作,系統會創建一個任務到某個任務列表中,審批用户操作列表中的任務來實現跟流程實例的交互。

工作流實例可以在列表新建、修改時自動啓動,或者可以由用户手動啓動。MOSS支持兩種工作流的開發方式。

I        利用SharePoint Designer可以設計簡單的無代碼順序工作流。

在SharePoint Designer中,可以直接創建跟某個列表或文檔庫關聯的工作流,在工作流中,可以直接訪問列表項的字段,獲取字段的值作邏輯判斷或者給字段賦值,給用户分配審批任務並動態生成審批界面。SharePoint Designer設計的工作流只能跟一個列表(或文檔庫)關聯,單個工作流無法用於多個列表,不同列表(或文檔庫)的工作流處理邏輯即使一樣,也只能分別進行設計。

採用SharePoint Designer設計工作流的優點是操作簡單,無須編譯和部署,缺點是隻能實現順序操作邏輯,無法實現退回等循環邏輯,審批界面自動生成,也無法實現一些複雜的操作。7.2節將演示採用SharePoint Designer設計工作流的步驟。

II        利用Visual Studio可以開發複雜的順序或狀態機工作流。

在Visual Studio 2008中,可以直接在WF設計器中開發工作流,工作流開發好後,編譯成DLL,然後採用Feature部署到SharePoint服務器,在網站中將Feature激活後,工作流即可使用了,可以把這種工作流關聯到多個列表。所以又稱Visual Studio 2008設計的工作流為工作流模板。

Visual Studio 2008開發工作流的優點是能實現很複雜的流程邏輯,開發出來的工作流模板可以供多個網站、多個列表使用。流程任務的操作界面可以採用infopath或者直接採用aspx頁面,這樣就可以實現較複雜的頁面操作。缺點就是開發部署比較複雜,對開發人員要求較高。

4 SharePoint工作流的操作方式

SharePoint的工作流的默認操作方式並不適合用户的操作習慣,一般來説其他工作流產品的操作方式是用户在一個頁面上完成所有操作,包括查看業務數據(被審批數據)、填寫審批意見等。而SharePoint工作流的操作方式是:業務數據跟審批數據分離,業務數據可以用列表項或文檔庫中的文檔來表示,用户審批的時候默認只看到審批頁面,只有單擊鏈接才能查看業務數據,這種操作方式對文檔審批還是説的過去的,但是對列表數據的審批操作就有點"不夠人性化"了。在實際的項目中,需要對用户的操作習慣進行引導。

SharePoint默認提供了很多工作流模板,這些工作流模板跟採用VS 2008開發的工作流模板操作上是一樣的。下面看一下系統自帶的"審批"工作流模板的使用。要在SharePoint中使用一個工作流模板,首先需要將工作流模板跟文檔庫或列表關聯,操作步驟如下。

Step1  在文檔庫的設置頁面單擊"工作流設置"鏈接,如圖1所示。

dify 知識庫 embdding_字段

圖1  工作流設置

Step2  在添加工作流頁面中,選擇工作流模板為"審批",輸入工作流名稱為"文檔審批",單擊"下一步",如圖2所示。

dify 知識庫 embdding_字段_02

圖2  添加工作流

Step3  在工作流參數設置頁面中,選擇任務分配對象為"串行",輸入兩個用户作為審批者,選擇"文檔被拒絕"時取消工作流,選擇"工作流完成後"為"更新審批狀態",如圖3所示。單擊"確定"按鈕完成設置。

dify 知識庫 embdding_數據_03

圖3  設置工作流參數

Step4  為了方便審批用户的操作,需要將用户任務WebPart添加到網站的首頁,如圖4所示。

dify 知識庫 embdding_數據_04

圖4  添加用户任務WebPart

工作流的配置操作已經完成,下面我們看一下這個工作流的使用。

Step1  在文檔庫中新建或上傳一個文檔,然後在下拉列表中選擇"工作流"選項,如圖5所示。

dify 知識庫 embdding_數據_05

圖5  選擇"工作流"選項

Step2  單擊"文檔審批"工作流,如圖6所示。

dify 知識庫 embdding_dify 知識庫 embdding_06

圖6  選擇工作流

Step3  在接下來的配置審批參數頁面中,可以輸入審批信息,如圖7所示。再單擊"啓動"按鈕。

dify 知識庫 embdding_dify 知識庫 embdding_07

圖7  配置審批參數

現在文檔審批工作流已經啓動,返回到文檔庫頁面,可以看到文檔庫上多出來一個"文檔審批"欄,如圖8所示。通過"文檔審批"欄中的鏈接可以鏈接到工作流監控和管理頁面,如圖9所示。通過工作流監控和管理頁面,可以查看工作流任務的分配和完成情況,強制終止工作流。

dify 知識庫 embdding_字段_08

圖8  文檔庫中工作流鏈接

dify 知識庫 embdding_Visual_09

圖9  工作流監控頁面

用第一個審批用户的賬號登錄系統,可以在用户任務Web部件中看到需要操作的任務,如圖10所示。

dify 知識庫 embdding_dify 知識庫 embdding_10

圖10  工作流任務

單擊任務鏈接,在接下來的任務操作頁面中可以通過鏈接查看被審批的文檔,通過下方的"批准"和"拒絕"按鈕進行審批,如圖11所示。

dify 知識庫 embdding_dify 知識庫 embdding_11

圖11  任務頁面

用第2個審批用户的賬號登錄系統,進行批准操作。兩個審批用户都批准之後,返回到文檔庫頁面,可以看到文檔審批的狀態已經變成"已批准",如圖12所示。

dify 知識庫 embdding_Visual_12