Zum Inhalt springen

Jitterbit Script-Sprache in Studio

Einführung

Die Jitterbit Script-Sprache kann in allen Arten von Skripten innerhalb von Harmony verwendet werden, einschließlich in Operationen und Transformationen. Skripte werden standardmäßig in der Jitterbit Script-Sprache erstellt. Diese Seite enthält Informationen speziell zur Jitterbit Script-Sprache, wie Syntax, Datentypen, Operatoren, Escape-Sequenzen und Kontrollstrukturen. Siehe auch verwandte Seiten zum Erstellen eines Skripts, Verwenden des Skript-Editors und Testen eines Skripts.

Zur Fehlerbehebung bei Skript- und Funktionsverhalten siehe Skript- und Funktionsfehler im Leitfaden zur Fehlerbehebung bei Operationen.

Syntax

In Jitterbit Script müssen Skripte in einem <trans>-Öffnungs-Tag und </trans>-Schließungs-Tag eingeschlossen sein, es sei denn, es werden Funktionen verwendet, die speziell vorsehen, dass Code außerhalb dieser Tags platziert wird, wie mehrere Datenbankfunktionen.

Innerhalb dieser Tags besteht ein Jitterbit Script aus integrierten Funktionen, Variablen oder auszuführender Logik, 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 markieren zwei Schrägstriche // den Anfang eines einzeiligen Kommentars und beeinflussen den Text bis zum Ende dieser Zeile. Kommentare sind nicht Teil des ausgeführten Skripts oder des transformierten Ergebnisses.

Ein Kommentar in einer einzelnen Zeile könnte beispielsweise so aussehen:

Einzeiliger Kommentar in Jitterbit Script
<trans>
// This is a comment
DbLookup(...)
</trans>

Sie können einzeilige Kommentare auf mehreren Zeilen gleichzeitig anwenden, indem Sie die relevanten Zeilen markieren und Strg + / (Windows oder Linux) oder Befehl + / (macOS) verwenden.

Sie können auch einen Kommentar im Block-Stil verwenden:

Mehrzeiliger Kommentar in Jitterbit Script
<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 Script-Sprache enthält keine Kontrollaussagen wie if oder while-Schleifen. Stattdessen können Sie Jitterbit-Funktionen verwenden, um die gleiche 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.

Für jede einzelne Schleife in Jitterbit Scripts ist eine maximale Anzahl von 50.000 Schleifeniterationen zulässig. Um die zulässige Anzahl von Iterationen pro Schleife zu erhöhen, siehe jitterbit.scripting.while.max_iterations in Scripting Jitterbit-Variablen.

Reguläre Ausdrücke

Harmony unterstützt reguläre Ausdrücke als Mittel zur Angabe und Erkennung von Textzeichenfolgen, einschließlich bestimmter Zeichen, Wörter oder Zeichenmuster. Harmony unterstützt die Syntax für reguläre Ausdrücke aus der Programmiersprache Perl 5.

<trans>
RegExMatch(<input>,<expression>,...)
</trans>

Escape-Sequenzen

Harmony erkennt diese Escape-Sequenzen, wenn sie in Literalzeichenfolgen verwendet werden:

Sequenz Definition
\t Tabulator
\r Wagenrücklauf
\n Neue Zeile

