Zum Inhalt springen

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 von SalesforceLogin
  • sessionId: Die Salesforce-Sitzungs-ID, vom Aufruf von SalesforceLogin

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 Projekt
  • sessionID: Eine Salesforce-Session-ID
  • serverURL: 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

Example 1
// 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"];
Example 2
// 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 Projekt
  • soql: Eine in Salesforce Object Query Language (SOQL) geschriebene Abfrage
  • targetID: 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

Example 1
// 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>");
Example 2
// 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>");