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