【问题标题】:Crm 2011 Plugin doesn't trigger on Message "RemoveMember"Crm 2011 插件不会在消息“RemoveMember”上触发
【发布时间】:2013-04-05 07:44:27
【问题描述】:

我为 CRM 2011 构建了一个自定义插件。基本上,相同的插件已部署在两个不同的环境中:测试和专业。 这些环境显然是双胞胎。相同的实体,相同的配置等。

插件在更新特定布尔字段时触发。在真实值上,触发并将联系人添加到列表中。因此,使用相同的逻辑,在设置为 false 的相同字段上,触发并从列表中删除联系人。 现在,在“测试环境”上,它会在两种情况下触发。但是在 "Pro 环境" 上,当布尔字段设置为 false 时,它​​不会触发!

我放弃任何关于逻辑错误实现的假设。因为它在第一个环境中运行良好。 上面,在这种情况下它不写任何日志。这让我更加确信它根本不会触发。

有谁知道,可能是什么问题?

【问题讨论】:

  • 如果它在一种环境中运行良好,而在另一种环境中运行良好。我假设您在某个地方的插件注册过程中犯了一个错误。检查您的步骤和图像(如果适用)是否在您的生产环境中正确注册。
  • 您好,感谢您的回答。因此,正如我所说,在 prod 环境中,两个操作 (AddMember / removeMember) 都使用相同的步骤注册:消息更新。这很奇怪,因为在 AddMember 上它可以工作。

标签: dynamics-crm-2011 dynamics-crm


【解决方案1】:

首先,确保你的理论是正确的。在插件顶部抛出异常,看看是否在 CRM 中同时出现 True/False 异常弹出窗口。如果你这样做了,那么插件 is 在 True/False 更新时触发并且你的代码有问题 - 我无法想象它是什么,因为它在开发中工作,但至少你'已经证明这不是 CRM 插件基础架构的错。

如果您没有收到 False 场景的弹出异常,则唯一可能的答案是 CRM 的插件基础架构认为不应更新该字段。当更新为 False 后屏幕刷新时,该字段是否仍显示 False 还是返回 True?可以通过从传递到 Pre-Operation 插件的实体的字段列表中删除字段更新来“取消”字段更新 - 是否可能有其他插件在此之前执行并可能取消该字段更新?

我能想到的最后一件事:您说的是更新,但您是指创建吗?如果该布尔字段的默认值在 Prod 中设置为 False,但在 Dev 中未设置为 False,则当您创建实体时,如果该字段设置为 False,则该字段将不会包含在字段更新列表中(因此不会触发您的插件),因为系统已经知道在 Create 上使用的默认值是 False。

【讨论】:

  • 嗨,乔希,非常感谢您的回答。所以,如果我更改默认字段,他的情况就会逆转!然后,我一直在做一些测试,我发现只有当我调用多行时它才会触发。例如,如果我选择要插入到列表中的许多联系人。如果我打电话给一个联系人,它就可以了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多