Salesforce-Funktionen in Jitterbit Studio
Salesforce-Funktionen bieten Anmelde- und Sitzungsinformationen sowie Lookups für Salesforce-Instanzen.
GetSalesforceTimestamp
Deklaration
string GetSalesforceTimestamp(string url, string sessionId[, string timeZoneId])
Syntax
GetSalesforceTimestamp(<url>, <sessionId>[, <timeZoneId>])
Erforderliche Parameter
url: Die URL für den Aufruf von Salesforce, vom Aufruf vonSalesforceLoginsessionId: Die Salesforce-Sitzungs-ID, vom Aufruf vonSalesforceLogin
Optionale Parameter
timeZoneId: Eine zu verwendende Zeitzonen-ID, wie unter Zeitzonen-Codes beschrieben. Die Standardeinstellung ist die Zeitzone des Salesforce-Endpunkts, der durch die Salesforce-Sitzungs-ID identifiziert wird.
Beschreibung
Ruft die aktuelle Systemzeit von Salesforce ab.
Der Zeitstempel wird im Format yyyy-mm-dd HH:MM:SS zurückgegeben und verwendet standardmäßig die Zeitzoneneinstellung des Salesforce-Endpunkts. Man muss sich mit der Funktion SalesforceLogin bei Salesforce angemeldet haben, bevor man diese Funktion verwendet. Die Funktion gibt einen Nullwert zurück, wenn der Aufruf fehlschlägt. Verwenden Sie in diesem Fall die Funktion GetLastError, um die Fehlermeldung abzurufen.
Das optionale dritte Argument kann verwendet werden, um die zu verwendende Zeitzone festzulegen. Die Zeitzone des Salesforce-Endpunkts wird standardmäßig verwendet, wenn keine Zeitzone angegeben wird. Das Zeitzonen-Argument muss eine Zeitzone sein, die von Javas TimeZone-Klasse erkannt wird.
In einem häufigen Szenario wird zunächst die Funktion SalesforceLogin aufgerufen. Die URL und die Sitzungs-ID sind dann in diesen globalen Variablen verfügbar:
$Salesforce.ServerUrl$Salesforce.SessionId
Als Alternative zu dieser Funktion siehe auch die Funktion LoginToSalesforceAndGetTimestamp.
Beispiele
// Start by logging into Salesforce
if(!SalesforceLogin("..."), RaiseError(GetLastError()));
timestamp = GetSalesforceTimestamp($Salesforce.ServerUrl,
$Salesforce.SessionId);
// Check for any errors before proceeding further
if(IsNull(timestamp), RaiseError(GetLastError()));
// Retrieving the timestamp in UTC:
timestamp = GetSalesforceTimestamp($Salesforce.ServerUrl,
$Salesforce.SessionId, "UTC");
// Retrieving the timestamp in Pacific Standard Time:
timestamp = GetSalesforceTimestamp($Salesforce.ServerUrl,
$Salesforce.SessionId, "PST");
LoginToSalesforceAndGetTimeStamp
Deklaration
string LoginToSalesforceAndGetTimestamp(string salesforceOrg[, string timeZoneId])
Syntax
LoginToSalesforceAndGetTimestamp(<salesforceOrg>[, <timeZoneId>])
Erforderliche Parameter
salesforceOrg: Ein String-Referenzpfad zu einer Salesforce-Verbindung im aktuellen Projekt
Optionale Parameter
timeZoneId: Eine zu verwendende Zeitzonen-ID, wie unter Zeitzonen-Codes beschrieben. Die Standardeinstellung ist die Zeitzone des Salesforce-Endpunkts.
Beschreibung
Meldet sich bei Salesforce mit einem Salesforce-Endpunkt an und ruft die aktuelle Systemzeit von Salesforce ab.
Der in diesem Funktionsaufruf verwendete Salesforce-Endpunkt muss als Salesforce-Verbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte in Jitterbit Script.
Der Anmeldeaufruf erfolgt mit den Anmeldedaten im angegebenen Salesforce-Endpunkt. Der Zeitstempel wird im Format yyyy-mm-dd HH:MM:SS zurückgegeben und verwendet standardmäßig die Zeitzoneneinstellung des Salesforce-Endpunkts. Die Funktion gibt einen Nullwert zurück, wenn der Aufruf fehlschlägt. Verwenden Sie die Funktion GetLastError, um die Fehlermeldung abzurufen.
Das optionale Argument kann verwendet werden, um die zu verwendende Zeitzone festzulegen. Die Zeitzone des Salesforce-Endpunkts wird standardmäßig verwendet, wenn keine Zeitzone angegeben wird. Das Zeitzonen-Argument muss eine Zeitzone sein, die von Javas TimeZone-Klasse erkannt wird.
Nachdem diese Funktion aufgerufen wurde, sind die Salesforce-URL und die Session-ID in diesen globalen Variablen verfügbar:
$Salesforce.ServerUrl$Salesforce.SessionId
Als Alternative zu dieser Funktion siehe auch die Funktion GetSalesforceTimestamp.
Beispiele
// Logs in to Salesforce and retrieves the timestamp
timestamp = LoginToSalesforceAndGetTimestamp("<TAG>endpoint:salesforce/Salesforce</TAG>");
// Check for any errors before proceeding further
if(IsNull(timestamp), RaiseError(GetLastError()));
// Retrieving the timestamp in UTC:
timestamp = LoginToSalesforceAndGetTimestamp("<TAG>endpoint:salesforce/Salesforce</TAG>", "UTC");
// Retrieving the timestamp in Pacific Standard Time:
timestamp = LoginToSalesforceAndGetTimestamp("<TAG>endpoint:salesforce/Salesforce</TAG>", "PST");
SalesforceLogin
Deklaration
bool SalesforceLogin(string salesforceOrg)
Syntax
SalesforceLogin(<salesforceOrg>)
Erforderliche Parameter
salesforceOrg: Ein String-Referenzpfad zu einer Salesforce-Verbindung im aktuellen Projekt
Beschreibung
Meldet sich bei Salesforce an und verwendet dabei den angegebenen Salesforce-Endpunkt.
Der in diesem Funktionsaufruf verwendete Salesforce-Endpunkt muss als Salesforce-Verbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte unter Jitterbit Script.
Nach einer erfolgreichen Anmeldung werden diese globalen Variablen gesetzt und können in nachfolgenden Skripten oder Zuordnungen verwendet werden:
$Salesforce.SessionID: Die Salesforce-Session-ID$Salesforce.ServerURL: Die URL für nachfolgende Aufrufe an Salesforce in derselben Sitzung$Salesforce.UserID: Die ID des Salesforce-Benutzers
Die Funktion gibt „true" zurück, wenn die Anmeldung erfolgreich war, und „false", wenn die Anmeldung fehlgeschlagen ist. Verwenden Sie die Funktion GetLastError, um die Fehlermeldung in diesem Fall abzurufen.
Hinweis
Mit dieser Funktion erstellte Endpunkte sind in der Endpunktnutzungsberichterstellung enthalten und werden auf Ihre Lizenz angerechnet.
Beispiele
// Logs in to Salesforce
result = SalesforceLogin("<TAG>endpoint:salesforce/Salesforce</TAG>");
// Check for any errors before proceeding further
if(!result, RaiseError(GetLastError()));
SetSalesforceSession
Deklaration
void SetSalesforceSession(string salesforceOrg, string sessionId, string serverURL)
Syntax
SetSalesforceSession(<salesforceOrg>, <sessionId>, <serverURL>)
Erforderliche Parameter
salesforceOrg: Ein String-Referenzpfad zu einer Salesforce-Verbindung im aktuellen ProjektsessionID: Eine Salesforce-Session-IDserverURL: Eine Salesforce-Server-URL
Beschreibung
Legt Salesforce-Sitzungsinformationen für den angegebenen Salesforce-Endpunkt fest. Verwenden Sie diese Funktion, wenn Sie eine vorhandene Salesforce-Session-ID und Server-URL haben. Das Aufrufen dieser Funktion deaktiviert die automatische Salesforce-Anmeldung und verwendet stattdessen die bereitgestellten Sitzungsinformationen.
Der in diesem Funktionsaufruf verwendete Salesforce-Endpunkt muss als Salesforce-Verbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte unter Jitterbit Script.
Nach einem erfolgreichen Funktionsaufruf werden diese globalen Variablen gesetzt und können in nachfolgenden Skripten oder Zuordnungen verwendet werden:
$Salesforce.SessionID: Die Salesforce-Session-ID.$Salesforce.ServerURL: Die URL für nachfolgende Aufrufe an Salesforce in derselben Sitzung.
Diese Funktion validiert die Eingabe nicht; sie schlägt nur fehl, wenn entweder die Session-ID oder die Server-URL leer sind oder der referenzierte Salesforce-Endpunkt nicht vorhanden ist. Wenn entweder die Session-ID oder die Server-URL ungültig ist, schlagen nachfolgende Salesforce-Operationen fehl.
Verwenden Sie die Funktion Eval, um Fehler abzufangen, und rufen Sie die Funktion GetLastError auf, um die Fehlermeldung abzurufen.
Warnung
Es ist ein bekanntes Problem, dass die Funktion SetSalesforceSession nicht korrekt funktioniert und nicht verwendet werden sollte. Bei Verwendung kann das Skript einen Fehler generieren oder auch nicht. Selbst wenn das Skript keinen Fehler generiert, funktioniert die Funktion nicht korrekt. Da die Funktion nicht funktioniert, wird die integrierte Sitzungsverwaltung des Salesforce-Connectors verwendet.
Beispiele
// Sets the Salesforce session information
sfOrg = "<TAG>endpoint:salesforce/Salesforce</TAG>";
sfSessionID = "00D5...SE";
sfURL = "https://example.my.salesforce.com/services/Soap/u/39.0/...";
// Logs in to Salesforce
Eval(SetSalesforceSession(sfOrg, sfSessionID, sfURL),
RaiseError("Failed to set Salesforce session: " + GetLastError()));
SfCacheLookup
Deklaration
string SfCacheLookup(string salesforceOrg, string soql)
Syntax
SfCacheLookup(<salesforceOrg>, <soql>)
Erforderliche Parameter
salesforceOrg: Ein String-Referenzpfad zu einer Salesforce-Verbindung im aktuellen Projekt**soql: Eine Abfrage in Salesforce Object Query Language (SOQL)
Beschreibung
Meldet sich bei Salesforce an (falls erforderlich) und ruft das Abfrageergebnis von Salesforce ab. Es wird nur der Wert aus dem ersten Feld des ersten Datensatzes zurückgegeben.
Der in diesem Funktionsaufruf verwendete Salesforce-Endpunkt muss als Salesforce-Verbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte in Jitterbit Script.
Werte werden zwischengespeichert, sodass nachfolgende Aufrufe mit denselben exakten Parametern (Salesforce-Endpunkt und SOQL) keinen Aufruf an Salesforce auslösen. Salesforce wird nur beim ersten Mal aufgerufen. Der Cache ist für die Dauer der Operationskette gültig, in der er aufgerufen wird.
Die Funktion gibt null zurück, wenn die Anmeldung fehlschlägt, die Abfrage keine Datensätze zurückgibt oder die API fehlschlägt. Verwenden Sie in diesem Fall die Funktion GetLastError, um die Fehlermeldung abzurufen.
Beispiele
// Logs in to Salesforce and retrieves the first result of a query
// If the query is cached, it uses the cached value
myId = SFCacheLookup("<TAG>endpoint:salesforce/Salesforce</TAG>",
"SELECT Id FROM Account WHERE Name='My Account'");
// Checks for any errors before proceeding
if(IsNull(myId), RaiseError(GetLastError()));
SfLookup
Deklaration
string SfLookup(string salesforceOrg, string soql)
Syntax
SfLookup(<salesforceOrg>, <soql>)
Erforderliche Parameter
salesforceOrg: Ein String-Referenzpfad zu einer Salesforce-Verbindung im aktuellen Projekt**soql: Eine Abfrage in Salesforce Object Query Language (SOQL)
Beschreibung
Meldet sich bei Salesforce an (falls erforderlich) und ruft das Abfrageergebnis von Salesforce ab. Es wird nur der Wert aus dem ersten Feld des ersten Datensatzes zurückgegeben.
Der in diesem Funktionsaufruf verwendete Salesforce-Endpunkt muss als Salesforce-Verbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte in Jitterbit Script.
Die Funktion gibt null zurück, wenn die Anmeldung fehlschlägt, die Abfrage keine Datensätze zurückgibt oder die API fehlschlägt. Verwenden Sie in diesem Fall die Funktion GetLastError, um die Fehlermeldung abzurufen.
Siehe auch die Funktionen SFLookupAll und SFLookupAllToFile.
Informationen zur Fehlerbehebung finden Sie unter Eine Funktion schlägt fehl, wenn das Endpunktverbindungsfeld auf eine Variable gesetzt ist im Leitfaden zur Fehlerbehebung bei Operationen.
Beispiele
// Logs in to Salesforce and retrieves the first result of a query
myId = SFLookup("<TAG>endpoint:salesforce/Salesforce</TAG>",
"SELECT Id FROM Account WHERE Name='My Account'");
// Checks for any errors before proceeding
if(IsNull(myId), RaiseError(GetLastError()));
SfLookupAll
Deklaration
array_2D SfLookupAll(string salesforceOrg, string soql)
Syntax
SfLookupAll(<salesforceOrg>, <soql>)
Erforderliche Parameter
salesforceOrg: Ein String-Referenzpfad zu einer Salesforce-Verbindung im aktuellen Projekt**soql: Eine Abfrage in Salesforce Object Query Language (SOQL)
Beschreibung
Meldet sich bei Salesforce an (falls erforderlich) und ruft das Abfrageergebnis von Salesforce ab. Das zurückgegebene Array ist zweidimensional: ein Array von Datensätzen, wobei jeder Datensatz ein Array von benannten Feldern ist.
Der in diesem Funktionsaufruf verwendete Salesforce-Endpunkt muss als Salesforce-Verbindung im aktuellen Projekt definiert sein. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte unter Jitterbit Script.
Die Funktion gibt null zurück, wenn die Anmeldung fehlschlägt, die Abfrage keine Datensätze zurückgibt oder die API fehlschlägt. Verwenden Sie in diesem Fall die Funktion GetLastError, um die Fehlermeldung abzurufen.
Es gibt Einschränkungen bei Verwendung einer Beziehungsabfrage:
- Es können nur unmittelbare Beziehungen abgerufen werden. Die Abfrage kann keine Enkel-Beziehung enthalten.
- Für jeden Abfragedatensatz kann jedes untergeordnete Element nicht mehrere Datensätze haben.
- In der Abfrageanweisung sollten die Felder unter demselben untergeordneten Element zusammengefasst werden.
Siehe auch die Funktionen SFLookup und SFLookupAllToFile.
Beispiele
// Logs in to Salesforce and retrieves the results of a query
records = SFLookupAll("<TAG>endpoint:salesforce/Salesforce</TAG>",
"SELECT Id,Name FROM Account");
firstId = records[0][0];
firstAccountName = records[0]["name"];
// Logs in to Salesforce and retrieves the results of a query
soql = "SELECT Id,Name,CreatedBy.ContactId,
CreatedBy.FirstName,CreatedBy.LastName FROM Account";
rs = SfLookupAll("<TAG>endpoint:salesforce/Salesforce</TAG>", soql);
firstId = rs[0][0];
firstAccountName = rs[0]["name"];
lastName = rs[0]["CreatedBy.LastName"];
// or using an index:
last_name = rs[0][5];
SfLookupAllToFile
Deklaration
int SfLookupAllToFile(string salesforceOrg, string soql, string targetId)
Syntax
SfLookupAllToFile(<salesforceOrg>, <soql>, <targetId>)
Erforderliche Parameter
salesforceOrg: Ein String-Referenzpfad zu einer Salesforce-Verbindung im aktuellen Projektsoql: Eine in Salesforce Object Query Language (SOQL) geschriebene AbfragetargetID: Eine String-Aktivität, die einem Datei-Typ-Endpunkt im aktuellen Projekt zugeordnet ist
Beschreibung
Meldet sich bei Salesforce an (falls erforderlich) und schreibt die Ergebnisse der Salesforce-Abfrage in eine CSV-Datei. Die Funktion gibt die Anzahl der abgerufenen Datensätze zurück.
Der Anmeldeaufruf erfolgt mit den Anmeldedaten im angegebenen Salesforce-Endpunkt. Der in diesem Funktionsaufruf verwendete Salesforce-Endpunkt muss als Salesforce-Verbindung im aktuellen Projekt definiert sein.
Das in diesem Funktionsaufruf verwendete Ziel muss als Aktivität definiert sein, die einem Datei-Typ-Endpunkt im aktuellen Projekt zugeordnet ist. Dazu gehören konfigurierte File Share-, FTP-, HTTP-, Local Storage- und Temporary Storage-Aktivitäten.
Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Endpunkten im Abschnitt Endpunkte unter Jitterbit Script.
Die Funktion gibt null zurück, wenn die Anmeldung fehlschlägt, die Abfrage keine Datensätze zurückgibt oder die API fehlschlägt. Verwenden Sie in diesem Fall die Funktion GetLastError, um die Fehlermeldung abzurufen.
Siehe auch die Funktionen SFLookup und SFLookupAll.
Beispiele
// Logs in to Salesforce,
// retrieves the results of a query,
// and writes the results to a target
nrec = SFLookupAllToFile("<TAG>endpoint:salesforce/Salesforce</TAG>",
"SELECT Id,Name FROM Account",
"<TAG>activity:/...</TAG>");
// Logs in to Salesforce,
// retrieves the results of a query
// specified in a local variable,
// and writes the results to a target
soql = "SELECT Id,Name,CreatedBy.ContactId,
CreatedBy.FirstName,CreatedBy.LastName FROM Account";
nrec = SfLookupAllToFile("<TAG>endpoint:salesforce/Salesforce</TAG>",
soql, "<TAG>activity:/...</TAG>");