2014-06-05 23 views
32

Volevo mappare campi personalizzati di piombo per mappare con campo personalizzato di contatto 'quando convertiti usando binding.convertLead().Mappa Campi personalizzati di lead in Salesforce

Dovrebbe replicare il comportamento quello che stiamo facendo manualmente dall'interfaccia utente quando i campi personalizzati di piombo sono mappati con contatto (navigare a Setup> Personalizza-> Leads-> Campi poi nel piombo campi personalizzati & relazioni sezione Pulsante Campi lead mappa.)

Ho il codice C# per convertire un contatto in contatto. Tuttavia ho bisogno di mappare i campi personalizzati di piombo in campi personalizzati di contatto.

Come per esempio:

1) Lead.Newsletter__c (campo personalizzato di controllo a forma di scatola in piombo)

2) Contact.Newsletter__c (campo personalizzato di tipo casella di controllo a contatto)

3) Ora, se viene selezionato Lead.Newsletter__c, quando converto qualsiasi contatto in contatto, è necessario controllare automaticamente Contact.Newsletter__c.

sono in grado di recuperare tutti i campi personalizzati utilizzando describeSObjects di Partener WSDL classe proxy, ma ancora in grado di trovano dove i cambiamenti devono essere effettuate

+0

Potrebbe farmi sapere se si sta tentando di convertire un lead attraverso la classe Apex Controller.? – Ilyas

risposta

0

havent fornito un sacco di dettagli con cui lavorare, ma può forse usi una proiezione Linq?

es. Leads.Seleziona (x => nuovo Contatto {Newsletter = x.Newsletter});

1

Se si desidera un design semplice, essenzialmente lo farei in una classe di mapping statico. Abbiamo sicuramente bisogno di più informazioni per aiutarti, ma in breve, ecco alcuni psuedocode (non codice di produzione) che dovrebbe essere un modello di progettazione sufficiente.

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

poi per l'utilizzo:

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

Se si esegue la conversione, poi subito dopo eseguire la mappatura personalizzata con un aggiornamento, allora sembrerà istantanea agli utenti in ogni modo. Senza ulteriori informazioni, questo è il modello di progettazione generico migliore che potrei raccomandare.