Salesforce中如何恢复误删除的记录 - SOQL | ALL ROWS Usage

前言】:本文不考虑通过选中垃圾箱中的记录,然后通过点击undelete的方式恢复数据的方法。
误删场景】:a. 业务人员或管理员从画面上将主数据/业务数据误删;b. 系统管理员使用dml操作将数据误删。
补救前提】:用户没有将删除的数据从垃圾箱Recycle Bin中清空。
补救步骤】:我们通常会在匿名窗口中通过执行undelete操作来恢复数据,具体步骤如下:
1. fech删除的数据;
2. 执行undelete操作;
3. 运行代码;
为了提高检索的高效性,不妨使用IsDelete字段作为删选条件之一。
Sample】:销售代表sales1误删了他的所有连同联系人的客户信息,然后找到系统管理员予以恢复。
Code preview:

List<Account> accList  = [SELECT Id FROM Account WHERE Owner.Name = 'sales1' ALL ROWS];
undelete accList;
System.debug('restore size: ' + accList.size());

Note:如果单纯的按上述查询语句在Query Editor中搜索不到进入垃圾箱的记录。
SOQL statements can use the ALL ROWS keywords to query all records in an organization, including deleted records and archived activities.
You can use ALL ROWS to query records in your organization's Recycle Bin. You cannot use the ALL ROWS keywords with the FOR UPDATE keywords.
上述SOQL中我们看到了ALL ROWS这条语句,详情见Querying All Records with a SOQL Statement
 

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页