当满足特定条件时,我需要停止插入记录。我借助addError()在触发器的beforeInsert中进行了此更改。 我对此解决方案有疑问:apex addError - remove default error message。 我想删除此默认错误消息,仅保留我的自定义消息。我也想把它做大胆一点。我现在确信,使用addError()无法实现这些功能。
是否有其他解决方案?我的意思是要阻止此记录插入?
我关心的对象是ObjectA。而且ObjectA可以查询ObjectB。 ObjectA中的此ObjectB字段必须唯一。没有两个ObjectA记录可以包含对相同ObjectB字段的查找。那是我需要停止插入的时间。
有人可以帮我吗?
答案 0 :(得分:0)
也大胆且更大
仅当您具有自定义UI(Visualforce / Aura组件/ Lightning Web组件...)时才可能。我不会在这个上面花费太多时间。着重注意正确的逻辑并确保它也可以通过API运行(因此,不仅手动插入而且Data Loader也受到保护)。
如果addError
不能满足您的要求,请考虑添加一个辅助文本(18)字段。将其标记为唯一,然后使用before insert,before update
触发器(或工作流程)以该查找中的值填充它。
唯一性应由数据库处理。您是否真的准备好完美地在“插入之前”编写该内容?那更新呢?取消删除(从回收站还原)怎么办?如果我想同时加载2条相同的记录怎么办?该触发器看起来似乎更加复杂。如果不允许用户看到应该检测到冲突的记录(共享规则等),该怎么办?我的意思是您的方案听起来像唯一性应该是“全局”,但是您确实需要很好的理由编写“不共享”代码在触发器处理程序中)。
这当然是可能的,但是通过一个唯一的字段进行命名并一天将其变得容易得多。并告诉企业处理不一定友好的错误消息。