使用Apex触发器(Salesforce)自动将字段复制到查找字段

时间:2013-09-16 07:16:41

标签: triggers copy salesforce contacts apex

如果可能的话,我正试图找到一种方法从Salesforce联系人中的一个字段自动复制到另一个字段。 (即我有一个名为“Contact: Mailing Zip/Postal Code”的字段,我正在尝试自动复制到另一个名为“Postcode_Lookup_c”的字段。)

它背后的目的是自动将带有联系人邮政编码/邮政编码的字段复制到公式查找字段,该字段引用我创建的名为Postcode_Lookup__c的自定义对象。这基本上将某些领域关系联系在一起,我已经将一系列地方委员会与他们联系起来。该州的地区。

根据邮寄地址邮政编码,联系人将自动填充其相关的地方议会和州的地区。

非常感谢你的帮助,乔: - )

1 个答案:

答案 0 :(得分:0)

对于那些曾经尝试做同样事情的人来说,这里的代码最终完成了任务......

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;
        }
      }
    }
  }
}