1

希望你在这些时候一切都好,下面是一个常见的场景,它获取一些 sObject 记录,执行一些处理,例如调用外部 REST 端点或执行一些计算,然后在数据库中异步更新它们。. 以下代码获取 Account 记录的集合,为每条记录设置 parentId,然后更新数据库中的记录。

我的问题是:-

A) Why i need to set the parentId for each record for Queueable Apex?

B) Why i cant use public identifier (mind you i know differences between public and private identifier :)) but why here we used private in Queueable Apex and then we have to set the values?

public class UpdateParentAccount implements Queueable {

private List<Account> accounts;
private ID parent;

public UpdateParentAccount(List<Account> records, ID id) {
    this.accounts = records;
    this.parent = id;
}
public void execute(QueueableContext context) {
    for (Account account : accounts) {
      account.parentId = parent;
      // perform other processing or callout
    }
    update accounts;
   }

}

来源:- https://trailhead.salesforce.com/en/content/learn/modules/asynchronous_apex/async_apex_queueable

4

1 回答 1

1

父 ID 的设置是可以异步完成的任务的一个示例。这是一个选择不佳的示例,因为相同的任务可以在没有队列的情况下同步完成。(如果有很多帐户记录正在更新,那么将此任务移动到异步可能是个好主意)。

公共与私有 - 将字段设为私有是一种将数据封装在类中的最佳实践。它用于隐藏类中结构化数据对象的值或状态,从而防止直接访问它们。在队列的情况下,这有点像一个实用程序类,将在非常特定的上下文中使用,因此您可以将变量公开并删除构造函数。

于 2020-04-15T07:45:06.623 回答