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 Informationsnachricht konfiguriert, wenn der Salesforce-Account für nicht definiert ist, obwohl dies 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, muss in diesem Fall nichts abgefragt werden, und die Funktion wird zurückgegeben, 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 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 überprüft, ob Listen und Formulare für die Remotetabelle ordnungsgemäß funktionieren und ob die Datensatz-ID beim nächsten Aufruf des Remotetabellenskripts mit „v_query.getSysId()“ extrahiert werden kann.
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);