Pages

Wednesday, 21 September 2016

SALESFORCE : Update Field Opportunity dari Contact Roles di Opportunity

Di Opportunity terdalapat Section Contact Roles yang berfungsi untuk memasukkan siapa saja pihak pelanggan yang terkait dengan opportunity tersebut. Dan pada contact roles kita bisa menandai siapa yang menjadi Primary Contact.

Apabila kita bermaksud export file melalui data loader ataupun Apex Triger untuk mengeluarkan nama dan contact number primry contact, hal ini tidak bisa dilakukan karena record diletakkan di tempat yang berbeda. Oleh karena itu, kita harus membuat field baru di Opportunity untuk menampung Primari Contact Name dan Primary Contact Number.

Kedua field ini tidak bisa kita set menggunakan formula(Dikarenakan tidak bisa mengambil field dari child record) ataupun Roll up summary (dikarenakan tidak ada pilihan di Summarized Object). Hal ini hanya bisa dilakukan dengan membuat triger dengan code seperti di bawah ini :




Trigger PrimaryContact on Opportunity (before insert, before update) {

   for (Opportunity o : Trigger.new) {

       List<OpportunityContactRole> ContactRole =
            [SELECT ContactID from OpportunityContactRole where IsPrimary = True and OpportunityId = :o.id];
      
       if(ContactRole.size() > 0){
           List<Contact> c =
                [SELECT Name, MobilePhone FROM Contact WHERE ID = :ContactRole[0].ContactID limit 1];
               
           if(c.size() > 0){
               o.Primary_Contact_Name__c = c[0].Name;
               o.Primary_Contact_No__c = c[0].MobilePhone;
           }
           else{
               o.Primary_Contact_Name__c = '';
               o.Primary_Contact_No__c = '';
           }
       }

    }
}

No comments:

Post a Comment