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 Funktionsargument./****** 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 Informationsnachricht konfiguriert, wenn der Salesforce-Account nicht definiert ist, wenn er von der Aktion benötigt wird. 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, kann in diesem Fall nichts abgefragt werden, und die Funktion gibt zurück, ohne die Spoke-Aktion 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 der Remote-Tabelle 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 überprüft, ob Listen und Formulare für die Remote-Tabelle ordnungsgemäß funktionieren und wir die Datensatz-ID mit extrahieren können v_query.getSysId() Das nächste Mal, wenn das Remote-Tabellenskript 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);