Checkbox = true 如果更新特定字段

Checkbox = true if specific field(s) are updated

我正在 Dynamics CRM 365 和 QuickBooks Desktop 之间同步帐户和联系信息。

我想在 CRM 中做的是有一个名为 "Address updated since last QB Sync" 的复选框。它被锁定,因此用户无法触摸它,当用户更新特定字段时应该自动检查它:公司名称、地址、phone、电子邮件。

尝试使用业务规则执行此操作,但显然似乎不可能。将是处理此问题的最佳方式(网络资源、业务流程等)?

Pre-update plugin 将是您最好的选择。如果这四个属性中的任何一个发生更改,请编写一个 C# 插件来设置目标实体中的复选框 (bool) 属性。

将目标实体注册为联系人,即使您可以在插件步骤的过滤属性中过滤这四个属性。

这避免了显式的记录更新,而且只有当这四个字段中的任何一个被更新时插件才会触发,并且标志将在同一个数据库事务中设置为附加属性。

您还可以创建一个工作流进程,当某些属性更新时触发,这更符合 MSFT 推荐的使用自定义策略,缺点是您必须为每个属性创建一个工作流实体

希望有帮助 - M.Acosta.D

我最后做的是创建一个网络资源并将其分配给我想监视更改的字段的 OnChange 事件:

function fieldChanged() {
  Xrm.Page.getAttribute("new_updatessincelastqbsync").setValue(true);
}

address1_composite 有点棘手,因为它没有检测到 OnChange 事件。必须将包含复合字段的字段添加为隐藏字段,并将 Web 资源添加到 OnChange 事件中。现在它正在 100% 工作。