Beispielskript, das die Verkaufschancen-Tabelle abfragt
Dieses Beispielskript fragt die Verkaufschancen-Tabelle mit den benutzerdefinierten Aktionen Alle Verkaufschancen abrufen, Verkaufschancen für Account-ID abrufen und Verkaufschancen-Details abrufen ab.
- Der erste Teil wählt die richtige benutzerdefinierte Aktion aus und bereitet Eingaben dafür vor.
- Der zweite Teil ruft die Aktion auf.
- Der dritte Teil verarbeitet die Ausgaben der Aktion.
Speichenaktionen auswählen und die Eingaben vorbereiten
- Alle Verkaufschancen abrufen
- Verkaufschancen für Account-ID abrufen
- Verkaufschancen-Details abrufen
v_query enthalten sind, entscheiden, welche Aktion aufgerufen werden soll./****** Choose action and prepare action inputs *****/
var action = null;
var inputs = {};
// look up opportunity by salesforce record id
if (v_query.isGet()) {
action = "get_opportunity_details";
inputs.salesforce_opportunity_record_id = v_query.getSysId();
// look up opportunities by salesforce account id
} else if (v_query.getParameter("u_sf_account_id")) {
if (v_query.getParameter("u_sf_account_id") == "undefined") {
gs.addInfoMessage(“Opportunities cannot be retrieved because “ +
“this “Account does not have associated “ +
“Salesforce Account. Please contact System “ +
“Administrator.");
return;
} else {
action = "get_opportunities_for_account_id";
inputs.salesforce_account_id = v_query.getParameter("u_sf_account_id");
}
// look up all opportunities
} else {
action = "get_all_opportunities";
}
Beachten Sie, dass dieses Skript eine Informationsmeldung konfiguriert, falls der Salesforce-Account nicht definiert ist, wenn er für die Aktion erforderlich ist. Der nicht definierte Wert stammt aus der Beziehung, die in Zugehörige Listen zum Erstellen der Verbindung zwischen dem Kunden-Account und den Salesforce-Verkaufschancen verwenden beschrieben ist.
Wenn der Salesforce-Account nicht definiert ist, gibt es in diesem Fall nichts, was abgefragt werden kann, und die Funktion wird zurückgegeben, ohne die Speichenaktion aufzurufen.
Speichenaktionen aufrufen
Rufen Sie in diesem Abschnitt des Skripts die Aktion mit den Namen der Salesforce-Spoke und der ausgewählten Aktion auf, und speichern Sie die Ausgaben des Aufrufs.
/***** Call action *****/
var outputs =
sn_fd.FlowAPI.executeAction("sn_salesforce_spok." + action, inputs);
Aktionsausgaben verarbeiten
Verarbeiten Sie in diesem Abschnitt des Skripts die Ausgaben beginnend mit der Prüfung auf Fehler.
/***** Process action outputs *****/
if (outputs.status != "Success") {
throw new Error(outputs.error_message);
}
Wenn die Abfrage keine Fehler zurückgibt, muss das Skript die zurückgegebenen Datensätze verarbeiten und sie als Zeilen zur Remotetabelle hinzufügen. Ordnen Sie die Salesforce-Verkaufschancenfelder den Remotetabellen-Spalten zu.
var opportunities = outputs.opportunities.data;
for (var i = 0; i < opportunities.length; i++) {
var opportunity = opportunities[i];
v_table.addRow({
"u_sf_amount": opportunity.Amount,
"u_sf_close_date": opportunity.CloseDate,
"u_sf_name": opportunity.Name,
"u_sf_probability": opportunity.Probability + "%",
"u_sf_account_id": opportunity.AccountId,
"u_sf_stage": opportunity.StageName,
“u_sf_type": opportunity.Type,
"sys_id": opportunity.Id,
});
}
Beachten Sie, dass die Salesforce-Verkaufschancen-Datensatz-ID der sys_id der Remotetabelle zugewiesen ist. Dadurch wird sichergestellt, dass Listen und Formulare für die Remotetabelle ordnungsgemäß funktionieren und dass wir die Datensatz-ID mit v_query.getSysId() extrahieren können, wenn das Remotetabellen-Skript das nächste Mal aufgerufen wird.
Anschließend wird die Informationsmeldung angezeigt, wenn sie von der Abfrage übergeben wurde.
if (outputs.info_message) {
gs.addInfoMessage(outputs.info_message);
}
Remotetabellen-Skriptabschnitte zusammenfügen
Die drei Abschnitte des Skripts sind im try-catch-Block enthalten, um die Fehlerbehandlung zu ermöglichen.
(function executeQuery(v_table, v_query) {
try {
// place code here from: <Selecting a spoke action and preparing the inputs>
// place code here from: <Calling the spoke action>
// place code here from: <Processing the action output>
} catch (error) {
gs.addErrorMessage("Error retrieving Salesforce Opportunities. “ +
“Please contact System Administrator.");
gs.addErrorMessage("System Error: " + error.message);
}
})(v_table, v_query);