SalesForce DML基于集合的操作和原子事务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SalesForce DML基于集合的操作和原子事务相关的知识,希望对你有一定的参考价值。

我刚刚开始阅读有关Salesforce APEX及其DML的内容。您似乎可以通过构建列表,将要更新的项目添加到列表,然后发出update myList调用来进行批量更新。

这样的update调用是否会创建一个原子事务,因此如果由于任何原因对列表中某个项的更新失败,整个更新操作是否会回滚?如果没有,有没有办法在原子事务中包装更新?

答案

您的整个上下文是一个原子事务。当Apex代码运行时,SF已经启动,无论是Visualforce按钮单击,触发器还是任何其他入口点。如果遇到验证错误,则为null 指针 引用异常,尝试除以零,抛出异常等 - 整个事情将被回滚。

update myList;以“全有或全无”模式工作。如果其中一个记录在验证规则必填字段缺失等方面失败 - 您将获得异常。您可以将它包装在try-catch块中,但仍然 - 整个列表无法加载。

如果你需要“保存你所能”的行为(你)r - 阅读有关此电话的Database.update()版本。它采用可选参数,让您完全可以做到这一点。

最后但并非最不重要的是,如果您正在插入复杂的方案(插入帐户,插入联系人,其中一个联系人失败,但你在try-catch中有这个,所以帐户保存好了所以现在,你必须手动删除吗?弱... 。)你有Database.setSavepoint()Database.rollback()电话。

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_dml_database.htm

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_transaction_control.htm

https://salesforce.stackexchange.com/questions/9410/rolling-back-dml-operation-in-apex-method

以上是关于SalesForce DML基于集合的操作和原子事务的主要内容,如果未能解决你的问题,请参考以下文章

Salesforce LWC学习 LDS & Wire Service 实现和后台数据交互 & meta xml配置

如何避免在创建用户的Salesforce测试中出现MIXED_DML_OPERATION错误

BigQuery:使用 DML 原子地替换日期分区

更新用户对象时 Salesforce Apex 触发器中的 MIXED_DML_OPERATION 错误

salesforce零基础学习(八十六)Ajax Toolkit (VF页面中使用及javascript action使用)

MySQL DML操作--------CURD最佳实战