Wie eine neue Führung und Aktualisierung eines bestehenden Vorsprung in Salesforce hinzufügen
-
04-10-2019 - |
Frage
Ich bin neu in Apex Entwicklung und ich fange an meinem Projekt in Apex an der Arbeit. Ich möchte folgendes tun:
einen E-Mail-Dienst // Ich dachte, diesen Teil
erhalten emailaddress aus einer E-Mail // wissen, wie diese
tun
wenn bereits vorhandenes Blei oder Kontakt mit der gleichen
emailaddress
aktualisiert seine Informationen
sonst
schafft neue Führung
Ich möchte kow, wie ich meine Datenbank (die Leads und Kontakte Salesforce) suchen und aktualisieren bestehende Benutzer-Info.
Lösung
Sie sollten eine Abfrage auf der Leitung und Kontakt mit der E-Mail-Adresse als Kriterien ausführen für Sie Abfrage. Wenn es gibt 0 Datensätze für den Lead und 0 Datensätze für den Kontakt, dann würden Sie ein neues Blei erstellen.
Ihre Anfrage konnte zurückkehren, um mehr als 1 Datensatz für beide Blei oder Kontakt, so dass Sie eine Strategie entwickeln müssen, um diesen Fall zu behandeln. E-Mail-Adresse ist nicht eindeutig sein.
public class StackOverflowExample {
public static void test(String email) {
handleNewEmail(email);
}
private static void handleNewEmail(String email) {
List<Lead> leads = [select id, email from Lead where email = :email];
List<Contact> contacts = [select id, email from Contact where email = :email];
if (leads.size() == 0 && contacts.size() == 0) {
//Create new lead
insert new Lead(Company = 'Lead Company', FirstName = 'firstname', LastName = 'lastname', Email = email);
} else if (leads.size() == 1) {
// Update this lead
leads[0].FirstName = 'newfirstname';
update leads;
} else if (contacts.size() == 1) {
// Update this contact
contacts[0].FirstName = 'newfirstname';
update contacts;
} else {
// Must be more than 1 contact or lead
System.debug('\nMore than 1 contact or lead.');
}
}
}
Die andere Option ist eine Suche Einschränkung des Umfangs auf E-Mail-Felder auszuführen.
public class StackOverflowExample {
public static void test(String email) {
handleNewEmail(email);
}
private static void handleNewEmail(String email) {
List<List<SObject>> searchResults = [FIND :email IN Email Fields RETURNING
Lead(Id, FirstName, LastName),
Contact(Id, FirstName, LastName)];
List<Lead> leads = ((List<Lead>)searchResults[0]);
List<Contact> contacts = ((List<Contact>)searchResults[1]);
if (leads.size() == 0 && contacts.size() == 0) {
//Create new lead
insert new Lead(Company = 'Lead Company', FirstName = 'firstname', LastName = 'lastname', Email = email);
} else if (leads.size() == 1) {
// Update this lead
leads[0].FirstName = 'newfirstname';
update leads;
} else if (contacts.size() == 1) {
// Update this contact
contacts[0].FirstName = 'newfirstname';
update contacts;
} else {
// Must be more than 1 contact or lead
System.debug('\nMore than 1 contact or lead.');
}
}
}
Andere Tipps
In der Salesforce integrierte Hilfe können Sie einige Informationen über das Objekt InboundEmail . Die Seite enthält auch zwei Beispiele zum Arbeiten mit Kontakten und Leads basierend auf E-Mail-Adresse aus der Nachricht extrahiert.