本逐步解說示範如何建立基本的循序工作流程範本。 工作流程會檢查共用文件庫的屬性,以判斷是否已檢閱文件。 如果已檢閱文件,則工作流程完成。
本逐步解說將說明下列工作:
在 Visual Studio 中建立 SharePoint 清單定義循序工作流程專案。
建立工作流程活動。
處理工作流程活動事件。
注意
雖然本逐步解說使用循序工作流程專案,但流程與狀態機器工作流程專案的流程相同。
此外,您的電腦可能會在下列指示中為某些 Visual Studio 使用者介面元素顯示不同的名稱或位置。 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱將 Visual Studio IDE 個人化。
必要條件
您需要下列元件才能完成這個逐步解說:
支援的 Microsoft Windows 和 SharePoint 版本。
Visual Studio。
將屬性新增至 SharePoint 共用文件庫
為了追蹤共用文件庫中文件的檢閱狀態,我們將在 SharePoint 網站上為共用文件建立三個新屬性:Status、Assignee 和 Review Comments。 我們會在共用文件庫中定義這些屬性。
將屬性新增至 SharePoint 共用文件庫
在網頁瀏覽器中開啟 SharePoint 網站,例如 http://<system name>/SitePages/Home.aspx。
在快速啟動列上,選擇 [SharedDocuments]。
選擇 [程式庫工具] 功能區上的 [程式庫],然後選擇功能區上的 [建立資料行] 按鈕,以建立新的資料行。
將資料行命名為 [文件狀態]、將其類型設定為 [選項 (從中選擇的功能表)]、指定下列三個選項,然後選擇 [確定] 按鈕:
需要檢閱
檢閱完成
已要求變更
再建立兩個資料行,並將其命名為 [受託人] 和 [檢閱註解]。 將 [受託人] 資料行類型設定為單行文字,並將 [檢閱註解] 資料行類型設定為多行文字。
啟用文件進行編輯而無需簽出
當您可以編輯文件,而不必將其簽出時,測試工作流程範本會更容易進行。在下一個程序中,您會設定 SharePoint 網站以啟用該動作。
啟用文件進行編輯而無需將其簽出
在快速啟動列上,選擇 [共用文件] 連結。
在 [文件庫工具] 功能區上,選擇 [文件庫] 索引標籤,然後選擇 [文件庫設定] 按鈕以顯示 [文件庫設定] 頁面。
在 [一般設定] 區段中,選擇 [版本設定] 連結以顯示 [版本設定] 頁面。
確認 [需要簽出文件,然後才能進行編輯] 的設定為 [否]。 如果不是,請將其變更為 [否],然後選擇 [確定] 按鈕。
關閉瀏覽器。
建立 SharePoint 循序工作流程專案
循序工作流程是一組依序執行,直到最後一個活動完成的步驟。 在此程序中,我們會建立將套用至共用文件清單的循序工作流程。 工作流程精靈可讓您將工作流程與網站定義或清單定義建立關聯,並可讓您確定工作流程何時開始。
建立 SharePoint 循序工作流程專案
啟動 Visual Studio。
在功能表列上,選擇 [檔案]>[新增]>[專案],以顯示 [新增專案] 對話方塊。
展開 [Visual C#] 或 [Visual Basic] 底下的 [SharePoint] 節點,然後選擇 [2010] 節點。
在 [範本] 窗格中,選擇 [SharePoint 2010 專案] 範本。
在 [名稱] 方塊中,輸入 MySharePointWorkflow ,然後選擇 [確定] 按鈕。
[SharePoint 自訂精靈] 隨即出現。
在 [指定偵錯的網站和安全性層級] 中,選擇 [部署為伺服器陣列解決方案] 選項按鈕,然後選擇 [完成] 按鈕,以接受信任層級和預設網站。
此步驟會將解決方案的信任層級設定為伺服器陣列解決方案,這是工作流程專案唯一可用的選項。 如需詳細資訊,請參閱沙箱化解決方案考量。
在 [方案總管] 中選擇專案節點,然後在功能表列上選擇 [專案]>[加入新項目]。
在 [Visual C#] 或 [Visual Basic] 底下展開 [SharePoint] 節點,然後選擇 [2010] 節點。
在 [範本] 窗格中,選擇 [循序工作流程 (僅限伺服器陣列解決方案)] 範本,然後選擇 [新增] 按鈕。
[SharePoint 自訂精靈] 隨即出現。
在 [指定工作流程名稱進行偵錯] 頁面上,接受預設名稱 (MySharePointWorkflow - Workflow1)。 保留預設工作流程範本類型值 ([清單工作流程]),然後選擇 [下一步] 按鈕。
在 [您要 Visual Studio 在偵錯工作階段中自動關聯工作流程嗎?] 頁面中,選擇 [下一步] 按鈕以接受所有預設設定。
此步驟會自動將工作流程與共用文件庫建立關聯。
在 [指定工作流程的啟動條件] 頁面中,保留在 [您要如何啟動工作流程?] 區段中選取的預設選項,然後選擇 [完成] 按鈕。
此頁面可讓您指定工作流程何時開始。 根據預設,當使用者在 SharePoint 中手動啟動工作流程時,或當建立與工作流程相關聯的項目時,工作流程就會啟動。
建立工作流程活動
工作流程包含一或多個「活動」,代表要執行的動作。 使用工作流程設計工具來安排工作流程的活動。 在此程序中,我們會將兩個活動新增至工作流程:HandleExternalEventActivity 和 OnWorkFlowItemChanged。 這些活動會監視 [共用文件] 清單中文件的檢閱狀態
建立工作流程活動
工作流程應該會顯示在工作流程設計工具中。 如果不是,則在 [方案總管] 中開啟 Workflow1.cs 或 Workflow1.vb。
在設計工具中,選擇 [OnWorkflowActivated1] 活動。
在 [屬性] 視窗中,於 [Invoked] 屬性旁邊輸入 [onWorkflowActivated],然後選擇 Enter 鍵。
程式碼編輯器隨即開啟,且名為 onWorkflowActivated 的事件處理常式方法會新增至 Workflow1 程式碼檔案。
切回工作流程設計工具、開啟工具箱,然後展開 [Windows Workflow v3.0] 節點。
在 [工具箱] 的 [Windows Workflow v3.0] 節點中,執行下列其中一組步驟:
開啟 [While] 活動的捷徑功能表,然後選擇 [複製]。 在工作流程設計工具中,開啟 [onWorkflowActivated1] 活動底下那一行的捷徑功能表,然後選擇 [貼上]。
將 [While] 活動從 [工具箱] 拖曳至工作流程設計工具,然後將該活動連線到 [onWorkflowActivated1] 活動底下的那一行。
選擇 [WhileActivity1] 活動。
在 [屬性] 視窗中,將 [條件] 設定為 [程式碼條件]。
展開 [條件] 屬性,在子 [條件] 屬性旁邊輸入 [isWorkflowPending],然後選擇 Enter 鍵。
程式碼編輯器隨即開啟,且名為 isWorkflowPending 的方法會新增至 Workflow1 程式碼檔案。
切回工作流程設計工具、開啟工具箱,然後展開 [SharePoint 工作流程] 節點。
在 [工具箱] 的 [SharePoint 工作流程] 節點中,執行下列其中一組步驟:
開啟 [OnWorkflowItemChanged] 活動的捷徑功能表,然後選擇 [複製]。 在工作流程設計工具中,開啟 [whileActivity1] 活動內那一行的捷徑功能表,然後選擇 [貼上]。
將 [OnWorkflowItemChanged] 活動從 [工具箱] 拖曳至工作流程設計工具,然後將該活動連線到 [whileActivity1] 活動內的那一行。
選擇 [onWorkflowItemChanged1] 活動。
在 [屬性] 視窗中,設定如下表所示的屬性。
屬性 值 CorrelationToken workflowToken Invoked onWorkflowItemChanged
處理活動事件
最後,檢查每個活動的文件狀態。 如果已檢閱文件,則工作流程完成。
處理活動事件
在 Workflow1.cs 或 Workflow1.vb 中,將下列欄位新增至
Workflow1類別頂端。 此欄位用於活動中,判斷工作流程是否已完成。將下列方法新增至
Workflow1類別。 此方法會檢查文件清單的Document Status屬性值,以判斷是否已檢閱文件。 如果Document Status屬性設定為Review Complete,則checkStatus方法會將workflowPending欄位設定為 false,表示工作流程已準備好完成。將下列程式碼新增至
onWorkflowActivated和onWorkflowItemChanged方法,以呼叫checkStatus方法。 當工作流程啟動時,onWorkflowActivated方法會呼叫checkStatus方法來判斷是否已檢閱文件。 如果尚未檢閱,工作流程會繼續。 儲存文件時,onWorkflowItemChanged方法會再次呼叫checkStatus方法,以判斷是否已檢閱文件。 當workflowPending欄位設定為 true 時,工作流程會繼續執行。將下列程式碼新增至
isWorkflowPending方法,以檢查workflowPending屬性的狀態。 每次儲存文件時,whileActivity1 活動都會呼叫isWorkflowPending方法。 這個方法會檢查 ConditionalEventArgs 物件的 Result 屬性,以判斷 WhileActivity1 活動應該繼續還是完成。 如果此屬性設定為 true,活動會繼續。 否則,活動會完成,且工作流程也會完成。儲存專案。
測試 SharePoint 工作流程範本
當您啟動偵錯工具時,Visual Studio 會將工作流程範本部署至 SharePoint 伺服器,並將工作流程與 [共用文件] 清單建立關聯。 若要測試工作流程,請從 [共用文件] 清單中的文件啟動工作流程的執行個體。
測試 SharePoint 工作流程範本
在 Workflow1.cs 或 Workflow1.vb 中,於 onWorkflowActivated 方法旁邊設定中斷點。
選擇 F5 鍵,以建置並執行解決方案。
SharePoint 網站隨即出現。
在 SharePoint 的瀏覽窗格中,選擇 [共用文件] 連結。
在 [共用文件] 頁面中,選擇 [文件庫工具] 索引標籤上的 [文件] 連結,然後選擇 [上傳文件] 按鈕。
在 [上傳文件] 對話方塊中,選擇 [瀏覽] 按鈕、選擇任何文件檔、選擇 [開啟] 按鈕,然後選擇 [確定] 按鈕。
這會將選取的文件上傳至 [共用文件] 清單,然後啟動工作流程。
在 Visual Studio 中,驗證偵錯工具是否停止於
onWorkflowActivated方法旁邊的中斷點。選擇 F5 鍵以繼續偵錯。
您可以在這裡變更文件的設定,但目前選擇 [儲存] 按鈕,將其保留為預設值。
這會傳回預設 SharePoint 網站的 [共用文件] 頁面。
在 [共用文件] 頁面中,驗證 [MySharePointWorkflow - Workflow1] 資料行下方的值是否已設定為 [進行中]。 這表示工作流程正在進行中,而且文件正在等待檢閱。
在 [共用文件] 頁面中,選擇文件、選擇出現的箭號,然後選擇 [編輯屬性] 功能表項目。
將 [文件狀態] 設定為 [檢閱完成],然後選擇 [儲存] 按鈕。
這會傳回預設 SharePoint 網站的 [共用文件] 頁面。
在 [共用文件] 頁面中,驗證 [文件狀態] 資料行下方的值是否已設定為 [檢閱完成]。 重新整理 [共用文件] 頁面,並驗證 [MySharePointWorkflow - Workflow1] 資料行下方的值是否已設定為 [已完成]。 這表示工作流程已完成,且已檢閱文件。
下一步
您可以深入了解如何從下列主題建立工作流程範本:
若要深入了解 SharePoint 工作流程活動,請參閱 SharePoint Foundation 的工作流程活動。
若要深入了解 Windows Workflow Foundation 活動,請參閱 System.Workflow.Activities 命名空間。