2014-06-05 7 views
32

Ich wollte benutzerdefinierte Felder von Lead zu Karte mit benutzerdefinierten Kontaktfeld zuordnen, wenn mit binding.convertLead() konvertiert.Karte Benutzerdefinierte Felder von Leads in Salesforce

Es sollte das Verhalten replizieren, was wir von UI manuell tun, wenn benutzerdefinierte Felder von Blei mit Kontakt zugeordnet werden (Navigieren zu Setup-> Customize-> Leads-> Felder dann in Blei Benutzerdefinierte Felder & Beziehungen Abschnitt Karte führen Felder Knopf.)

Ich habe den C# Code, um eine Leitung in Kontakt umzuwandeln. Allerdings muss ich die benutzerdefinierten Felder von Blei auf benutzerdefinierte Felder des Kontakts zuordnen.

Wie zum Beispiel:

1) Lead.Newsletter__c (Custom Bereich des Kontrollkästchen Typs in Blei)

2) Contact.Newsletter__c (Custom Bereichs des Kontrollkästchen Typs in Kontakt)

3) Nun, Wenn Lead.Newsletter__c überprüft wird, dann wenn ich irgendeine Leitung zu Kontakt umwandle, sollte Contact.Newsletter__c automatisch überprüft werden.

ich in der Lage bin, alle benutzerdefinierte Felder holen durch describeSObjects von Partener WSDL-Proxy-Klasse, aber noch nicht entfernt, wo die Änderungen

vorgenommen werden sollten
+0

Können Sie mich wissen lassen, wenn Sie versuchen, ein Blei durch Apex Controller-Klasse zu konvertieren. – Ilyas

Antwort

0

Sie viele Details zur Verfügung gestellt haben, mit zu arbeiten, kann aber verwendest du vielleicht eine Linq-Projektion?

zB Leads.Select (x => neuer Kontakt {Newsletter = x.Newsletter});

1

Wenn Sie ein einfaches Design wollen, würde ich es im Wesentlichen in einer statischen Mapper-Klasse tun. Wir brauchen definitiv mehr Informationen, um Ihnen zu helfen, aber kurz davor, hier ist ein paar psuedocode (nicht Produktionscode), die ein ausreichendes Design-Muster sein sollte.

public static class CustomMapper 
{ 
    public static void leadToContact(Lead lead, ID contactID) 
    { 
     var contact = new Contact(contactID); 
     ///do mapping here 
     ///eg 
     ///returnval.Newsletter__c = Lead.Newsletter__c; 

     contact.save(); 
    } 
} 

dann für die Nutzung:

//convert the lead to a contact prior to usage here, and get the resulting contact id 
CustomMapper.leadToContact(myOldLead, myContactID); 

Wenn Sie die Konvertierung durchführen, dann unmittelbar nach dem benutzerdefinierten Mapping mit einem Update durchführen, dann wird es sowieso zu den Benutzern augenblicklich scheint. Ohne weitere Informationen ist dies das beste generische Designmuster, das ich empfehlen kann.

Verwandte Themen