【问题标题】:Make field mandatory in import在导入时使字段为必填项
【发布时间】:2017-05-18 13:50:26
【问题描述】:

我的实体 X 中有一个必填字段,但是在导入数据时,即使我不给该必填字段赋值,我也可以创建记录,这不好。 即使在导入时,我如何才能使该字段成为必填项?

提前致谢,

【问题讨论】:

    标签: dynamics-crm-2011 dynamics-crm dynamics-crm-online dynamics-crm-2016


    【解决方案1】:

    具有“实体”范围的业务规则是执行此场景的最简单的无代码解决方案。

    例如,批量数据导入、工作流、插件、API/SDK 调用会绕过 CRM 表单,因此也会绕过您可能已配置的任何 JavaScript 或表单业务规则验证。这些类型的服务器端验证通常需要插件或同步工作流。

    幸运的是,业务规则现在有一个新的范围“实体”,它适用于服务器级别而不是表单级别。这意味着这些业务规则,就像插件和同步工作流一样,即使您在交易中没有使用 CRM 表单,也会执行,因为它们发生在平台(服务器端)而不是表单(浏览器/客户端)上.

    了解更多信息的链接:https://community.dynamics.com/crm/b/gonzaloruiz/archive/2016/08/15/business-rules-vs-sync-workflows-in-crm

    【讨论】:

    • 我的一个班轮解决方案是直截了当的,没有其他 3 个答案中未提及的代码解决方案。链接只是为了获得额外的知识,如果有人(非 crm;选民)碰到并想再次搜索以了解什么是业务规则(谷歌幸运直接链接):)
    【解决方案2】:

    您可以创建在 Create 上运行的 Pre Operation 插件,如果实体不包含此字段,则抛出错误。(编辑:我没有尝试过,所以我不能 100% 确定它会工作)

    或者

    您可以创建在 Create 上运行的 Post Operation 插件,如果实体不包含此字段,则删除目标实体。

    【讨论】:

      【解决方案3】:

      大多数必填字段仅在用户界面上强制执行。某些系统实体有一些例外,例如联系人 - 姓氏、帐户 - 姓名、事件 - 姓名等。

      您希望在平台级别强制执行必填字段,例如在进入数据库之前的用户界面之后。

      最简单的方法如下:

      1. 在创建或更改字段后向您的实体添加同步工作流。
      2. 向工作流添加条件,如果您的字段不包含数据,则运行以下步骤:
        • 停止工作流;取消,并带有您选择的消息。

      当未填充字段并且不会创建或更新记录时,这将导致导入失败。如果您要在 CRM 中对此进行测试,这将导致向用户显示一个错误对话框。

      【讨论】:

      • 您应该设置要在创建记录之前执行的工作流或插件。这样您就可以阻止创建记录。如果之后检查完成,它只会显示错误并仍然创建记录
      • @StefanWilliam-Worrall;我相信更改将作为失败的 CRM 事务的一部分被回滚,因此如果创建了记录,则应将其删除。
      【解决方案4】:

      在进行导入时不强制执行字段的要求级别(例如,Business Required)(主要通过 UI 强制执行)。

      在进行导入之前,您必须确保在源数据中设置了必填字段。

      【讨论】:

        猜你喜欢
        • 2018-01-07
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 1970-01-01
        • 2015-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多