【问题标题】:Checkbox = true if specific field(s) are updated如果特定字段已更新,复选框 = true
【发布时间】:2019-07-13 11:25:53
【问题描述】:

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

我在 CRM 中尝试做的是有一个名为“自上次 QB 同步以来更新地址”之类的复选框。它已被锁定,因此用户无法触摸它,并且应在用户更新特定字段时自动检查:公司名称、地址、电话、电子邮件。

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

【问题讨论】:

    标签: dynamics-crm crm microsoft-dynamics dynamics-crm-online dynamics-365


    【解决方案1】:

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

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

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

    【讨论】:

    • 使用网络资源可能会带来风险,因为网络资源只有在其父 CRM 表单打开时才会“活动”。这意味着如果某些其他进程更新这些字段,则您的 Web 资源中包含的代码将不会执行。 Arun的回答不会有这个问题
    【解决方案2】:

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

    希望它能帮助 - M.Acosta.D

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • @Arun 提到的方法还可以处理从 UI 以外的任何其他方式创建/更新任何帐户/联系人记录的场景。
      猜你喜欢
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多