2014-06-05 1 views
32

Je souhaitais mapper des champs personnalisés de prospects à mapper avec un champ de contact personnalisé lors de la conversion à l'aide de binding.convertLead().Mappage de champs personnalisés de prospects dans Salesforce

Il devrait reproduire le comportement ce que nous faisons manuellement à partir de l'interface utilisateur lorsque les champs personnalisés de plomb sont mis en correspondance avec un contact (la navigation à page-> Customize-> Leads-> Les champs puis dans plomb des champs personnalisés & relations sectionChamps de pistes de carte.)

J'ai le code C# pour convertir une dérivation en contact. Cependant, j'ai besoin de mapper les champs personnalisés de plomb à des champs de contact personnalisés.

Comme par exemple:

1) Lead.Newsletter__c (champ personnalisé de type case à cocher en plomb)

2) Contact.Newsletter__c (champ personnalisé de type case à cocher en contact)

3) Maintenant, si Lead.Newsletter__c est cochée puis quand je convertis un fil à contacter, alors Contact.Newsletter__c doit être vérifié automatiquement.

Je suis en mesure d'aller chercher tous les champs personnalisés en utilisant describeSObjects de classe proxy Partener WSDL, mais toujours pas situés là où les changements devraient être apportés

+0

Pourriez-vous me faire savoir si vous essayez de convertir une avance à travers la classe contrôleur Apex. – Ilyas

Répondre

0

Vous havent fourni beaucoup de détails à travailler avec, mais peut vous utilisez peut-être une projection Linq?

p.ex. Leads.Select (x => nouveau contact {Newsletter = x.Newsletter});

1

Si vous voulez un design simple, je le ferais essentiellement dans une classe de mappeur statique. Nous avons certainement besoin de plus d'informations pour vous aider, mais en plus de cela, voici quelques psuedocode (pas le code de production) qui devrait être un modèle de conception suffisante.

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

puis pour l'utilisation:

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

Si vous effectuez la conversion, puis immédiatement après effectuer la mise en correspondance personnalisée une mise à jour, il semblera instantanée aux utilisateurs de toute façon. Sans plus d'informations, c'est le meilleur modèle de conception générique que je pourrais recommander.

Questions connexes