一般一個工作流程工程裡面會包含很多工作流程工作表單。我們在Visual Studio 2005開發的時候如何讓程式知道在某個任務的時候給使用者顯示相應的工作流程工作表單呢?
我們在設計工作流程的時候,建立每個任務項的CreateTask Activity的對應有一個SPWorkflowTaskProperties類型的TaskProperties屬性。我們在建立一個Task時候一般的過程類似:
private void CreateTask1(object sender, EventArgs e){this.taskID_ReviewerApproval = Guid.NewGuid(); //initialize the task idthis.workflowTask1Properties.Title = "Reviewer: Please review this document";this.workflowTask1Properties.AssignedTo = this.ReviewerName;this.workflowTask1Properties.Description = this.instruction;this.workflowTask1Properties.TaskType = 0;
this.workflowTask1Properties.ExtendedProperties["Comment"] = "";this.workflowTask1Properties.ExtendedProperties["Instruction"] = this.instruction;this.workflowTask1Properties.ExtendedProperties["CurrentReviewer"] = this.ReviewerName;}
一般如果你的工作流程中只有一個任務表單,上面紅色標識的“this.workflowTask1Properties.TaskType = 0;”這句可以不寫。
但是,如果你有多個不同的任務表單,就必須包括這句代碼來指定使用哪個任務表單。
TaskType的值和Workflow.xml中的Metadata中的Task*_FormURN有如下對應關係:
<MetaData> <Instantiation_FormURN>urn:schemas-microsoft-com:office:infopath:SMWorkflowDemoStartForm:-myXSD-2006-05-21T19-13-08</Instantiation_FormURN> <Association_FormURN>urn:schemas-microsoft-com:office:infopath:SMWorkflowDemoStartForm:-myXSD-2006-05-21T19-13-08</Association_FormURN> <Task0_FormURN>urn:schemas-microsoft-com:office:infopath:SMWorkflowDemoApproveForm:-myXSD-2006-04-27T03-00-28</Task0_FormURN> <Task1_FormURN>urn:schemas-microsoft-com:office:infopath:SMWorkflowDemoReviseForm:-myXSD-2006-04-27T03-11-15</Task1_FormURN> <Task2_FormURN>urn:schemas-microsoft-com:office:infopath:SMWorkflowDemoApproveForm:-myXSD-2006-04-27T03-00-28</Task2_FormURN>
<StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl></MetaData>
TaskType為0的對應Task0_FormURN,TaskType為1的對應Task1_FormURN,以此類推。如果不指定TaskType的值,預設使用Task0_FormURN。原文來自:http://blog.joycode.com/ipark/archive/2007/02/11/93478.aspx