Почему мне нужно установить parentId для каждой записи для Queueable Apex - PullRequest
0 голосов
/ 15 апреля 2020

Надеюсь, у вас все хорошо и хорошо в эти времена. Ниже приведен распространенный сценарий для получения некоторого набора записей sObject, выполнения некоторой обработки, такой как выполнение вызова внешней конечной точки REST или выполнение некоторых вычислений, а затем обновление их в база данных асинхронно. , Следующий код берет коллекцию учетных записей, устанавливает 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

1 Ответ

1 голос
/ 15 апреля 2020

Установка родительского идентификатора является примером задачи, которая может выполняться асинхронно. Это несколько неудачно выбранный пример, потому что ту же задачу можно было бы выполнить синхронно без очереди . (Если обновляется много записей Учетной записи, то перенос этой задачи в asyn c может быть хорошей идеей.)

Publi c по сравнению с приватным - создание поля private является наилучшей практикой, поскольку способ инкапсуляции данных в классе. Он используется, чтобы скрыть значения или состояние объекта структурированных данных внутри класса, тем самым предотвращая прямой доступ к ним. В случае с Queuable это похоже на служебный класс, который будет использоваться в очень специфическом c контексте, чтобы вы могли сделать переменные publi c и удалить конструктор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...