У меня есть класс пакета Apex, который необходим для обновления логического поля контакта «Active_Subscription__c» на основе состояния связанного поля настраиваемого объекта.
Пользовательский объект «Subscription__c» имеет мастер «Contact__c».поле сведений, а также имеет логическое поле IsActive__c.
Я хочу запустить пакет, который найдет все подписки, связанные с записью контакта по идентификатору.Если он находит какие-либо активные подписки, ему нужно установить для параметра Active_Subscription__c в записи контакта значение true, в противном случае - false.
Я довольно новичок в apex и, похоже, не могу этого сделатьвызвать нужные мне результаты, заранее спасибо.
global class BatchContactUpdate implements Database.Batchable<sObject>{
List <Subscription__c> mapSubs = new List <Subscription__c> ();
List <Contact> contactlist = new List <Contact> ();
global Database.QueryLocator start(Database.BatchableContext BC) {
return DataBase.getQueryLocator([SELECT Id, Contact__c FROM Subscription__c WHERE Contact__c =:contactlist]);
}
global void execute(Database.BatchableContext BC , List <Subscription__c> mapSubs) {
for (Subscription__c sub : mapSubs){
for (Contact con : contactList){
if (con.Id == sub.Contact__c && sub.IsActive__c == true){
contactlist.add(new Contact(
Active_Subscriptions__c = true
));
} else {
contactlist.add(new Contact(
Active_Subscriptions__c = false
));
}
}
}
update contactlist;
}
global void finish(Database.BatchableContext BC){
}
}