Автоматическое копирование поля в поле поиска с помощью триггера Apex (Salesforce)

Я пытаюсь найти способ автоматического копирования из одного поля в другое поле в контактах Salesforce, если это вообще возможно, пожалуйста. (т.е. у меня есть одно поле с именем «Contact: Mailing Zip/Postal Code», которое я пытаюсь автоматически скопировать в другое поле с именем «Postcode_Lookup_c».)

Целью этого является автоматическое копирование поля с почтовым индексом/почтовым индексом контакта в поле поиска формулы, которое ссылается на созданный мной настраиваемый объект под названием Postcode_Lookup__c. Это в основном связывает определенные отношения на местах, к которым я привязал список местных советов и регионов в штате.

Идея состоит в том, что контакт будет автоматически заполнен соответствующим местным советом и регионом штата на основе почтового индекса их почтового адреса.

Большое спасибо за помощь, Джо :-)


person joabo    schedule 16.09.2013    source источник
comment
s23.postimg.org/j8t6bf45n/Screenshot_Salesforce.jpg   -  person joabo    schedule 16.09.2013
comment
Не могли бы вы немного пояснить, чего вы пытаетесь достичь?   -  person Moti Korets    schedule 16.09.2013
comment
Это то, что можно сделать довольно легко с Apex, но вам потребуются хотя бы некоторые навыки разработки.   -  person Samuel DR    schedule 17.09.2013


Ответы (1)


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

trigger Postcode_Copy on Contact(before insert, before update) {

  Set < String > MailingPostalCodes = new Set < String > ();
  Map < String, Postcode_Lookup__c > postCode_Postal_map = new Map < String, Postcode_Lookup__c > ();

  for (Contact a: Trigger.new) {
    if (a.MailingPostalCode != null && a.MailingPostalCode.trim() != '')
      MailingPostalCodes.add(a.MailingPostalCode);
  }

  for (Postcode_Lookup__c postRec: [Select ID, Name from Postcode_Lookup__c where Name in: MailingPostalCodes]) {
    postCode_Postal_map.put(postRec.Name, postRec);
  }
  if (postCode_Postal_map.size() > 0) {
    for (Contact con: Trigger.new) {
      if (con.MailingPostalCode != null && con.MailingPostalCode.trim() != '') {
        if (postCode_Postal_map.containsKey(con.MailingPostalCode)) {
          con.Postcode_Lookup__c = postCode_Postal_map.get(con.MailingPostalCode).id;
        }
      }
    }
  }
}
person joabo    schedule 13.03.2018