Beispielskript, das die Verkaufschancentabelle abfragt
Dieses Beispielskript fragt die Verkaufschancentabelle mit ab Ruft Alle Jobangebote Ab , Ruft Jobangebote für Account-ID ab , Und Ruft Jobangebotsdetails Ab Anwenderdefinierte Aktionen.
- Der erste Teil wählt die richtige anwenderdefinierte Aktion aus und bereitet Eingaben dafür vor.
- Der zweite Teil ruft die Aktion auf.
- Der dritte Teil verarbeitet die Ausgaben der Aktion.
Auswahl einer Spoke-Aktion und Vorbereitung der Eingaben
- Ruft Alle Jobangebote Ab
- Ruft Jobangebote für Account-ID ab
- Ruft Jobangebotsdetails Ab
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 beschrieben ist Verwenden einer zugehörigen Liste, um die Verbindung zwischen dem Kundenaccount und den Salesforce-Möglichkeiten zu erstellen .
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.
Spoke-Aktion wird aufgerufen
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 Anrufs.
/***** Call action *****/
var outputs =
sn_fd.FlowAPI.executeAction("sn_salesforce_spok." + action, inputs);
Die Aktionsausgabe wird verarbeitet
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 der Remote-Tabelle hinzufügen. Ordnen Sie die Salesforce-Opportunity-Felder den Spalten der Remote-Tabelle 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-Verkaufschancendatensatz-ID der Remote-Tabelle „sys_ID“ zugewiesen ist Dadurch wird überprüft, ob Listen und Formulare für die Remotetabelle ordnungsgemäß funktionieren und wir die Datensatz-ID mit extrahieren können v_query.getSysId() Das nächste Mal, wenn das Remote-Tabellenskript aufgerufen wird.
Zeigen Sie dann die Informationsnachricht an, wenn sie von der Abfrage übergeben wurde.
if (outputs.info_message) {
gs.addInfoMessage(outputs.info_message);
}
Skriptabschnitte der Remote-Tabelle werden zusammengesetzt
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);