我一直在嘗試以編程方式停止工作流。 我已經閱讀了各種職位和MSDN,這可以通過更新 通過更新請求的異步操作狀態來完成。 但每次我更新請求。工作流卡在中間階段,如取消或暫停,不能達到最終狀態。客戶關係管理2011,以編程方式停止自定義工作流程
有什麼想法?
protected void ExecutePostAccountUpdate(LocalPluginContext localContext)
{
if (localContext == null)
{
throw new ArgumentNullException("localContext");
}
string fetchXML = "<fetch mapping='logical' count='50' version='1.0'>" +
"<entity name='asyncoperation'>" +
"<filter>" +
"<condition attribute='regardingobjectid' operator='eq' value='" +
localContext.PluginExecutionContext.PrimaryEntityId + "' />" +
"</filter>" +
"</entity>" +
"</fetch>";
EntityCollection col = localContext.OrganizationService.RetrieveMultiple(new FetchExpression(fetchXML));
if (col.Entities.Count > 0)
{
AsyncOperation a = (AsyncOperation)col[0];
a.StateCode = AsyncOperationState.Completed;
a.StatusCode = new OptionSetValue(32);
localContext.OrganizationService.Update(a);
}
}
您的意思是您試圖從該工作流程中的代碼中止工作流程,或者您的意思是,從外部中止工作流程,就像在單獨的一段代碼中一樣?可能值得發佈一些你到目前爲止的代碼示例。 – Alec 2012-07-05 10:58:13
Hey alec,我添加了示例代碼,我試圖從工作流程外部放棄它,在這種情況下,我嘗試使用插件。謝謝 – Eranser 2012-07-05 11:16:12
'StateCode'和'StatusCode'通常不會對通用更新做出太好的反應。你嘗試過發佈一個'SetStateRequest'嗎? – 2012-07-05 18:55:16