代码之家  ›  专栏  ›  技术社区  ›  prudhvi kota

如果帐户中的地址发生更改,则应复制到所有相关联系人的地址中

  •  -1
  • prudhvi kota  · 技术社区  · 7 年前

    销售人员 散装

    1 回复  |  直到 7 年前
        1
  •  0
  •   Matt Kaufman    7 年前

    public static void afterUpdate(List<Account> newList, List<Account> oldList){
      Set<Id> accountIds = new Set<Id>();
      for ( Integer i=0;i<newList.size();i++ ){
        if ( newList[i].BillingStreet != oldList[i].BillingStreet ){
          accountIds.add(newList[i].Id);
        }
      }
      List<Contact> contactsToUpdate = new List<Contact>();
      for ( Contact c : [
        SELECT Id, MailingStreet, Account.BillingStreet
        FROM Contact
        WHERE AccountId IN :accountIds
      ]){
        if ( c.MailingStreet != c.Account.BillingStreet ){
          c.MailingStreet = c.Account.BillingStreet;
          contactsToUpdate.add(c);
        }
      }
      if ( contactsToUpdate.size() > 0 ){
        update contactsToUpdate;
      }
    }