【发布时间】:2011-12-13 22:34:48
【问题描述】:
我想向我的自定义实体添加一个“单行文本”字段,该字段应该是唯一的。 当我尝试创建重复值时,如何让 Crm 抛出异常 记录?
【问题讨论】:
标签: dynamics-crm-2011 microsoft-dynamics
我想向我的自定义实体添加一个“单行文本”字段,该字段应该是唯一的。 当我尝试创建重复值时,如何让 Crm 抛出异常 记录?
【问题讨论】:
标签: dynamics-crm-2011 microsoft-dynamics
据我所知,您无法通过配置来做到这一点。
您需要使用一些客户端代码来查询该字段的现有值,以查看新输入的值是否唯一。您可以使用 jQuery 和 CRM REST 服务 (ODATA) 之类的工具在字段上执行异步验证;虽然它可能不是即时的,但您可能需要考虑如何将其呈现给用户。
或者,您可以使用工作流来执行此操作,但这会更不及时 - 它可能必须在保存后触发。
【讨论】:
您必须为此要求创建一个插件,以处理此实体的预创建/预更新步骤。在此插件中,您必须检查传递的值是否唯一。如果不是,则抛出异常,取消操作并向用户显示对话框(如果插件同步运行)。
throw new InvalidPluginExecutionException("Value passed for 'attribute' is not unique.");
【讨论】:
另一种选择是直接在数据库中创建唯一的 SQL 索引。
【讨论】: