參照KB的視頻,瞭解了流程表單與流程的關聯。詳細資料地址。
下面具體說一下操作過程的API和Aspx表單與infopath表單的區別.
表單是基於商務程序的規則建立的
aspx表單與infopath表單不一樣. infopath提供了所見即所得 (WYSIWYG)的頁面做ui頁面, aspx表單是用自訂頁面做ui頁面,
aspx表單抽象層次比較低,所以你容易理解表單資料如何流向工作流程,
資料流向是從表單流向宿首頁面(IniWrkflIP.aspx)中,調用sharepoint的方法StartWorkflow ------------ site.WorkflowManager.StartWorkflow(SPListItem item,SPWorkflowAssociation wf,String EventData),該表單必須是Infopath表單.
SPListItem item 是啟動流程的Item,
SPWorkflowAssociation wf是建立流程執行個體的關聯類別.(流程的模板)
String EventData是流程的初始化表單資料.
用aspx表單你必須先建立一個aspx的UI,在aspx頁面中寫代碼調用工作流程的方法和註冊到其他頁面中.
Aspx表單是標準的aspx頁面.
如果你熟悉該技術,那麼可以添加控制項來收集非工作流程頁面的流程資料.你可以在頁面中實現你需要的操作和驗證. 在aspx頁面中寫代碼調用工作流程的方法和註冊到其他頁面中唯一的一件事情是指定具體的工作流程,使用者點擊提交按鈕,需要調用下來的方法:
在關聯表單中調用:SPWorkflowAssociation.CreateListAssociation(SPWorkflowTemplate WorkflowTemplate,String WorkflowAssociationName,SPList taskList,SPList historyList).然後把關聯表單的資料添加到流程的列表中.調用List.AddWorkflowAssociation(SPWorkflowAssociation workflowAssociation).
在初始化表單中調用:SPWorkflowManager.StartWorkflow (SPListItem item,SPWorkflowAssociation association,
string eventData).
在任務表單中調用:SPWorkflowTask.AlterTask(SPListItem task,Hashtable htData, bool fSynchronous)
在修改表單中調用:SPWorkflowManager.ModifyWorkflow (SPWorkflow workflow,SPWorkflowModification modification,string contextData)
使用者通過參數調用這些方法來收集資料,或者用其他的SharePoint物件模型和頁面的參數來收集這些資訊。
然後你就可以在任何需要該流程的地方調用該流程,例如重新導向或者是更改頁面時。