Jitterbit-Skriptsprache in Studio
Einführung
Die Jitterbit-Skriptsprache kann in allen Arten von Skripten innerhalb von Harmony verwendet werden, einschließlich in Operationen und Transformationen. Skripte werden standardmäßig in der Jitterbit-Skriptsprache erstellt. Diese Seite bietet Informationen, die spezifisch für die Jitterbit-Skriptsprache sind, wie Syntax, Datentypen, Operatoren, Escape-Sequenzen und Kontrollstrukturen. Siehe auch verwandte Seiten zum Erstellen eines Skripts, Verwenden des Skripteditors und Testen eines Skripts.
Syntax
In Jitterbit Script müssen Skripte innerhalb eines <trans>-Eröffnungstags und eines </trans>-Schlussstags eingeschlossen sein, es sei denn, es werden Funktionen verwendet, die speziell verlangen, dass Code außerhalb dieser Tags platziert wird, wie mehrere Datenbankfunktionen.
Innerhalb dieser Tags besteht ein Jitterbit-Skript aus integrierten Funktionen, Variablen oder Logik, die ausgeführt werden, getrennt durch ein Semikolon (;).
Das zurückgegebene Ergebnis ist der Rückgabewert der letzten Anweisung des Skripts vor dem schließenden </trans>-Tag.
Kommentare
Innerhalb der <trans> ... </trans>-Tags kennzeichnet die Verwendung von zwei Schrägstrichen // den Beginn eines einzeiligen Kommentars und betrifft den Text bis zum Ende dieser Zeile. Kommentare sind kein Teil des Skripts, das ausgeführt wird, oder des transformierten Ergebnisses.
Ein Kommentar in einer einzelnen Zeile könnte so aussehen:
<trans>
// This is a comment
DbLookup(...)
</trans>
Sie können auch einen Blockkommentar verwenden:
<trans>
/* This is a multi-line comment
This line is also a comment
This is the final line of the comment */
DbLookup(...)
</trans>
Kontrollstrukturen
Die Jitterbit-Skriptsprache enthält keine Kontrollanweisungen wie if oder while-Schleifen. Stattdessen können Sie Jitterbit-Funktionen verwenden, um dieselbe Funktionalität zu erreichen.
Siehe die Funktionen Case, If und While unter Logische Funktionen. Die Funktion Eval unter Allgemeine Funktionen kann als "try-catch"-Anweisung verwendet werden.
Ein Maximum von 50.000 Schleifeniterationen ist für jede einzelne Schleife in Jitterbit-Skripten erlaubt. Um die erlaubte Anzahl von Iterationen pro Schleife zu erhöhen, siehe jitterbit.scripting.while.max_iterations in Scripting Jitterbit variables.
Reguläre Ausdrücke
Harmony unterstützt reguläre Ausdrücke als Mittel zur Spezifizierung und Erkennung von Textzeichenfolgen, einschließlich bestimmter Zeichen, Wörter oder Zeichenmuster. Harmony unterstützt die Syntax regulärer Ausdrücke aus der Programmiersprache Perl 5.
<trans>
RegExMatch(<input>,<expression>,...)
</trans>
Escape-Sequenzen
Harmony erkennt diese Escape-Sequenzen, wenn sie in literalen Zeichenfolgen verwendet werden:
| Sequenz | Definition |
|---|---|
\t |
Tabulator |
\r |
Wagenrücklauf |
\n |
Neue Zeile |
Literale Zeichenfolgen müssen von doppelten Anführungszeichen (") oder einfachen Anführungszeichen (') umgeben sein.
Jedes andere Anführungszeichen muss escaped werden, wenn es in der Zeichenfolge verwendet wird. Zum Beispiel:
$str = "String with line break.\nThat's the last line.";
$str = 'Rob "The Gronk" Gronkowski';
$str = "Rob \"The Gronk\" Gronkowski";
Operatoren
Dies ist eine Zusammenfassung der von Jitterbit Script unterstützten Operatoren. Jitterbit Script versucht, die Argumente zu konvertieren, um die Operation zu ermöglichen. Wenn dies nicht möglich ist, wird ein Fehler gemeldet.
Arithmetik
| Operator | Beschreibung |
|---|---|
+ |
Addiert zwei Zahlen oder verknüpft zwei Zeichenfolgen. Wenn eine Zeichenfolge zu etwas anderem addiert wird, werden beide Argumente in Zeichenfolgen konvertiert. Wenn beide Argumente Zahlen sind, ist das Ergebnis vom Typ double. |
++ |
Erhöht den Wert um 1. Beispiel: $count++; wenn vorangestellt, erfolgt die Zuweisung vor der Erhöhung. |
+= |
Verknüpft eine Zeichenfolge oder addiert Zahlen zur Zielvariablen. Beispiel: $count+=2 ist dasselbe wie $count=$count+2. |
- |
Subtrahiert zwei Zahlen. Das Ergebnis ist vom Typ double. |
-- |
Verringert einen Wert um 1. Beispiel: $count--; wenn vorangestellt, erfolgt die Zuweisung vor der Verringerung. |
-= |
Subtrahiert Zahlen von der Zielvariablen. Beispiel: $count-=2 ist dasselbe wie $count=$count-2. |
/ |
Teilt zwei Zahlen. Das Ergebnis ist vom Typ double. |
* |
Multipliziert zwei Zahlen. Das Ergebnis ist vom Typ double. |
^ |
Hebt das erste Argument auf die Potenz des zweiten Arguments. Wenn beide Argumente Ganzzahlen sind, ist das Ergebnis eine Ganzzahl. |
Logisch
| Operator | Beschreibung |
|---|---|
& |
Logischer UND-Operator. Das Ergebnis ist vom Typ boolean. && kann ebenfalls verwendet werden. Dies ist immer ein Kurzschlussoperator, was bedeutet, dass, wenn das linke Argument false ergibt, das rechte Argument nicht ausgewertet wird. |
| |
Logischer ODER-Operator. Das Ergebnis ist vom Typ boolean. || kann ebenfalls verwendet werden. Dies ist immer ein Kurzschlussoperator, was bedeutet, dass, wenn das linke Argument true ergibt, das rechte Argument nicht ausgewertet wird. |
Vergleich
Verwenden Sie die folgenden Operatoren, um die Werte von zwei Argumenten des gleichen Datentyps zu vergleichen:
| Operator | Beschreibung |
|---|---|
= |
Weist einer Variablen einen Wert zu. Das rechte Argument wird dem linken Argument zugewiesen. |
== |
Äquivalenzoperator. Gibt true zurück, wenn die Argumente gleich sind. Gibt false zurück, wenn sie nicht gleich sind. |
!= |
Nicht-Äquivalenzoperator. Gibt true zurück, wenn die Argumente nicht gleich sind. Gibt false zurück, wenn sie gleich sind. |
<><=>= |
Vergleichsoperatoren. Gibt true oder false zurück. |
Hinweis
Der Vergleich von Argumenten unterschiedlicher Datentypen wird nicht unterstützt.
Negation
| Operator | Beschreibung |
|---|---|
! |
Negationsoperator. Wandelt einen wahren Wert in false und umgekehrt um. Beispiel: |
Array
| Operator | Beschreibung |
|---|---|
{ } |
Wird verwendet, um ein Array zu erstellen. Beispiele: |
Operatorpräzedenz
Diese Tabelle zeigt die Präzedenz der Operatoren, von höchster bis niedrigster:
| Operatoren | Beschreibung |
|---|---|
() |
Klammern zum Gruppieren |
{ } |
geschweifte Klammern für Arrays |
++ -- - |
vor- und nachfixe unäre Operatoren |
^ |
Potenz |
! |
Negation |
* / |
Multiplikation, Division |
+ - |
Addition, Subtraktion |
< > == != <= >= |
Vergleichsoperatoren |
& && |
Logisches UND |
| || |
Logisches ODER |
= += -= |
Zuweisung |
Komponentenpalette
Die Skriptkomponentenpalette bietet Zugriff auf verschiedene Komponenten, die innerhalb eines Skripts verwendet werden können. Sie können Komponenten innerhalb eines Skripts verwenden, indem Sie sie aus der Komponentenpalette ziehen oder doppelklicken, die Autovervollständigungsfunktion nutzen oder die korrekte Syntax manuell eingeben oder einfügen.
Hinweis
Wenn ein Skript andere Projektkomponenten aufruft, die noch nicht bereitgestellt wurden, müssen diese Komponenten bereitgestellt werden, bevor Sie das Skript erfolgreich ausführen können.
Sie können auf die Skriptkomponenten-Palette auf der rechten Seite des Projektdesigners und des Skripteditors zugreifen:

Quellobjekte
Der Quellobjekte-Tab ist nur für Skripte vorhanden, die innerhalb einer Transformation erstellt wurden.
Innerhalb eines Transformationsskripts können Sie auf Quelldaten zugreifen, indem Sie den Referenzpfad eines Feldes einfügen, oder Sie können auf Quelldatenknoten zugreifen, indem Sie den Referenzpfad eines Knotens einfügen. Das Einfügen des Referenzpfads eines Feldes in ein Transformationsskript ordnet das Quellobjekt einem Ziel-Feld zu (siehe Zuordnung von Quellobjekten). Obwohl Knoten nicht Ziel-Feldern zugeordnet werden können, können sie als Argumente mit einigen XML-Funktionen und Wörterbuch- und Array-Funktionen verwendet werden. Knoten können auch verwendet werden, um Bedingungen für Zielknoten zu erstellen (siehe Bedingte Logik hinzufügen).
Um einen Feld- oder Knotenreferenzpfad zu einem Transformationsskript (Jitterbit-Skript nur) hinzuzufügen, verwenden Sie eine dieser Methoden:
- Ziehen Sie das Objekt aus der Palette in das Skript, um den Referenzpfad des Objekts einzufügen.
- Doppelklicken Sie auf das Objekt in der Palette, um den Referenzpfad des Objekts an der Position des Cursors im Skript einzufügen.
- Geben Sie den Referenzpfad zum Quellobjekt manuell ein.
Dieses Beispiel weist einem Quellobjekt eine globale Variable in einer Transformationszuordnung zu:
<trans>
$org.calculate.operand1=root$transaction.request$body$Calculate$input.Operand1$;
</trans>
Dieses Beispiel verwendet einen Knotenpfad mit einer XML-Funktion:
<trans>
GetXMLString([root$transaction.response$body$queryResponse$result$records.Case$Account$]);
</trans>
Für Informationen darüber, wie Feld- und Knotenreferenzpfade konstruiert werden, siehe Referenzpfadnotation in Schlüsselkonzepte.
Funktionen
Die Funktionen-Registerkarte bietet eine Liste von Funktionen, die in einem Skript verwendet werden können.
Innerhalb eines Skripts können Funktionen durch Einfügen der Funktionssyntax verwendet werden.
Um die Funktionssyntax in ein Skript (Jitterbit-Skript oder JavaScript) einzufügen, verwenden Sie eine dieser Methoden:
- Ziehen Sie die Funktion aus der Palette in das Skript, um die Funktionssyntax einzufügen.
- Doppelklicken Sie auf die Funktion in der Palette, um die Funktionssyntax an der Position des Cursors im Skript einzufügen. Beim Einfügen der Funktionssyntax wird das erste Funktionsargument hervorgehoben und der Cursor wird ans Ende des Arguments verschoben.
- Beginnen Sie, den Funktionsnamen einzugeben, und drücken Sie dann
Control+Space, um eine Liste von Autovervollständigungsvorschlägen anzuzeigen. Wählen Sie eine Funktion aus, um die Funktionssyntax einzufügen. - Geben Sie die Funktionssyntax manuell ein.
Für weitere Informationen siehe die Dokumentation zu jeder Funktion nach Kategorien unter Funktionen.
Variablen
Die Variablen-Registerkarte bietet Zugriff auf Variablen, die global in einem Projekt referenziert werden können, einschließlich globaler Variablen, Projektvariablen und Jitterbit-Variablen.
Innerhalb eines Skripts können Variablen durch Einfügen der Variablen-Syntax verwendet werden (siehe die Dokumentation zu jedem Variablentyp unter Variablen).
Um die Variablen-Syntax in ein Skript (Jitterbit-Skript oder JavaScript) einzufügen, verwenden Sie eine dieser Methoden:
- Ziehen Sie die Variable aus der Palette in das Skript, um die Variablen-Syntax einzufügen.
- Doppelklicken Sie auf die Variable in der Palette, um die Variablen-Syntax an der Position des Cursors im Skript einzufügen.
- Beginnen Sie, den Variablennamen einzugeben, und drücken Sie dann
Control+Space, um eine Liste von Autovervollständigungsvorschlägen anzuzeigen. Wählen Sie eine Variable aus, um die Variablen-Syntax einzufügen. - Geben Sie die Variablen-Syntax manuell ein.
Globale Variablen werden entweder durch das Voranstellen eines $-Zeichens vor dem Variablennamen oder durch die Verwendung der Funktionen Set und Get aufgerufen.
Globale Variablennamen können aus diesen Zeichen bestehen: Buchstaben (a-z, A-Z), Zahlen (0-9), Punkten und Unterstrichen. Andere Zeichen, wie Bindestriche, werden nicht empfohlen und können Probleme verursachen. (Beachten Sie, dass im Fall von lokalen Variablen das Punktzeichen ebenfalls nicht empfohlen wird.)
Dieses Beispiel verweist auf eine globale Variable, indem $ verwendet wird, um ein globales Wörterbuch zu erstellen:
<trans>
$org.lookup.currency=Dict();
$org.lookup.currency[1]="USD";
$org.lookup.currency[2]="EUR";
</trans>
Dieses Beispiel weist einer globalen Variable eine andere globale Variable zu, indem die Funktionen Set und Get verwendet werden:
<trans>
Set("op2", Get("op"));
</trans>
Beachten Sie, dass Sie für bestimmte Jitterbit-Variablen, da sie einen Bindestrich enthalten, auf sie entweder mit den Funktionen Set oder Get zugreifen müssen:
<trans>
Get("jitterbit.source.http.response.header.Content-Type");
</trans>
Lokale Variablen, obwohl sie nicht im Tab Variablen aufgeführt sind, werden nicht aufgeführt, da sie nicht global verfügbar sind. Sie können jedoch weiterhin lokal innerhalb eines Skripts verwendet werden. Lokale Variablen haben folgende Eigenschaften:
- Eine lokale Variable wird nur innerhalb eines bestimmten Skripts definiert und verwendet. Daher ist ein Konflikt zwischen dem Wert einer lokalen Variable im aktuellen Skript und dem Wert einer lokalen Variable mit demselben Namen in einem anderen Skript kein Problem.
- Die lokale Variable kann nicht mit den Funktionen
SetoderGetdefiniert oder abgerufen werden. RunScriptkann Argumente an das Skript übergeben, zum BeispielRunScript(SCRIPT_ID, 5, "abc",...). Werte im Skript können vordefinierten lokalen Variablen_1,_2,...zugewiesen werden. In diesem Beispiel repräsentiert_1den ganzzahligen Wert5, während_2den Stringwert"abc"repräsentiert. Die lokale Variable muss definiert werden, bevor sie referenziert werden kann, es sei denn, es handelt sich um die Eingabeargumente_1,_2,..., die oben beschrieben wurden.- Die Funktion
ArgumentListsteht zur Verfügung, um eine Liste lokaler Variablen als Eingabeargumente neu zu definieren.
Für detailliertere Informationen zu jedem Variablentyp und Beispielen, siehe Variablen.
Plugins
Der Plugins-Tab bietet eine Liste von Plugins, die innerhalb eines Skripts ausgeführt werden können.
Innerhalb eines Skripts kann ein Plugin als Argument für die Funktion RunPlugin verwendet werden, indem der Plugin-Referenzpfad eingefügt wird (siehe Plugins, die in einem Skript aufgerufen werden).
Um einen Plugin-Referenzpfad zu einem Skript hinzuzufügen (Jitterbit-Skript nur), verwenden Sie eine dieser Methoden:
- Ziehen Sie das Plugin aus der Palette in das Skript, um sowohl die Funktion
RunPluginals auch die Plugin-Referenz einzufügen. - Doppelklicken Sie auf das Plugin in der Palette, um die Plugin-Referenz an der Position des Cursors im Skript einzufügen.
- Beginnen Sie, den Plugin-Namen einzugeben, und drücken Sie dann
Control+Space, um eine Liste von Autovervollständigungsvorschlägen anzuzeigen. Wählen Sie ein Plugin aus, um die Plugin-Referenz einzufügen. - Geben Sie die Plugin-Referenz manuell ein.
Die Plugin-Referenz ist in <TAG> und </TAG>-Tags enthalten und besteht aus dem Typ der Projektkomponente (plugin), gefolgt von einem Doppelpunkt (:), gefolgt vom Plugin-Namen aus dem XML-Manifest. Dieses Beispiel verwendet die Funktion RunPlugin mit einer Referenz zum HMAC-SHA1-Generator Plugin:
<trans>
RunPlugin("<TAG>plugin:http://www.jitterbit.com/plugins/pipeline/user/HMACSHA1Generator</TAG>");
</trans>
Beachten Sie, dass der Plugin-Name aus dem XML-Manifest nicht unbedingt mit dem Anzeigenamen in der Management-Konsole übereinstimmt.
Hinweis
Nur Plugins, die innerhalb eines Skripts verwendet werden können, werden aufgelistet. Zusätzliche Plugins können in einer Aktivität innerhalb eines Vorgangs angewendet werden. Für Dokumentationen zur Verwendung von Plugins, einschließlich der Konfiguration eines Plugins auf Aktivitätsebene und der Festlegung globaler Variablen, siehe die Abschnitte unter Plugins.
Operations
Der Operations-Tab bietet eine Liste von Operationen im Projekt, die in einem Skript referenziert werden können.
Innerhalb eines Skripts kann eine Operation als Argument für Funktionen verwendet werden, indem der Referenzpfad der Operation eingefügt wird.
Um einen Referenzpfad für eine Operation in ein Skript (Jitterbit Script nur) hinzuzufügen, verwenden Sie eine der folgenden Methoden:
- Ziehen Sie die Operation aus der Palette in das Skript, um sowohl die
RunOperation-Funktion als auch die Operationsreferenz einzufügen. - Doppelklicken Sie auf die Operation in der Palette, um die Operationsreferenz an der Position des Cursors im Skript einzufügen.
- Beginnen Sie, den Namen der Operation einzugeben, und drücken Sie dann
Control+Space, um eine Liste von Autocomplete-Vorschlägen anzuzeigen. Wählen Sie eine Operation aus, um die Operationsreferenz einzufügen. - Geben Sie die Operationsreferenz manuell ein.
Die Operationsreferenz ist in <TAG> und </TAG>-Tags enthalten und besteht aus dem Typ der Projektkomponente (operation), gefolgt von einem Doppelpunkt (:), gefolgt vom vom Benutzer bereitgestellten Operationsnamen. Dieses Beispiel verwendet die RunOperation-Funktion mit einer Referenz auf eine Operation namens My Example Operation:
<trans>
RunOperation("<TAG>operation:My Example Operation</TAG>");
</trans>
Neben der Verwendung der RunOperation-Funktion können Sie die Operationsreferenz auch mit anderen Funktionen aus dem Functions-Tab verwenden, die die Operationsreferenz als Argument akzeptieren. Dazu gehören Funktionen, die in Allgemeine Funktionen aufgeführt sind und ein operationInstanceGUID, operationId oder operationTag als Parameter verwenden. Zum Beispiel:
CancelOperationGetLastOperationRunStartTimeGetOperationQueueRunOperationWaitForOperation
Notifications
Der Notifications-Tab bietet eine Liste von Benachrichtigungen im Projekt, die in einem Skript referenziert werden können.
Innerhalb eines Skripts können Sie eine Benachrichtigung als Argument für die SendEmailMessage Funktion referenzieren, indem Sie den Referenzpfad der Benachrichtigung einfügen.
Um einen Benachrichtigungsreferenzpfad zu einem Skript (Jitterbit Script nur) hinzuzufügen, verwenden Sie eine dieser Methoden:
- Ziehen Sie die Benachrichtigung aus der Palette in das Skript, um sowohl die
SendEmailMessageFunktion als auch die Benachrichtigungsreferenz einzufügen. - Doppelklicken Sie auf die Benachrichtigung in der Palette, um die Benachrichtigungsreferenz an der Position des Cursors im Skript einzufügen.
- Beginnen Sie, den Benachrichtigungsnamen einzugeben, und drücken Sie dann
Control+Space, um eine Liste von Autovervollständigungsvorschlägen anzuzeigen. Wählen Sie eine Benachrichtigung aus, um die Benachrichtigungsreferenz einzufügen. - Geben Sie die Benachrichtigungsreferenz manuell ein.
Die Benachrichtigungsreferenz ist in <TAG> und </TAG> Tags enthalten und besteht aus dem Typ der Projektkomponente (email), gefolgt von einem Doppelpunkt (:), gefolgt vom vom Benutzer bereitgestellten Namen der Email-Benachrichtigung. Dieses Beispiel verwendet die SendEmailMessage Funktion mit einer Referenz auf eine Email-Benachrichtigung mit dem Namen Meine Beispiel-Email-Benachrichtigung:
<trans>
SendEmailMessage("<TAG>email:My Example Email Notification<TAG>");
</trans>
Skripte
Die Skripte-Registerkarte bietet eine Liste aller anderen eigenständigen Projektkomponenten-Skripte im Projekt — geschrieben in entweder Jitterbit Script oder JavaScript — die in einem Skript referenziert werden können.
Innerhalb eines Skripts können Sie ein anderes Skript als Argument für die RunScript Funktion referenzieren, indem Sie den Skriptreferenzpfad einfügen.
Um einen Skriptreferenzpfad zu einem Skript (Jitterbit Script nur) hinzuzufügen, verwenden Sie eine dieser Methoden:
- Ziehen Sie das Skript aus der Palette in das Skript, um sowohl die
RunScriptFunktion als auch die Skriptreferenz einzufügen. - Doppelklicken Sie auf das Skript in der Palette, um die Skriptreferenz an der Position des Cursors im Skript einzufügen.
- Beginnen Sie, den Skriptnamen einzugeben, und drücken Sie dann
Control+Space, um eine Liste von Autovervollständigungsvorschlägen anzuzeigen. Wählen Sie ein Skript aus, um die Skriptreferenz einzufügen. - Geben Sie die Skriptreferenz manuell ein.
Der Skriptverweis ist in den <TAG> und </TAG> Tags enthalten und besteht aus dem Typ der Projektkomponente (script), gefolgt von einem Doppelpunkt (:), gefolgt vom vom Benutzer bereitgestellten Skriptnamen. Dieses Beispiel verwendet die RunScript Funktion mit einem Verweis auf ein Skript namens Mein Beispielskript:
<trans>
RunScript("<TAG>script:Mein Beispielskript</TAG>");
</trans>
Endpunkte
Der Endpunkte Tab bietet eine Liste von Endpunkten im Projekt, die in einem Skript referenziert werden können.
Innerhalb eines Skripts können Sie Endpunkte als Argument für Funktionen referenzieren, indem Sie den Verweis-Pfad zur Verbindung oder Aktivität einfügen.
Um einen Verweis-Pfad zur Verbindung oder Aktivität in ein Skript (Jitterbit-Skript oder JavaScript) hinzuzufügen, verwenden Sie eine dieser Methoden:
- Ziehen Sie die Verbindung oder Aktivität aus der Palette in das Skript, um den entsprechenden Verweis einzufügen.
- Doppelklicken Sie auf die Verbindung oder Aktivität in der Palette, um den entsprechenden Verweis an der Position des Cursors im Skript einzufügen.
- Beginnen Sie, den Namen der Verbindung oder Aktivität einzugeben, und drücken Sie dann
Control+Space, um eine Liste von Autocomplete-Vorschlägen anzuzeigen. Wählen Sie eine Verbindung oder Aktivität aus, um den entsprechenden Verweis einzufügen. - Geben Sie den Verweis zur Verbindung oder Aktivität manuell ein.
Die Arten von Endpunkten, die innerhalb von Skripten verwendet werden können, hängen davon ab, ob es Funktionen gibt, die den spezifischen Typ von Verweis zur Verbindung oder Aktivität als Argument unterstützen. Die Endpunktverweise müssen in Verbindung mit diesen Funktionen verwendet werden, um im Skript gültig zu sein.
Verbindungen und Aktivitäten, die im Skript verwendet werden können, erscheinen innerhalb von Kategorien, die die Anzahl jedes verfügbaren Elements unter jeder Kategorie auflisten. Aktivitätsnamen werden von eckigen Klammern begleitet, die den Typ der Interaktion mit der Datenressource enthalten, der spezifisch für den Aktivitätstyp ist (zum Beispiel, Lesen, Schreiben, Abfragen, Upsert, GET, POST usw.). Um hier angezeigt zu werden, müssen Verbindungen und Aktivitäten bereits im Projekt konfiguriert sein. Wenn es beispielsweise eine einzelne konfigurierte HTTP-Verbindung im Projekt gibt, mit zwei Aktivitäten, die diese Verbindung verwenden, erscheinen sie gruppiert wie folgt:

Verbindungsreferenzen sind in den <TAG> und </TAG> Tags enthalten und bestehen aus dem Typ der Projektkomponente (endpoint), gefolgt von einem Doppelpunkt (:), gefolgt vom Typ des Endpunkts, gefolgt vom vom Benutzer bereitgestellten Verbindungsnamen. Zum Beispiel:
<TAG>endpoint:database/My Example Database</TAG>
Aktivitätsreferenzen sind länger, da die Verbindungsreferenz, mit der sie assoziiert sind, ebenfalls im Pfad enthalten sein muss. Aktivitätsreferenzen sind in den <TAG> und </TAG> Tags enthalten und bestehen aus dem Typ der Projektkomponente (activity), gefolgt von einem Doppelpunkt (:), gefolgt vom Typ und Namen der Verbindung, gefolgt vom Typ der Aktivität, gefolgt vom vom Benutzer bereitgestellten Aktivitätsnamen. Zum Beispiel:
<TAG>activity:database/My Example Database/database_query/Query Employees</TAG>
Je nach spezifischem Verbindungs- oder Aktivitätstyp, wie unten aufgeführt, können Funktionen aus dem Functions Tab verwendet werden, die eine Connector-Referenz als Argument annehmen. Die unten beschriebenen Funktionen können mit den aufgeführten Verbindungen und Aktivitäten verwendet werden.
| Kategorie | Beschreibung | Verwendung von Komponenten als Funktionsparameter |
|---|---|---|
| Datenbank-Endpunkte | Diese Kategorie umfasst alle konfigurierten Datenbank Verbindungen und zugehörigen Aktivitäten, die je nach spezifischer Funktion in Skripten verwendet werden können. | Datenbankverbindungen können mit allen Funktionen verwendet werden, die in Datenbankfunktionen aufgeführt sind und die eine databaseId als Parameter verwenden, einschließlich:
target als Parameter verwenden, einschließlich:
|
| Dateifreigabe-Endpunkte FTP-Endpunkte HTTP-Endpunkte Lokale Speicher-Endpunkte Temporäre Speicher-Endpunkte |
Diese Kategorien umfassen alle konfigurierten Dateifreigabe, FTP, HTTP, Lokale Speicher und Temporäre Speicher Verbindungen (die nicht in einem Skript verwendet werden können) und zugehörige Aktivitäten (die in einem Skript verwendet werden können). Hinweis Obwohl eine API Endpoints-Kategorie ebenfalls enthalten ist, können API Verbindungen und Aktivitäten nicht in einem Skript verwendet werden. |
Die enthaltenen Aktivitäten (außer API-Aktivitäten) können mit allen Funktionen verwendet werden, die in Kryptografischen Funktionen, Datenbankfunktionen, Dateifunktionen oder Salesforce-Funktionen aufgeführt sind und die eine sourceId oder targetId als Parameter verwenden, einschließlich dieser:
|
| Salesforce-Endpunkte | Diese Kategorie umfasst alle konfigurierten Salesforce Verbindungen (die in einem Skript verwendet werden können). Salesforce-Aktivitäten sind nicht enthalten, da sie nicht in einem Skript verwendet werden können. | Salesforce-Verbindungen können mit allen Funktionen verwendet werden, die in Salesforce-Funktionen aufgeführt sind und die eine salesforceOrg als Parameter verwenden, einschließlich:
|
| NetSuite-Endpunkte | Diese Kategorie umfasst alle konfigurierten NetSuite Verbindungen (die in einem Skript verwendet werden können). NetSuite-Aktivitäten sind nicht enthalten, da sie nicht in einem Skript verwendet werden können. | NetSuite-Verbindungen können mit allen Funktionen verwendet werden, die in NetSuite-Funktionen aufgeführt sind und die eine netSuiteOrg als Parameter verwenden, einschließlich:
|
Datentypen
Alle Quellobjekte und globalen Variablen, die nicht null sind, haben einen zugeordneten Datentyp. Verschiedene Datentypen können mit den Funktionen in der Kategorie Konvertierungsfunktionen geändert werden.
Diese Datentypen werden in Jitterbit-Skripten unterstützt:
| Typ | Beschreibung | Klassifizierung |
|---|---|---|
binary |
Binär | Daten |
bit |
Bit | Daten |
bool |
Boolean | Logisch |
int |
Ganzzahl | Numerisch |
decimal |
Dezimal | Numerisch |
double |
Doppel | Numerisch |
float |
Fließkomma | Numerisch |
long |
Lang | Numerisch |
date |
Datum | Datum & Uhrzeit |
timespan |
Zeitspanne (Datum mit einer Zeit) | Datum & Uhrzeit |
string |
Zeichenkette | Zeichenkette |
array |
Array | Sammlung |
dictionary |
Wörterbuch (auch bekannt als map) |
Sammlung |
instance |
Instanz in einer Datenquelle oder Ziel | Schema |
node |
Knoten in einem Schema einer Datenquelle oder Ziel | Schema |
type |
Einer dieser Typen | Daten |
null |
Nullwert | Daten |
var |
Variablenreferenz, entweder lokal oder global | Skript |
Arrays
Ein Array ist eine Sammlung von Variablen. Jedes Mitglied in der Sammlung kann jeden unterstützten Typ haben, einschließlich Arrays. Die Mitglieder eines Arrays können mit den Methoden Get und Set oder mit der [] array-Syntax zugegriffen werden. Arrays sind nullbasiert, und Indizes sind numerisch, sequenziell und können nicht übersprungen werden.
Sie können auch Arrays von globalen Variablen erstellen. Eine Array-Globale Variable ist ein Array von anderen globalen Variablen, die wiederum Arrays sein können.
Setzen eines Arrays
Sie können Werte in einem Array mit der Set-Funktion in dieser Syntax festlegen:
type Set(string name, type value [, int index1, int index2, ...])
Dies setzt den Wert der globalen Variable mit dem angegebenen Namen auf den Wert und gibt den Wert zurück. Wenn das erste Argument ein Array oder der Name einer Array-Globalen Variable ist, können Sie den Wert einer Array-Variablen festlegen, indem Sie dessen Index (oder Indizes für mehrdimensionale Arrays) als drittes Argument angeben.
Nicht alle Elemente in einem Array müssen vom gleichen Typ sein. Zum Beispiel können Sie ein Array erstellen, das ein Datum, eine Ganzzahl und eine Zeichenfolge enthält. Sie können sogar Arrays innerhalb anderer Arrays erstellen.
Dieses Beispiel erstellt ein Array mit drei Variablen unterschiedlicher Typen, wobei jeder Eintrag das aktuelle Datum und die aktuelle Uhrzeit darstellt:
<trans>
$right_now = Now();
Set($now, $right_now, 0);
Set($now, Long($right_now), 1);
Set($now, String($right_now), 2);
</trans>
Da Arrays nullbasiert sind, befindet sich das erste Element an Index 0 und das letzte Element an Index (Größe-1). Um Daten zu einem Array hinzuzufügen, übergeben Sie entweder einen negativen Indexwert oder die Größe des Arrays (Length($arr)). Das Festlegen eines Elements mit einem Index, der größer als die Größe des Arrays ist, führt zu einem Index außerhalb des Bereichs-Fehler. Das Festlegen von Nicht-Array-Datenelementen kann ebenfalls mit der $de_name-Syntax erfolgen.
Hier sind Beispiele zum Festlegen von Werten in einem Array:
// Set the n:th entry in an array to the string "value"
Set($arr, "value", n-1);
// Another way to set the n:th entry of an array
Set($arr, "value", Length($arr));
// Sets the value to a new variable at the end of the array
Set($arr, "value", -1);
// Set the n:th entry of the m:th array
Set($record_set, "value", m-1, n-1);
Tipp
Für zusätzliche Syntax, die verwendet werden kann, um Werte in einem Array zu definieren, siehe Dictionary und Array-Funktionen.
Zugriff auf ein Array
Sie können auf die Elemente eines Arrays mit der Get-Methode in dieser Syntax zugreifen:
type Get(string name[, int index1, int index2, ...])
Dies gibt den Wert der globalen Variable mit dem angegebenen Namen zurück. Wenn das erste Argument ein Array oder der Name einer Array-Globalen Variable ist, können Sie eine bestimmte Variable abrufen, indem Sie deren Index (oder Indizes für ein mehrdimensionales Array wie ein Record-Set) als zweites Argument angeben.
Einige Funktionen haben Array-Rückgabewerte. Zum Beispiel gibt SelectNodesFromXMLAny die Ergebnisse einer XPath-Abfrage als Array zurück. Ein weiteres Beispiel ist DbExecute, das ein Datensatzset als zweidimensionales Array zurückgibt: zuerst die Zeilen, dann die Spalten. Dies gibt die ausgewählten Daten als Array von Arrays (die die ausgewählten Zeilen und Spalten darstellen) zurück:
<trans>
$resultSet = DbExecute("<TAG>endpoint:database/My Database</TAG>", "select Result from SimpleCalculatorResults");
$firstRow = Get($resultSet, 0);
$thirdColumnOfSecondRow = $resultSet[2][3];
$secondColumnOfThirdRow = Get($resultSet, 3, 2);
</trans>
Arrays sind nullbasiert. Um auf die n-te Variable eines Arrays mit dem Namen "arr" zuzugreifen, verwenden Sie Get("arr", n-1). Bei mehrdimensionalen Arrays müssen Sie alle Indizes angeben. Um auf die n-te Spalte der m-ten Zeile in einem Array mit dem Namen ResultSet zuzugreifen, verwenden Sie Get("ResultSet", m-1, n-1). Der Versuch, auf eine Variable jenseits des Endes des Arrays zuzugreifen, führt zu einem Array-Indexfehler.
Dies sind Beispiele für das Abrufen von Werten aus einem Array:
// Return the third array variable
Get($arr, 2);
// Another way to return the third array variable
Get("arr", 2);
// Get the n:th variable of the m:th array in arr
Get($arr, m-1, n-1);
Dieses Beispiel zeigt, wie Sie zunächst ein Skript erstellen können, das ein Array erstellt und zurückgibt. Der zweite Block zeigt, wie dieses Skript ausgeführt und der zurückgegebene Wert einer Variablen zugewiesen wird.
<trans>
// Script to build and return an array
a = Array();
a[Length(a)] = "A";
a[Length(a)] = "B";
a[Length(a)] = "C";
a;
</trans>
<trans>
// Call the script to retrieve the array
$Arr = RunScript("<TAG>script:Build Array</TAG>");
</trans>
Tipp
Für zusätzliche Syntax, die verwendet werden kann, um auf Werte in einem Array zuzugreifen, siehe Dictionary- und Array-Funktionen.
Wörterbücher
In Jitterbit Script ist ein Wörterbuch eine spezielle Art von globalem Variablenarray, das Schlüssel-Wert-Paare enthält. Die Schritte und Funktionen sind:
-
Initialisieren Sie das Wörterbuch mit der Funktion
Dict:$d = Dict(); -
Laden Sie Daten mit einem Schlüssel und einem Wert:
$d['4011'] = 'Banane'; $d['4063'] = 'Tomate'; -
Überprüfen Sie, ob der Schlüssel bereits im Wörterbuch vorhanden ist, indem Sie die Funktion
HasKeyverwenden:HasKey($d,'4011'); // Gibt true zurückIm Beispiel haben wir bereits den Schlüssel '4011' geladen, sodass
HasKeytruezurückgeben würde.HasKey($d,'4089'); // Gibt false zurück
Wenn der Schlüssel noch nicht geladen wäre, zum Beispiel '4089', würde HasKey false zurückgeben.
-
Schlagen Sie den Wert im Wörterbuch nach, indem Sie den Schlüssel übergeben und den Wert zurückerhalten:
$d['4011']; // Gibt 'Banane' zurückIn diesem Beispiel wäre der zurückgegebene Wert
Banane.
Beachten Sie bei Wörterbüchern folgende Eigenschaften:
- Der Geltungsbereich von Wörterbüchern ist auf den Workflow beschränkt. Wenn eine Operation beispielsweise
$MyDictmit 10.000 Datensätzen lädt, haben nur die Operationen, die über "bei Erfolg" oder "bei Misserfolg" Pfade oder mitRunOperationverbunden sind, Zugriff auf dieses Wörterbuch. Wenn jedoch eine Operation Chunking und Threading verwendet und eine Transformation hat, die ein Wörterbuch befüllt, ist das Wörterbuch inkonsistent. Dies liegt daran, dass Harmony die Werte, die von mehreren Operationsthreads Variablen zugewiesen werden, nicht in eine einzige Wertmenge zusammenführt. Dies gilt für alle globalen Variablen oder Arrays. Verwenden Sie die Standardwerte für Chunking/Threading, wenn Sie eine Operation erstellen, die Wörterbücher befüllt. - Wörterbücher sind aufgrund der Verwendung einer binären Suche schnell beim Finden von Schlüsseln und Zurückgeben von Werten. Ein Schlüssel kann normalerweise innerhalb von fünf bis sechs Versuchen gefunden werden. Im Gegensatz dazu vergleichen Sie diese Art der Suche mit dem Durchlaufen eines Arrays mit 10.000 Datensätzen, um einen Schlüssel zu finden.
- Wörterbücher werden nicht im Speicher geschrieben, sodass sie die verfügbare Serverspeicher für die Verarbeitung nicht wesentlich beeinflussen.