Literalzeichenfolgen müssen von doppelten Anführungszeichen (") oder einfachen Anführungszeichen (') umgeben sein.

Alle anderen Anführungszeichen müssen mit Escape-Zeichen versehen werden, wenn sie in der Zeichenfolge verwendet werden. 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 verkettet zwei Strings. Wenn ein String zu etwas anderem addiert wird, werden beide Argumente in Strings 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.
+= Verkettet einen String 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.
/ Dividiert zwei Zahlen. Das Ergebnis ist vom Typ double.
* Multipliziert zwei Zahlen. Das Ergebnis ist vom Typ double.
^ Potenziert das erste Argument mit dem zweiten Argument. Wenn beide Argumente Ganzzahlen sind, ist das Ergebnis eine Ganzzahl.

Logik

Operator Beschreibung
& Logischer UND-Operator. Das Ergebnis ist vom Typ boolean. && kann auch verwendet werden. Dies ist immer ein Short-Circuit-Operator, d. h. wenn das linke Argument zu false ausgewertet wird, wird das rechte Argument nicht ausgewertet.
| Logischer ODER-Operator. Das Ergebnis ist vom Typ boolean. || kann auch verwendet werden. Dies ist immer ein Short-Circuit-Operator, d. h. wenn das linke Argument zu true ausgewertet wird, wird das rechte Argument nicht ausgewertet.

Vergleich

Verwenden Sie die folgenden Operatoren, um Werte zweier Argumente desselben Datentyps zu vergleichen:

Operator Beschreibung
= Weist einer Variablen 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. Geben true oder false zurück.

Hinweis

Der Vergleich von Argumenten verschiedener Datentypen wird nicht unterstützt.

Negation

Operator Beschreibung
!

Negationsoperator. Konvertiert einen wahren Wert in falsch und umgekehrt. Beispiel:

!IsNull($org.workorder.id)

Array

Operator Beschreibung
{ }

Wird zum Erstellen eines Arrays verwendet. Beispiele:

\(a={"London","Paris","New York"};<br/>\)b={{"John",25},
{"Steve",32},
{"Daniel",26}
};
$c={"\"quoted\"", '"quoted"'};

Operatorpriorität

Diese Tabelle zeigt die Priorität der Operatoren von höchster zu niedrigster:

Operatoren Beschreibung
() Klammern zur Gruppierung
{ } Geschweifte Klammern für Arrays
++ -- - Unäre Operatoren (pre- und post-)
^ Potenz
! Negation
* / Multiplikation, Division
+ - Addition, Subtraktion
< > == != <= >= Vergleichsoperatoren
& && Logisches UND
| || Logisches ODER
= += -= Zuweisung

Komponentenpalette

Die Skript-Komponentenpalette bietet Zugriff auf verschiedene Komponenten, die innerhalb eines Skripts verwendet werden können. Man kann Komponenten in einem Skript verwenden, indem man sie aus der Komponentenpalette zieht oder doppelt anklickt, die Autovervollständigungsfunktion nutzt oder die richtige Syntax manuell eingibt oder einfügt.

Hinweis

Wenn ein Skript andere Projektkomponenten aufruft, die noch nicht bereitgestellt wurden, müssen diese Komponenten vor der erfolgreichen Ausführung des Skripts bereitgestellt werden.

Man kann auf die Skript-Komponentenpalette auf der rechten Seite des Projekt-Designers und des Skript-Editors zugreifen:

source objects transaction

Quellobjekte

Der Quellobjekte-Tab ist nur für Skripts vorhanden, die innerhalb einer Transformation erstellt wurden.

Innerhalb eines Transformationsskripts kann man auf Quelldaten verweisen, indem man den Referenzpfad eines Feldes einfügt, oder man kann auf Quelldatenknoten verweisen, indem man den Referenzpfad eines Knotens einfügt. Das Einfügen eines Feldrefernzpfads in ein Transformationsskript ordnet das Quellobjekt einem Zielfeld zu (siehe Quellobjekte zuordnen). Obwohl Knoten nicht Zielfeldern 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 hinzuzufügen (Jitterbit Script nur), 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 Cursorposition im Skript einzufügen.
  • Geben Sie den Referenzpfad zum Quellobjekt manuell ein.

Dieses Beispiel weist ein Quellobjekt einer globalen Variablen 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>

Informationen zur Konstruktion von Feld- und Knotenreferenzpfaden finden Sie unter Referenzpfad-Notation in Schlüsselkonzepte.

Funktionen

Die Registerkarte Funktionen bietet eine Liste der Funktionen, die in einem Skript verwendet werden können.

Innerhalb eines Skripts können Sie Funktionen verwenden, indem Sie die Funktionssyntax einfügen.

Um die Funktionssyntax zu einem Skript hinzuzufügen (Jitterbit Script oder JavaScript), 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 Cursorposition 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, um eine Liste mit Autovervollständigungsvorschlägen anzuzeigen. Wählen Sie eine Funktion aus, um die Funktionssyntax einzufügen.
  • Geben Sie die Funktionssyntax manuell ein.

Weitere Informationen finden Sie in der Dokumentation für jede Funktion nach Kategorie unter Funktionen.

Variablen

Die Registerkarte Variablen bietet Zugriff auf Variablen, die global im gesamten Projekt referenziert werden können, einschließlich globaler Variablen, Projektvariablen und Jitterbit-Variablen.

Innerhalb eines Skripts können Sie Variablen verwenden, indem Sie die Variablensyntax einfügen (siehe die Dokumentation für jeden Variablentyp unter Variablen).

Um die Variablensyntax zu einem Skript hinzuzufügen (Jitterbit Script oder JavaScript), verwenden Sie eine dieser Methoden:

  • Ziehen Sie die Variable aus der Palette in das Skript, um die Variablensyntax einzufügen.
  • Doppelklicken Sie auf die Variable in der Palette, um die Variablensyntax an der Cursorposition im Skript einzufügen.
  • Beginnen Sie, den Variablennamen einzugeben, um eine Liste mit Autovervollständigungsvorschlägen anzuzeigen. Wählen Sie eine Variable aus, um die Variablensyntax einzufügen.
  • Geben Sie die Variablensyntax manuell ein.

Auf globale Variablen wird zugegriffen, indem man entweder ein $-Zeichen vor dem Variablennamen eingibt oder die Funktionen Set und Get verwendet.

Globale Variablennamen können aus diesen Zeichen zusammengesetzt werden: Buchstaben (a-z, A-Z), Zahlen (0-9), Punkte und Unterstriche. Andere Zeichen wie Bindestriche werden nicht empfohlen und können zu Problemen führen. (Beachten Sie, dass bei lokalen Variablen das Punkt-Zeichen ebenfalls nicht empfohlen wird.)

Dieses Beispiel referenziert eine globale Variable mit $, 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 eine globale Variable einer anderen globalen Variablen mit den Funktionen Set und Get zu:

<trans>
Set("op2", Get("op"));
</trans>

Beachten Sie, dass Sie für bestimmte Jitterbit-Variablen, da sie einen Bindestrich enthalten, diese entweder mit der Funktion Set oder Get referenzieren müssen:

<trans>
Get("jitterbit.source.http.response.header.Content-Type");
</trans>

Lokale Variablen werden zwar nicht auf der Registerkarte Variablen aufgelistet, da sie nicht global verfügbar sind. Sie können sie jedoch weiterhin lokal innerhalb eines Skripts verwenden. Lokale Variablen haben folgende Eigenschaften:

  • Eine lokale Variable wird nur innerhalb eines bestimmten Skripts definiert und verwendet. Daher besteht keine Gefahr von Konflikten zwischen dem Wert einer lokalen Variable im aktuellen Skript und dem Wert einer lokalen Variable mit demselben Namen in einem anderen Skript.
  • Die lokale Variable kann nicht durch die Funktionen Set oder Get definiert oder abgerufen werden.
  • RunScript kann Argumente an das Skript übergeben, z. B. RunScript(SCRIPT_ID, 5, "abc",...). Werte im Skript können vordefinierten lokalen Variablen _1, _2, ... zugewiesen werden. In diesem Beispiel stellt _1 den ganzzahligen Wert 5 dar, während _2 den Zeichenfolgenwert "abc" darstellt. Die lokale Variable muss definiert werden, bevor sie referenziert werden kann, mit Ausnahme der Eingabeargumente _1, _2, ... wie oben beschrieben.
  • Die Funktion ArgumentList ist für die Neudefinition einer Liste lokaler Variablen als Eingabeargumente verfügbar.

Weitere Informationen zu den einzelnen Variablentypen und Beispiele finden Sie unter Variablen.

Plugins

Die Registerkarte Plugins enthält eine Liste der Plugins, die innerhalb eines Skripts ausgeführt werden können.

Innerhalb eines Skripts können Sie ein Plugin als Argument für die Funktion RunPlugin verwenden, indem Sie den Plugin-Referenzpfad einfügen (siehe Plugins, die in einem Skript aufgerufen werden).

Um einen Plugin-Referenzpfad zu einem Skript hinzuzufügen (Jitterbit Script nur), verwenden Sie eine dieser Methoden:

  • Ziehen Sie das Plugin aus der Palette in das Skript, um sowohl die Funktion RunPlugin als 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, um eine Liste mit Autocomplete-Vorschlägen anzuzeigen. Wählen Sie ein Plugin aus, um die Plugin-Referenz einzufügen.
  • Geben Sie die Plugin-Referenz manuell ein. Falls aktiviert, können KI-generierte Zeilenvorschläge die Referenz auch vervollständigen.

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 Plugin HMAC-SHA1-Generator:

<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 Console identisch ist.

Hinweis

Es werden nur Plugins aufgelistet, die innerhalb eines Skripts verwendet werden können. Zusätzliche Plugins können auf eine Aktivität innerhalb eines Vorgangs angewendet werden. Dokumentation zur Verwendung von Plugins, einschließlich der Konfiguration eines Plugins auf Aktivitätsebene und der Einstellung globaler Variablen, finden Sie in den Abschnitten unter Plugins.

Vorgänge

Die Registerkarte Vorgänge enthält eine Liste der Vorgänge im Projekt, die in einem Skript referenziert werden können.

Innerhalb eines Skripts können Sie einen Vorgang als Argument für Funktionen verwenden, indem Sie den Vorgansreferenzpfad einfügen.

Um einen Vorgansreferenzpfad zu einem Skript hinzuzufügen (Jitterbit Script nur), verwenden Sie eine dieser Methoden:

  • Ziehen Sie den Vorgang aus der Palette in das Skript, um sowohl die Funktion RunOperation als auch die Vorgansreferenz einzufügen.
  • Doppelklicken Sie auf den Vorgang in der Palette, um die Vorgansreferenz an der Position des Cursors im Skript einzufügen.
  • Beginnen Sie, den Vorgangsnamen einzugeben, um eine Liste mit Autocomplete-Vorschlägen anzuzeigen. Wählen Sie einen Vorgang aus, um die Vorgansreferenz einzufügen.
  • Geben Sie die Vorgansreferenz manuell ein. Falls aktiviert, können KI-generierte Zeilenvorschläge die Referenz auch vervollständigen.

Die Operationsreferenz ist in <TAG>- und </TAG>-Tags enthalten und besteht aus dem Typ der Projektkomponente (operation), gefolgt von einem Doppelpunkt (:), gefolgt vom benutzerdefinierten Operationsnamen. Dieses Beispiel verwendet die RunOperation-Funktion mit einer Referenz zu einer Operation namens My Example Operation:

<trans>
RunOperation("<TAG>operation:My Example Operation</TAG>");
</trans>

Neben der RunOperation-Funktion kann man die Operationsreferenz auch mit anderen Funktionen aus dem Tab Functions verwenden, die die Operationsreferenz als Argument akzeptieren. Dazu gehören Funktionen aus General functions, die einen operationInstanceGUID, operationId oder operationTag als Parameter verwenden. Beispiele:

  • CancelOperation
  • GetLastOperationRunStartTime
  • GetOperationQueue
  • RunOperation
  • WaitForOperation

Notifications

Der Tab Notifications enthält eine Liste der Benachrichtigungen im Projekt, die in einem Skript referenziert werden können.

Innerhalb eines Skripts kann man eine Benachrichtigung als Argument für die Funktion SendEmailMessage referenzieren, indem man den Benachrichtigungsreferenzpfad einfügt.

Um einen Benachrichtigungsreferenzpfad zu einem Skript hinzuzufügen (Jitterbit Script nur), nutze eine dieser Methoden:

  • Ziehe die Benachrichtigung aus der Palette in das Skript, um sowohl die Funktion SendEmailMessage als auch die Benachrichtigungsreferenz einzufügen.
  • Doppelklicke auf die Benachrichtigung in der Palette, um die Benachrichtigungsreferenz an der Cursorposition im Skript einzufügen.
  • Beginne, den Namen der Benachrichtigung einzugeben, um eine Liste mit Autovervollständigungsvorschlägen anzuzeigen. Wähle eine Benachrichtigung aus, um die Benachrichtigungsreferenz einzufügen.
  • Gebe die Benachrichtigungsreferenz manuell ein. Falls aktiviert, können KI-generierte Zeilenvorschläge die Referenz auch vervollständigen.

Die Benachrichtigungsreferenz ist in <TAG>- und </TAG>-Tags enthalten und besteht aus dem Typ der Projektkomponente (email), gefolgt von einem Doppelpunkt (:), gefolgt vom benutzerdefinierten Namen der E-Mail-Benachrichtigung. Dieses Beispiel verwendet die Funktion SendEmailMessage mit einer Referenz zu einer E-Mail-Benachrichtigung namens My Example Email Notification:

<trans>
SendEmailMessage("<TAG>email:My Example Email Notification<TAG>");
</trans>

Scripts

Der Tab Scripts enthält eine Liste aller anderen eigenständigen Projektkomponentenskripte im Projekt – geschrieben in Jitterbit Script oder JavaScript – die in einem Skript referenziert werden können.

Innerhalb eines Skripts kann man ein anderes Skript als Argument für die Funktion RunScript referenzieren, indem man den Skriptreferenzpfad einfügt.

Um einen Skriptreferenzpfad zu einem Skript hinzuzufügen (Jitterbit Script nur), nutze eine dieser Methoden:

  • Ziehe das Skript aus der Palette in das Skript, um sowohl die Funktion RunScript als auch die Skriptreferenz einzufügen.
  • Doppelklicke auf das Skript in der Palette, um die Skriptreferenz an der Cursorposition im Skript einzufügen.
  • Beginne, den Namen des Skripts einzugeben, um eine Liste mit Autovervollständigungsvorschlägen anzuzeigen. Wähle ein Skript aus, um die Skriptreferenz einzufügen.
  • Gebe die Skriptreferenz manuell ein. Falls aktiviert, können KI-generierte Zeilenvorschläge die Referenz auch vervollständigen.

Die Skriptreferenz ist in <TAG>- und </TAG>-Tags enthalten und besteht aus dem Typ der Projektkomponente (script), gefolgt von einem Doppelpunkt (:), gefolgt vom benutzerdefinierten Skriptnamen. Dieses Beispiel verwendet die Funktion RunScript mit einer Referenz zu einem Skript namens My Example Script:

<trans>
RunScript("<TAG>script:Mein Beispielskript</TAG>");
</trans>

Endpunkte

Die Endpunkte-Registerkarte bietet eine Liste der Endpunkte im Projekt, auf die in einem Skript verwiesen werden kann.

Innerhalb eines Skripts können Sie auf Endpunkte als Argument für Funktionen verweisen, indem Sie den Verbindungs- oder Aktivitätsreferenzpfad einfügen.

Um einen Verbindungs- oder Aktivitätsreferenzpfad zu einem Skript hinzuzufügen (Jitterbit Script oder JavaScript), verwenden Sie eine dieser Methoden:

  • Ziehen Sie die Verbindung oder Aktivität aus der Palette in das Skript, um die entsprechende Referenz einzufügen.
  • Doppelklicken Sie auf die Verbindung oder Aktivität in der Palette, um die entsprechende Referenz an der Cursorposition im Skript einzufügen.
  • Beginnen Sie, den Namen der Verbindung oder Aktivität einzugeben, um eine Liste mit Autovervollständigungsvorschlägen anzuzeigen. Wählen Sie eine Verbindung oder Aktivität aus, um die entsprechende Referenz einzufügen.
  • Geben Sie die Verbindungs- oder Aktivitätsreferenz manuell ein. Falls aktiviert, können KI-generierte Zeilenvorschläge die Referenz auch vervollständigen.

Die Arten von Endpunkten, die in Skripten verwendet werden können, hängen davon ab, ob Funktionen vorhanden sind, die den spezifischen Typ der Verbindungs- oder Aktivitätsreferenz als Argument unterstützen. Die Endpunktreferenzen müssen zusammen mit diesen Funktionen verwendet werden, um im Skript gültig zu sein.

Verbindungen und Aktivitäten, die im Skript verwendet werden können, werden in Kategorien angezeigt, die die Anzahl der einzelnen Elemente in jeder Kategorie auflisten. Aktivitätsnamen werden von eckigen Klammern vorangestellt, die den Typ der Interaktion mit der Datenressource enthalten, die für den Aktivitätstyp spezifisch ist (z. B. Read, Write, Query, Upsert, GET, POST usw.). Um hier angezeigt zu werden, müssen Verbindungen und Aktivitäten bereits im Projekt konfiguriert sein. Wenn beispielsweise eine einzelne konfigurierte HTTP-Verbindung im Projekt mit zwei Aktivitäten vorhanden ist, die diese Verbindung verwenden, werden sie wie folgt gruppiert angezeigt:

endpoints HTTP

Verbindungsreferenzen sind in <TAG>- und </TAG>-Tags enthalten und bestehen aus dem Typ der Projektkomponente (endpoint), gefolgt von einem Doppelpunkt (:), gefolgt vom Typ des Endpunkts, gefolgt vom benutzerdefinierten Verbindungsnamen. Beispiel:

<TAG>endpoint:database/My Example Database</TAG>

Aktivitätsreferenzen sind länger, da die Verbindungsreferenz, der sie zugeordnet sind, auch in den Pfad aufgenommen werden muss. Aktivitätsreferenzen sind in <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 benutzerdefinierten Aktivitätsnamen. 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 Sie Funktionen aus der Registerkarte Funktionen verwenden, die eine Connector-Referenz als Argument akzeptieren. Die unten beschriebenen Funktionen stehen zur Verwendung mit den aufgeführten Verbindungen und Aktivitäten zur Verfügung.

Kategorie
Beschreibung Verwendung von Komponenten als Funktionsparameter
Datenbankendpunkte Diese Kategorie umfasst alle konfigurierten Datenbankverbindungen 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 einen databaseId-Parameter verwenden, einschließlich:
  • CacheLookup
  • CallStoredProcedure
  • DBCloseConnection
  • DBExecute
  • DBLookup
  • DBLookupAll
  • DBRollbackTransaction
  • DBWrite
Datenbankaktivitäten können mit allen Funktionen verwendet werden, die in Datenbankfunktionen aufgeführt sind und ein Datenbank-target-Parameter verwenden, einschließlich:
  • DBLoad
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örigen Aktivitäten (die in einem Skript verwendet werden können).

Hinweis

Obwohl auch eine Kategorie API-Endpunkte 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 einen sourceId- oder targetId-Parameter verwenden, einschließlich dieser:
  • ArchiveFile
  • Base64EncodeFile
  • DBLoad
  • DBWrite
  • DeleteFile
  • DeleteFiles
  • DirList
  • FileList
  • FlushAllFiles
  • FlushFile
  • ReadFile
  • SfLookupAllToFile
  • WriteFile
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 einen salesforceOrg-Parameter verwenden, einschließlich:
  • LoginToSalesforceAndGetTimeStamp
  • SalesforceLogin
  • SetSalesforceSession
  • SfCacheLookup
  • SfLookup
  • SfLookupAll
  • SfLookupAllToFile
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 einen netSuiteOrg-Parameter verwenden, einschließlich:
  • NetSuiteGetSelectValue
  • NetSuiteGetServerTime
  • NetSuiteLogin

Datentypen

Alle Quellobjekte und globalen Variablen, die nicht null sind, haben einen zugeordneten Datentyp. Verschiedene Datentypen lassen sich mithilfe der Funktionen in der Kategorie Konvertierungsfunktionen ändern.

Diese Datentypen werden in Jitterbit Scripts unterstützt:

Typ Beschreibung Klassifizierung
binary Binär Daten
bit Bit Daten
bool Boolesch Logisch
int Ganzzahl Numerisch
decimal Dezimal Numerisch
double Double Numerisch
float Float Numerisch
long Long Numerisch
date Datum Datum & Uhrzeit
timespan Zeitspanne (Datum mit Uhrzeit) Datum & Uhrzeit
string String String
array Array Sammlung
dictionary Dictionary (auch als map bekannt) Sammlung
instance Instanz in einer Datenquelle oder einem Ziel Schema
node Knoten in einem Schema einer Datenquelle oder eines Ziels Schema
type Einer dieser Typen Daten
null Null-Wert Daten
var Variablenverweis, lokal oder global Script

Arrays

Ein Array ist eine Sammlung von Variablen. Jedes Element in der Sammlung kann von jedem unterstützten Typ sein, einschließlich Arrays. Auf die Elemente eines Arrays kann man mit den Methoden Get und Set oder mit der Syntax [] array zugreifen. Arrays sind nullindexiert, und die Indizes sind numerisch, sequenziell und können nicht übersprungen werden.

Man kann auch Arrays von globalen Variablen erstellen. Eine Array-Globalvariable ist ein Array von anderen globalen Variablen, die wiederum Arrays sein können.

Ein Array festlegen

Man kann Werte in einem Array mit der Funktion Set und dieser Syntax festlegen:

type Set(string name, type value [, int index1, int index2, ...])

Dies setzt den Wert der globalen Variablen mit dem angegebenen Namen auf den Wert und gibt den Wert zurück. Wenn das erste Argument ein Array oder der Name einer Array-Globalvariablen ist, kann man den Wert einer Array-Variablen festlegen, indem man seinen Index (oder Indizes für mehrdimensionale Arrays) als drittes Argument angibt.

Nicht alle Elemente in einem Array müssen vom gleichen Typ sein. Man kann beispielsweise ein Array erstellen, das ein Datum, eine Ganzzahl und einen String enthält. Man kann sogar Arrays in anderen Arrays erstellen.

Dieses Beispiel erstellt ein Array mit drei Variablen verschiedener 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 nullindexiert sind, befindet sich das erste Element bei Index 0 und das letzte Element bei Index (Größe-1). Um Daten an ein Array anzufügen, übergibt man 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-out-of-range-Fehler. Das Festlegen von Nicht-Array-Datenelementen kann auch mit der Syntax $de_name erfolgen.

Hier sind Beispiele für das 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

Weitere Syntax, die zum Definieren von Werten in einem Array verwendet werden kann, finden Sie unter Dictionary- und Array-Funktionen.

Auf ein Array zugreifen

Man kann auf die Elemente eines Arrays mit der Methode Get und dieser Syntax zugreifen:

type Get(string name[, int index1, int index2, ...])

Dies gibt den Wert der globalen Variablen mit dem angegebenen Namen zurück. Wenn das erste Argument ein Array oder der Name einer globalen Array-Variablen ist, können Sie eine bestimmte Variable abrufen, indem Sie ihren Index (oder Indizes für ein mehrdimensionales Array wie ein Record-Set) als zweites Argument angeben.

Einige Funktionen haben Array-Rückgabewerte. Beispielsweise gibt SelectNodesFromXMLAny die Ergebnisse einer XPath-Abfrage als Array zurück. Ein weiteres Beispiel: DbExecute gibt ein Record-Set als zweidimensionales Array zurück: zuerst Zeilen, dann Spalten. Dies gibt die ausgewählten Daten als Array von Arrays zurück (die ausgewählten Zeilen und Spalten darstellen):

<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 nullindexiert. Um auf die n-te Variable eines Arrays namens "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 namens ResultSet zuzugreifen, würden Sie Get("ResultSet", m-1, n-1) verwenden. Der Versuch, auf eine Variable jenseits des Array-Endes zuzugreifen, führt zu einem Array-out-of-range-Fehler.

Dies sind Beispiele zum 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 die Ausführung dieses Skripts und die Zuweisung des zurückgegebenen Werts zu einer Variablen.

Array erstellen
<trans>
// Script to build and return an array
a = Array();
a[Length(a)] = "A";
a[Length(a)] = "B";
a[Length(a)] = "C";
a;
</trans>
Skript aufrufen, um Array abzurufen
<trans>
// Call the script to retrieve the array
$Arr = RunScript("<TAG>script:Build Array</TAG>");
</trans>

Tipp

Weitere Syntax, die für den Zugriff auf Werte in einem Array verwendet werden kann, finden Sie unter Dictionary- und Array-Funktionen.

Dictionaries

In Jitterbit Script ist ein Dictionary ein spezieller Typ einer globalen Array-Variablen, die Schlüssel-Wert-Paare enthält. Die Schritte und Funktionen sind:

  1. Initialisieren Sie das Dictionary mit der Funktion Dict:

    $d = Dict();
    
  2. Laden Sie Daten mit einem Schlüssel und einem Wert:

    $d['4011'] = 'Banana';
    $d['4063'] = 'Tomato';
    
  3. Überprüfen Sie mit der Funktion HasKey, ob der Schlüssel bereits im Dictionary vorhanden ist:

    HasKey($d,'4011'); // Returns true
    

    In dem Beispiel haben wir bereits den Schlüssel „4011" geladen, daher würde HasKey true zurückgeben.

    HasKey($d,'4089'); // Returns false
    

    Wenn der Schlüssel nicht bereits geladen wäre, beispielsweise „4089", würde HasKey false zurückgeben.

  4. Schlagen Sie den Wert im Dictionary nach, indem Sie den Schlüssel übergeben und den Wert zurückbekommen:

    $d['4011']; // Returns 'Banana'
    

    In diesem Beispiel wäre der zurückgegebene Wert Banana.

Beachten Sie bei Dictionaries diese Merkmale:

  • Der Geltungsbereich von Dictionaries ist auf den Workflow beschränkt. Wenn beispielsweise eine Operation $MyDict mit 10.000 Datensätzen lädt, haben nur die Operationen, die über „bei Erfolg"- oder „bei Fehler"-Pfade oder mit RunOperation verknüpft sind, Zugriff auf dieses Dictionary. Wenn eine Operation jedoch Chunking und Threading verwendet und eine Transformation hat, die ein Dictionary auffüllt, ist das Dictionary inkonsistent. Dies liegt daran, dass Harmony die Werte, die von mehreren Operationsthreads Variablen zugewiesen werden, nicht zu einem einzelnen Wertesatz zusammenfasst. Dies gilt für alle globalen Variablen oder Arrays. Verwenden Sie die Standard-Chunking-/Threading-Werte beim Erstellen einer Operation, die Dictionaries auffüllt.
  • Dictionaries sind aufgrund ihrer binären Suche schnell beim Auffinden von Schlüsseln und beim Zurückgeben von Werten. Ein Schlüssel kann normalerweise in fünf bis sechs Versuchen gefunden werden. Vergleichen Sie diese Art der Suche dagegen mit dem Durchlaufen eines 10.000-Datensatz-Arrays, um einen Schlüssel zu finden.
  • Dictionaries werden nicht in den Speicher geschrieben, daher beeinflussen sie den verfügbaren Serverspeicher für die Verarbeitung nicht wesentlich.