执行插件超过2分钟超时错误,如何办?
生活随笔
收集整理的這篇文章主要介紹了
执行插件超过2分钟超时错误,如何办?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
摘要: 本人微信公眾號:微軟動態CRM專家羅勇 ,回復289或者20181221可方便獲取本文,同時可以在第一間得到我發布的最新博文信息,follow me!我的網站是 www.luoyong.me 。
我們都知道,默認情況下Dynamics 365執行的插件有2分鐘的限制,若達到2分鐘還沒有執行完畢,會觸發異常,類似如下:
System.TimeoutException: Couldn’t complete execution of the custom activity *** plug-in within the 2-minute time limit.
那我改到工作流行不行?如果改到自定義工作流活動,同樣也有類似的限制,一個自定義工作流活動的執行時間不能超過2分鐘,若超過了,會觸發異常,和插件的異常是一樣的。
如果碰到這種情況怎么辦?
若是工作流中有多個循環的話,考慮將這個循環拆出來,每個循環的邏輯用一個異步工作流來做,這個異步工作流設置為僅僅支持手工觸發,記得,一定要設置成支持手工觸發。
然后這個循環體里面的就用調用工作流來代替,類似如下的代碼,這樣在很多情況下就可以繞過這個2分鐘的限制。
var fetchXml = @"<fetch version='1.0' mapping='logical' distinct='false' no-lock='true'><entity name='workflow'><attribute name='workflowid' /><filter type='and'><condition attribute='type' operator='eq' value='1' /><condition attribute='category' operator='eq' value='0' /><condition attribute='name' operator='eq' value='{your workflow name}' /><condition attribute='statecode' operator='eq' value='1' /></filter></entity> </fetch>";var workflowEntities = orgSvc.RetrieveMultiple(new FetchExpression(fetchXml));if (workflowEntities.Entities.Count == 0){tracingService.Trace("Workflow does not exist or activated.");return;}foreach (var item in scEntities.Entities){ExecuteWorkflowRequest req = new ExecuteWorkflowRequest(){EntityId = item.Id,WorkflowId = workflowEntities.Entities[0].Id};orgSvc.Execute(req);}?
轉載于:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_plugin_2_minutes_solution.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的执行插件超过2分钟超时错误,如何办?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 循环从数据库分页取数据批量修改数
- 下一篇: WPF 自定义控件的坑(蠢的:自定义控件