执行插件超过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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值