【发布时间】:2017-05-18 13:50:26
【问题描述】:
我的实体 X 中有一个必填字段,但是在导入数据时,即使我不给该必填字段赋值,我也可以创建记录,这不好。 即使在导入时,我如何才能使该字段成为必填项?
提前致谢,
【问题讨论】:
标签: dynamics-crm-2011 dynamics-crm dynamics-crm-online dynamics-crm-2016
我的实体 X 中有一个必填字段,但是在导入数据时,即使我不给该必填字段赋值,我也可以创建记录,这不好。 即使在导入时,我如何才能使该字段成为必填项?
提前致谢,
【问题讨论】:
标签: dynamics-crm-2011 dynamics-crm dynamics-crm-online dynamics-crm-2016
具有“实体”范围的业务规则是执行此场景的最简单的无代码解决方案。
例如,批量数据导入、工作流、插件、API/SDK 调用会绕过 CRM 表单,因此也会绕过您可能已配置的任何 JavaScript 或表单业务规则验证。这些类型的服务器端验证通常需要插件或同步工作流。
幸运的是,业务规则现在有一个新的范围“实体”,它适用于服务器级别而不是表单级别。这意味着这些业务规则,就像插件和同步工作流一样,即使您在交易中没有使用 CRM 表单,也会执行,因为它们发生在平台(服务器端)而不是表单(浏览器/客户端)上.
【讨论】:
您可以创建在 Create 上运行的 Pre Operation 插件,如果实体不包含此字段,则抛出错误。(编辑:我没有尝试过,所以我不能 100% 确定它会工作)
或者
您可以创建在 Create 上运行的 Post Operation 插件,如果实体不包含此字段,则删除目标实体。
【讨论】:
大多数必填字段仅在用户界面上强制执行。某些系统实体有一些例外,例如联系人 - 姓氏、帐户 - 姓名、事件 - 姓名等。
您希望在平台级别强制执行必填字段,例如在进入数据库之前的用户界面之后。
最简单的方法如下:
当未填充字段并且不会创建或更新记录时,这将导致导入失败。如果您要在 CRM 中对此进行测试,这将导致向用户显示一个错误对话框。
【讨论】:
在进行导入时不强制执行字段的要求级别(例如,Business Required)(主要通过 UI 强制执行)。
在进行导入之前,您必须确保在源数据中设置了必填字段。
【讨论】: