【问题标题】:Business Process Error when Merging Case records via C#通过 C# 合并案例记录时出现业务流程错误
【发布时间】:2019-10-21 14:30:09
【问题描述】:

我在创建“事件”时创建了一个术后插件。规则是在 30 天内合并任何具有相同标题的“事件”。我有查询表达式可以得到我需要的数据。如果有 0 个具有相同标题的匹配项,则创建案例,如果有多个匹配项,我通过 createdon 升序查询该标题,以获取第一个“事件”创建的 ID。我的追踪器显示我得到的所有数据都是正确的。我的问题是与以下代码合并:

                                //merge tickets here
                            EntityReference masterTicket = new EntityReference();
                            masterTicket.Id = (Guid)masterTicketId;
                            masterTicket.LogicalName = "incident";

                            MergeRequest merge = new MergeRequest();
                            merge.SubordinateId = targetIncidentId;
                            merge.Target = masterTicket;
                            merge.PerformParentingChecks = false;
                            tracer.Trace($"Merging {targetIncidentId} into {masterTicket.Id}.");
                            var merged = (MergeResponse)service.Execute(merge);
                            tracer.Trace($"Merged Response: {merged}");

我在这里使用了以下示例:merge link

我认为问题可能是我看到的所有代码也在更新记录。我不想更新任何记录,我只想将记录与匹配的标题合并。

我已经为此奋斗了一段时间,如果有任何帮助,我们将不胜感激。

谢谢

编辑:插件跟踪日志显示失败:

var merged = (MergeResponse)service.Execute(merge);

因为该行之后的跟踪器没有显示在跟踪日志中。

编辑:以下是错误日志文件:

Unhandled exception:  Exception type: System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault]

消息:以下插件发生错误:详细信息:
80609179-2920-4a9e-91b9-65b10a3a3a4c
-2147220891 操作状态 0 子错误码 -2146233088 http%3a%2f%2fgo.microsoft.com%2ffwlink%2f%3fLinkID%3d398563%26lcid%3d1033%26error%3dMicrosoft.Crm.CrmException%26client%3dplatform%26sv%3d9.0.42.1001%26de%3dLive%26opsys% 3dMicrosoft+Windows+NT+10.0.14393.0%26errorCode%3d-2147220891 以下插件发生错误:
2019-10-21T14:20:08.3608048Z
假的

[ORG_Dynamics365:ORG_Dynamics365.TicketStacking] [e5b0700e-e3f0-e911-a812-000d3a33f7ca:ORG_Dynamics365.TicketStacking: 事件的创建]输入 Microsoft.Dynamics.Service.Plugins.PreOperationIncidentCreate.Execute(), 相关 ID:970488ac-6888-4eb6-9294-cdf1098e5371,发起用户: bc80c76a-38d3-e911-a9b8-000d3a367d35 退出 Microsoft.Dynamics.Service.Plugins.PreOperationIncidentCreate.Execute(), 相关 ID:970488ac-6888-4eb6-9294-cdf1098e5371,发起用户: bc80c76a-38d3-e911-a9b8-000d3a367d35 进入 Microsoft.Dynamics.Service.Plugins.PreOperationIncidentCreateEntitlement.Execute(), 相关 ID:970488ac-6888-4eb6-9294-cdf1098e5371,发起用户: bc80c76a-38d3-e911-a9b8-000d3a367d35 退出 Microsoft.Dynamics.Service.Plugins.PreOperationIncidentCreateEntitlement.Execute(), 相关 ID:970488ac-6888-4eb6-9294-cdf1098e5371,发起用户: bc80c76a-38d3-e911-a9b8-000d3a367d35 进入 Microsoft.Dynamics.Service.Plugins.PostOperationIncidentCreateEntitlement.Execute(), 相关 ID:970488ac-6888-4eb6-9294-cdf1098e5371,发起用户: bc80c76a-38d3-e911-a9b8-000d3a367d35 退出 Microsoft.Dynamics.Service.Plugins.PostOperationIncidentCreateEntitlement.Execute(), 相关 ID:970488ac-6888-4eb6-9294-cdf1098e5371,发起用户: bc80c76a-38d3-e911-a9b8-000d3a367d35

目标事件 ID:8491c0df-0df4-e911-a813-000d3a33f11e 目标标题: 20191021 10:12a 目标提出时间:10/21/2019 2:20:08 PM traget local 现在时间:10/21/2019 2:20:08 PM 之前检索多个之后 retrieveMultiple 在 foreach 循环中最旧的事件 ID: 74e2f090-0df4-e911-a813-000d3a33f11e 标题:20191021 10:12a 大师 票证指南:74e2f090-0df4-e911-a813-000d3a33f11e 最旧 2019 年 10 月 21 日下午 2:17:58 总记录数:2 1 条记录匹配。 时间跨度比原始票多 0.00150799356481481 天 (少于 30 天)。门票将与原始门票合并。 将 8491c0df-0df4-e911-a813-000d3a33f11e 合并到 74e2f090-0df4-e911-a813-000d3a33f11e.

【问题讨论】:

  • 这些案件是否开放?任何可下载的日志文件错误或内部异常?
  • @ArunVinoth 是的,这两个案例都是开放和活跃的。没有内部异常,但正在使用错误日志文件编辑问题。
  • @ArunVinoth 我已将插件步骤更改为异步并且错误消失了。但是,这些案例没有合并。
  • @ArunVinoth 虽然它在切换到异步后没有出现业务流程错误,但我仍然在日志中看到错误。
  • 您可以检查插件步骤的执行顺序并进行调整。 community.dynamics.com/crm/f/microsoft-dynamics-crm-forum/…

标签: c# plugins merge dynamics-crm dynamics-365


【解决方案1】:

经过cmets的来回对话,总结出以下几点:

  1. 有一些第三方 ITSM 插件在案例合并时触发并且错误冒泡
  2. 要控制插件步骤的执行顺序,我们必须使用为排序触发顺序注册的步骤的Execution order

Read more

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2011-09-30
    相关资源
    最近更新 更多