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