前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Salesforce 关于Apex中【SaveResult】

Salesforce 关于Apex中【SaveResult】

原创
作者头像
repick
发布于 2022-05-23 09:34:58
发布于 2022-05-23 09:34:58
71400
代码可运行
举报
文章被收录于专栏:SalesforceSalesforce
运行总次数:0
代码可运行

1.

在ApexClass中使用【Database.insert(xxxList)】登录或者使用【Database.update(xxxList)】更新多条数据时,如果其中一条有错误,所有登录或者更新都不会成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Database.insert(oppList);

如下往Opportunity表中插入两天数据,第二条因为必须入力项目【CloseDate】没有设定值,所以两条数据都不会插入成功。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<Opportunity> oppList = new List<Opportunity>();
Opportunity oppItem1 = new Opportunity();
oppItem1.Name = 'OppTest003';
oppItem1.StageName = 'Prospecting';
oppItem1.CloseDate = System.today();
oppList.add(oppItem1);

Opportunity oppItem2 = new Opportunity();
oppItem2.Name = 'OppTest004';
oppItem2.StageName = 'Prospecting';
oppList.add(oppItem2);

Database.SaveResult[] srList = Database.insert(oppList);

// Iterate through each returned result
for (Database.SaveResult sr : srList) {
    if (sr.isSuccess()) {
        // Operation was successful, so get the ID of the record that was processed
        System.debug('>>>>Successfully inserted Opportunity. ' + sr);
        System.debug('>>>>Successfully inserted Opportunity. Opportunity ID: ' + sr.getId());
    }
    else {
        // Operation failed, so get all errors                
        for(Database.Error err : sr.getErrors()) {
            System.debug('>>>>The following error has occurred.');                    
            System.debug('>>>>err.getStatusCode(): ' + err.getStatusCode());
            System.debug('>>>>err.getMessage(): ' + err.getMessage());
            System.debug('>>>>Opportunity fields that affected this error: ' + err.getFields());
        }
    }
}

2.

如下,当第二个参数设定为false时,则会忽视错误,插入没有问题的数据。其中有错误的数据,详细错误信息会保存在【sr.getErrors()】中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Database.insert(oppList, false);

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<Opportunity> oppList = new List<Opportunity>();
Opportunity oppItem1 = new Opportunity();
oppItem1.Name = 'OppTest003';
oppItem1.StageName = 'Prospecting';
oppItem1.CloseDate = System.today();
oppList.add(oppItem1);

Opportunity oppItem2 = new Opportunity();
oppItem2.Name = 'OppTest004';
oppItem2.StageName = 'Prospecting';
oppList.add(oppItem2);

Database.SaveResult[] srList = Database.insert(oppList, false);

