上週研究了一下利用Visual Studio 2010開發SharePoint工作流,當然,重點是使用自定義的任務編輯頁面(Custom Task Edit Page)。在網上找了很多資料,大部分都是用Infopath來做,但我想說的是:不是每臺SharePoint服務器都可以使用InfoPath Form Service,但是每臺SharePoint服務器都可以使用SharePoint Foundation Workflow.
好了,進入正題,我把自己做的一個例子放上來,希望能給學習SharePoint Workflow的朋友一點幫助。
基本的代碼結構如圖:
本人比較懶,所以沒有改缺省文件的名稱。
Workflow的Elements.xml文件如下圖:
列表結構也很簡單,只需要新建一個'Custom List', 然後新建三個字段:'Approver' -- User類型,'Expense Account' -- Number類型,以及'Comment' -- Text類型。
該流程模擬一個審批流程,如果'Approver'就是流程的發起者,則不會生成Task,否則,就會生成一個Task去進行審批。
新建一個Item並手動啓動工作流,由於當前用戶和Approver不是同一個人,可以看到有個Task生成了。
點擊task進行編輯,就會彈出我們自己定義的taskEdit.aspx頁面。
我們將'Expense Account'字段的值顯示在頁面中,並且當我們處理完task後,在此處輸入的'Comments'的值也會返回到'Comment'字段中去。
審批完後,返回列表,即可看到我們剛纔輸入的'Comments'值。
具體代碼請看附件。
Summary
此例子的重點在於:
1. 使用自定義的任務編輯頁面(Custom Task Edit Page);
2. Custom Task Edit Page與工作流之間的數據傳遞;
3. Custom ConentType的創建以及TaskListContentTypeId屬性的使用。