1
アカウントと連絡先の両方にBilling_Address__cフィールドがあります。連絡先には、active__cというチェックボックスもあります。 active__cがtrueでAccount Billing_Address__cが更新されている場合、ContactのBilling_Address__cが更新されます。ここにトリガーがあります。それは正常に動作しています。しかし、何か問題があるかどうか、またはこれをメモリの点でどのように最適化できるかを知りたいですか?アカウントを更新して更新する連絡先
public static void updateContactBillingAddress(List<Account> lstNew, Map<Id,Account> mapOld){
Set<Id> accIds = new Set<Id>();
for(Account acc : lstNew){
if(acc.Billing_Address__c != mapOld.get(acc.Id).Billing_Address__c && acc.Billing_Address__c !=null){
accIds.add(acc.Id);
}
}
if(!accIds.isEmpty()){
List<Contact> lstContact = new List<Contact>([Select ID,active__c, Account.Billing_Address__c,Billing_Address__c FROM Contact where AccountID IN :accIds]);
List<Contact> lstUpdateCon = new List<Contact>();
for(Contact con : lstContact){
if(con.active__c == true){
if(con.Billing_Address__c != con.Account.Billing_Address__c){
con.Billing_Address__c = con.Account.Billing_Address__c;
lstUpdateCon.add(con);
}
}
else{
con.Billing_Address__c =null;
lstUpdateCon.add(con);
}
}
if(!lstUpdateCon.isEmpty()){
update lstUpdateCon;
}
}
}
(http://stackoverflow.com/questions/43397554/trigger-on-account-to-update-contact-field)[連絡先フィールドを更新するためのアカウント上のトリガ]の可能性のある重複 – Jaiman