避免将记录插入Salesforce的解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了避免将记录插入Salesforce的解决方案相关的知识,希望对你有一定的参考价值。

我需要在满足某个条件时停止插入记录。在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个相同的记录怎么办?那个触发器开始看起来有点复杂。如果不允许用户看到应该检测到冲突的记录(共享规则等等),我的意思是你的场景听起来像是“全局”,但是你需要写一个“不共享”的代码在触发器处理程序中)。

这一切当然是可能的,但是用一个独特的领域制作它并且称它为一天要容易得多。并告诉业务处理不一定友好的错误消息。

以上是关于避免将记录插入Salesforce的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

MySql避免重复插入记录的几种方法

Salesforce 执行顺序

Salesforce 小知识:大量“子记录”的处理方法

salesforce 零基础学习(五十五)java通过SOAP方式定时访问某个文件然后插入到sObject中

Mysql中 unique列插入重复值该怎么解决

如何避免插入重复记录?