[英]Sharepoint 2010 start workflow programmatically error
我有一個與內容類型相關的工作流。 我嘗試從事件接收器中相同內容類型的代碼中啟動它,因此當更新項目時,如果存在特定條件(狀態 = 准備審查),我將啟動它。
//這一行確實找到了工作流關聯
var assoc = properties.Web.ContentTypes["Experiment Document Set"]
.WorkflowAssociations.GetAssociationByName("Experiment Review Workflow",
ultureInfo.CurrentUICulture);
//我曾嘗試使用我在網上找到的東西中的這一行,但它會返回 null
assoc = properties.Web.WorkflowAssociations
.GetAssociationByName("Experiment Review Workflow",
CultureInfo.CurrentUICulture);
下一行給出了一個錯誤:
var result = properties.Web.Site.WorkflowManager
.StartWorkflow(properties.ListItem, assoc,string.Empty,
SPWorkflowRunOptions.Synchronous);
System.ArgumentException:工作流無法啟動,因為工作流與列表中不存在的內容類型相關聯。 在重新啟動工作流之前,必須將內容類型添加到列表中。
為了檢查這一點,我正在查看正在更新的列表項的內容類型,它是正確的
properties.ListItem.ContentType.Name "Experiment Document Set"
所以基本上我有一個與內容類型“實驗文檔集”相關聯的工作流。 當我嘗試從“實驗文檔集”中的事件接收器啟動工作流時,我收到一條錯誤消息,指出列表中不存在沒有意義的內容類型“實驗文檔集”。
確保 assoc.Enabled = true。
可能為時已晚,無法提供幫助,但我剛剛了解到您不能在StartWorkflow
方法中使用String.Empty
(或null
)。
從http://www.tonytestasworld.com/post/Howto-Start-a-Sharepoint-Workflow-Programmatically.aspx看來, assoc.AssociationData
可以用於沒有任何配置參數的簡單工作流。
我(還)無法對此進行測試,因為我提前了一步,可能類似於您在前兩個代碼示例中提到的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.