// Iterate through each returned result
for (Database.SaveResult sr : srList) {
    if (sr.isSuccess()) {
        // Operation was successful, so get the ID of the record that was processed
        System.debug('>>>>Successfully inserted Opportunity. ' + sr);
        System.debug('>>>>Successfully inserted Opportunity. Opportunity ID: ' + sr.getId());
    }
    else {
        // Operation failed, so get all errors                
        for(Database.Error err : sr.getErrors()) {
            System.debug('>>>>The following error has occurred.');                    
            System.debug('>>>>err.getStatusCode(): ' + err.getStatusCode());
            System.debug('>>>>err.getMessage(): ' + err.getMessage());
            System.debug('>>>>Opportunity fields that affected this error: ' + err.getFields());
        }
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Salesforce sendEmail 常见应用(二)
看上边log,虽然显示发送成功,但是并没有收到邮件,看来在异常处理里边无法发送出去,只能另外想办法。
repick
2022/09/11
3840
Salesforce sendEmail 常见应用(二)
salesforce 零基础学习(四十五)Approval Lock & UnLock相关注意事项
Zero-Zhang
2018/01/05
9510
Salesforce学习 Lwc(九)【数据初期取得与更新】运用详解
开发自定义画面经常遇到的场景就是增删改查,关于数据更新用到的几个方法进行一下总结,常用到的有以下几种。
repick
2020/12/29
1.1K0
Salesforce Future method in salesforce – @future
future方法用于在系统资源可用时在单独的线程中运行进程,我们可以将future方法用于任何我们希望在其自己的线程中异步运行的操作。
repick
2021/11/23
8520
Salesforce Future method in salesforce – @future
Salesforce Batch Apex 批处理(一)
Apex SOQL 每次最多只能查询50000条数据,DML 可以操作的数据更少只有10000条,如果想要处理大量数据,就要考虑使用Batch Apex功能,Batch Apex实现Database.batchable接口
repick
2021/11/20
1.7K0
Salesforce Batch Apex 批处理(一)
salesforce零基础学习(九十六)Platform Event浅谈
本篇参考:https://developer.salesforce.com/blogs/2018/07/which-streaming-event-do-i-use.html
Zero-Zhang
2020/05/08
1.2K0
Salesforce Batch Apex 批处理(二)Schedulable接口
定时任务调用需要单独写一个ApexClass,实现Schedulable接口,并重写execute方法,举例如下
repick
2021/11/22
9860
Salesforce Batch Apex 批处理(二)Schedulable接口
salesforce 零基础学习(三十六)通过Process Builder以及Apex代码实现锁定记录( Lock Record)
本文通过介绍如何通过Process Builder和Apex实现对于Opportunity的锁定和解锁功能,以帮助企业在特定的情况下对Opportunity进行管控。通过创建自定义的Process Builder,可以简化加锁和解锁流程,并利用Permission Set来控制谁可以执行加锁和解锁操作。同时,也可以使用Apex类来实现加锁和解锁功能,通过调用Approval的lock和unlock方法来实现相关操作。
Zero-Zhang
2018/01/05
9210
salesforce 零基础学习(三十六)通过Process Builder以及Apex代码实现锁定记录( Lock Record)
Salesforce sendEmail 如何发生邮件(一)
SendEmailResult = connection.sendEmail(SingleEmailMessage emails[]);
repick
2022/09/11
7250
Salesforce学习 CommunityCloud(八)实现自定义error页面跳转
上一篇讲了自定义LogoutPage跳转,在我们正常开发过程中还会遇到需要跳转到自定义的error画面,例如当我们在Lwc中更新某个项目,但是在当前User下,没有更新权限,这样就需要跳转到自定义的Error画面,实现方法是首先做成一个VisualforcePage,用来显示error信息或者固定文言,然后在Community的Error Page装载VisualforcePage,最后在更新处理的方法实现调整,下边是具体步骤。
repick
2021/01/25
4460
Salesforce学习 CommunityCloud(八)实现自定义error页面跳转
salesforce的功能_salesforce开发
161、【String.format escape curly braces – 转义花括号】:
全栈程序员站长
2022/11/01
7.1K0
salesforce的功能_salesforce开发
Salesforce Apex 自定义排序类(一)
使用【lightning-datatable】表示ListView数据时,当表示Opportunity表中Amount项目,需要排序功能时,可以直接在SOQL中使用ORDER BY进行排序,也可以在自定义Apex中实现。
repick
2022/05/25
7670
Salesforce Apex 自定义排序类(一)
salesforce 零基础学习(三十七) DML及Database方法简单描述
Zero-Zhang
2018/01/05
6490
salesforce零基础学习(一百零五)Change Data Capture
https://developer.salesforce.com/docs/atlas.en-us.232.0.api_streaming.meta/api_streaming/using_streaming_api_durability.htm
Zero-Zhang
2021/07/14
8330
salesforce零基础学习(一百零五)Change Data Capture
Salesforce lightning datatable 每行表示Link项目
使用LightningDatatable做成的ListView时,有时需要自定义Link项目,例如需要Link式的行删除事件,当点击消除Link时,消除当前行数据,如下
repick
2022/05/20
6380
Salesforce lightning datatable 每行表示Link项目
Salesforce Batch Apex 批处理(三)Database.Stateful接口
Batch处理中,根据特定需求,会有在处理中计算数量的业务,例如现在需要计算所有满足条件的Opportunity表total__c的总额。
repick
2021/11/22
8880
Salesforce Batch Apex 批处理(三)Database.Stateful接口
Salesforce Flow如何调用Batch(一)
ApexClass中做成用于传递参数的内部类【UpdateOpportunityRequest】,引数必须指定成【InvocableVariable】
repick
2022/09/27
5040
Salesforce Flow如何调用Batch(一)
Salesforce学习 Lwc(二) 自定义开发ApexClass应用
使用Lwc时候,有时会遇到因为权限问题无法更新的状况,这个时候就要通过ApexClass进行更新操作,因为ApexClass可以无视权限,下边这个例子就是ApexClass与LightningWebComponent结合,实现更新画面上的项目。
repick
2020/12/12
1.1K0
Salesforce JS中如何使用 Filter函数与Map函数与concat()方法
使用【lightning-datatable】时,当取得所有Opportunity数据,只需要StageName = “Prospecting”的数据时
repick
2022/05/16
3.4K0
Salesforce JS中如何使用 Filter函数与Map函数与concat()方法
Salesforce中通过SOAP API开发java的web service服务以及踩坑
首先需要的是自己Salesforce平台的权限通过。登陆自己的Salesforce,下载WSDL文件。
故久
2019/09/29
1.3K0
Salesforce中通过SOAP API开发java的web service服务以及踩坑
推荐阅读
相关推荐
Salesforce sendEmail 常见应用(二)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档