JavaScript im Integration Studio
Einführung
JavaScript kann nur in Scripts verwendet werden, die als Projektkomponente erstellt wurden (nicht in Scripts, die innerhalb einer Transformation verwendet werden). Auf dieser Seite finden Sie Informationen zur JavaScript-Unterstützung in Harmony sowie einige Beispiele für den Einstieg. Siehe auch verwandte Seiten zum Erstellen eines Script, mithilfe des Script Editors und Testen eines Script.
Wichtig
Für eine verbesserte Leistung empfehlen wir, JavaScript nur zu verwenden, wenn ein Jitterbit Script Äquivalent ist nicht verfügbar.
JavaScript-Unterstützung in Harmony
Die JavaScript-Engine von Harmony unterstützt den Standard ECMA-262 v5.1, wie bei ECMA International angegeben. Diese Version von JavaScript bietet native Unterstützung für JSON sowie die Definition und Verwendung von Funktionen in Scripts. Das JavaScript von Jitterbit entspricht der standardmäßigen Objektmanipulation und dem standardmäßigen Verhalten von JavaScript-JavaScript.
Warnung
Obwohl Jitterbit JavaScript auf Basis des Standards unterstützt, sind nicht alle JavaScript-Funktionen verfügbar. Jitterbit unterstützt diese JavaScript-Funktionen nicht:
- Document Object Model (DOM)-Web-APIs
- Integrierte Funktionen und Objekte von Mozilla
- Bestimmte JavaScript-Typen wie
Set
UndMap
- Zugriff auf Java-Objekte
Einfache Datentypen, Arrays und JSON-Objekte werden vollständig unterstützt. Jitterbit-Maps werden auch in JavaScript unterstützt. JavaScript behandelt Jitterbit-Maps als JSON-Objekte und Jitterbit-Scripts behandeln JSON-Objekte als Jitterbit-Maps. Auf JSON-Eigenschaften wird über Map-Schlüssel zugegriffen.
Nehmen wir beispielsweise dieses in JavaScript definierte JSON-Objekt:
var $myObj = {
"name":"John",
"age":30,
"cars": {
"car1":"Ford",
"car2":"BMW",
"car3":"Fiat"
}
};
In einem Jitterbit Script würde das Objekt über eine Karte aufgerufen. Der Zugriff erfolgt über "car3"
Eigenschaft wie diese:
$mycar = $myObj["cars"]["Auto3"];
Nachdem Sie ein neues JavaScript erstellt haben in Integration Studio können Sie das Script direkt im Script eingeben. In JavaScripts, die in Integration Studio, Scripts müssen in einem <javascript>
öffnender Tag und </javascript>
schließendes Tag.
Schleifeniterationen
Die maximale Anzahl an Schleifeniterationen, die in Harmony zulässig ist, beträgt 50.000. Die maximale Anzahl an Schleifeniterationen in JavaScript gilt pro Script, nicht pro Schleife.
Wenn beispielsweise ein JavaScript-Script drei Schleifen enthält und jede Schleife 25.000 Iterationen ausführt, würden in einem Script insgesamt 75.000 Iterationen ausgeführt.
Um die maximale Anzahl der Iterationen zu erhöhen, die in einem JavaScript-Script zulässig sind, fügen Sie manuell hinzu JavaScriptMaxIterations=X
Wo X
ist größer als 50000
.
Weitere Informationen zum Erhöhen der maximal zulässigen Schleifenanzahl finden Sie unter [Settings]
unter Konfigurationsdatei (jitterbit.conf) bearbeiten.
Ein Beispiel für eine Schleife finden Sie unter JavaScript-Schleife weiter unten auf dieser Seite unter Beispiele.
Komponentenpalette
Die Skriptkomponentenpalette bietet Zugriff auf verschiedene Komponenten, die in einem Script verwendet werden können. Sie können Komponenten in einem Script verwenden, indem Sie sie aus der Komponentenpalette ziehen oder darauf doppelklicken, die Autovervollständigungsfunktion verwenden oder die richtige Syntax manuell eingeben oder einfügen.
Notiz
Wenn ein Script andere Projektkomponenten aufruft, die noch nicht bereitgestellt wurden, müssen diese Komponenten bereitgestellt werden, bevor Sie das Script erfolgreich ausführen können.
Sie können auf der rechten Seite des Projekt-Designers und des Script Editors auf die Skriptkomponentenpalette zugreifen:
Einige der in der Skriptkomponentenpalette angezeigten Registerkarten zeigen Komponenten, die nicht in einem in JavaScript geschriebenen Script verwendet werden können. Insbesondere wird das Verweisen auf Plugins, Vorgänge, Benachrichtigungen und andere Scripts in einem in JavaScript geschriebenen Script nicht unterstützt. Die Registerkarten, die Funktionen oder Komponenten enthalten, die in einem in JavaScript geschriebenen Script verwendet werden können, werden unten beschrieben.
Funktionen
Der Die Tab Funktionen bietet eine Liste der in einem Script verfügbaren Funktionen.
Innerhalb eines Script können Sie Funktionen verwenden, indem Sie die Funktionssyntax einfügen.
So fügen Sie die Funktionssyntax zu einem Script hinzu (Jitterbit Script oder JavaScript), verwenden Sie eine der folgenden Methoden:
- Ziehen Sie die Funktion aus der Palette in das Script, um die Funktionssyntax einzufügen.
- Doppelklicken Sie auf die Funktion in der Palette, um die Funktionssyntax an der Cursorposition im Script einzufügen. Beim Einfügen der Funktionssyntax wird das erste Funktionsargument hervorgehoben und der Cursor an das Ende des Arguments verschoben.
- Beginnen Sie mit der Eingabe des Funktionsnamens und drücken Sie dann
Control+Space
, 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.
Die in JavaScript verfügbaren Funktionen sind in vier Kategorien unterteilt: Jitterbit, Schlüsselwörter, Allgemeine Funktionen und Mathematik. Ausführliche Informationen zu den einzelnen in JavaScript in Harmony verfügbaren Funktionen finden Sie auf diesen Seiten:
Variablen
Der Die Tab Variablen bietet Zugriff auf Variablen, die im gesamten Projekt global referenziert werden können, einschließlich globaler Variablen, Projektvariablen und Jitterbit-Variablen.
Innerhalb eines Script können Sie Variablen verwenden, indem Sie die Variablensyntax einfügen (siehe die Dokumentation für jeden Variablentyp unter Variablen).
So fügen Sie die Variablensyntax zu einem Script hinzu (Jitterbit Script oder JavaScript), verwenden Sie eine der folgenden Methoden:
- Ziehen Sie die Variable aus der Palette in das Script, um die Variablensyntax einzufügen.
- Doppelklicken Sie auf die Variable in der Palette, um die Variablensyntax an der Cursorposition im Script einzufügen.
- Beginnen Sie mit der Eingabe des Variablennamens und drücken Sie dann
Control+Space
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.
Lokale Variablen werden nicht aufgeführt, da sie nicht global verfügbar sind. Sie können sie jedoch weiterhin lokal in einem Script verwenden.
Globale Variablen
Alle globalen Jitterbit-Variablen können über JavaScript aufgerufen und aktualisiert werden. Alle neu definierten globalen JavaScript-Variablen werden zu globalen Jitterbit-Variablen.
Die zum Festlegen und Abrufen einer globalen Variable verwendete Syntax hängt davon ab, ob der Name der globalen Variable einen Punkt enthält.
Warnung
Die Jitterbit.SetVar
Und Jitterbit.GetVar
Funktionen sind so konzipiert, dass sie die Verwendung von Variablen ermöglichen, die Punkte im Variablennamen enthalten. Die Verwendung von Punkten in einem Variablennamen wird jedoch nicht empfohlen. Da der Wert beim Festlegen der Variablen in eine Zeichenfolge konvertiert wird, können diese Funktionen nicht mit komplexen Datentypen wie Arrays, Wörterbüchern oder JSON-Objekten verwendet werden. Stattdessen wird empfohlen, globale Variablen ohne Punkte zu erstellen und stattdessen Unterstriche anstelle von Punkten und das Standard-Dollarzeichen zu verwenden $
Syntax wie unten beschrieben.
Tipp
Weitere Informationen zum Jitterbit.GetVar
Und Jitterbit.SetVar
Funktionen finden Sie im nächsten Abschnitt unter Funktionen.
Festlegen einer globalen Variable
-
Namen ohne Punkte (empfohlen): Eine globale Variable, die keine Punkte im Namen enthält, kann zunächst mit dem Befehl erstellt oder aktualisiert werden
var $
oder mit einem Dollarzeichen aktualisiert$
ohnevar
.var $
: Verwendenvar
und beginnend mit einem Dollarzeichen$
, das Codebeispielvar $serverURL="https://www.example.com"
erstellt oder aktualisiert eine globale Variable namensserverURL
mit einem Wert vonhttps://www.example.com
Neue globale Variablen, die initialisiert werden, müssen vor dem$
mitvar
.$
: Mit einem Dollarzeichen als Präfix$
, das Codebeispiel$serverURL="https://www.example.com"
aktualisiert die gleiche globale Variable namensserverURL
mit derselben URL. Dies funktioniert nur für globale Variablen, die bereits initialisiert sind.
-
Namen mit Punkten (nicht empfohlen): Eine globale Variable, die Punkte im Namen enthält, kann nur mit dem
Jitterbit.SetVar
Funktion.Jitterbit.SetVar
: VerwendenJitterbit.SetVar
, das CodebeispielJitterbit.SetVar("$server.URL", "https://www.example.com")
erstellt oder aktualisiert eine globale Variable namensserver.URL
mit einem Wert vonhttps://www.example.com
das als Zeichenfolge behandelt wird. Beachten Sie, dass das Dollarzeichen$
muss im Variablennamen enthalten sein, sonst ist die Variable für das Harmony-System nicht global.
Abrufen einer globalen Variable
-
Namen ohne Punkte: Der Wert einer globalen Variable, die keine Punkte im Namen enthält, kann durch Voranstellen eines Dollarzeichens abgerufen werden
$
.$
: Mit einem Dollarzeichen als Präfix$
, das Codebeispiel$serverURL
ruft den Wert der globalen Variable abserverURL
.
-
Namen mit Punkten: Der Wert einer globalen Variable, die Punkte im Namen enthält, kann nur mit dem
Jitterbit.GetVar
Funktion.Jitterbit.GetVar
: VerwendenJitterbit.GetVar
, das CodebeispielJitterbit.GetVar("$server.URL")
gibt den Stringwert der globalen Variable zurückserver.URL
Beachten Sie, dass das Dollarzeichen$
muss im Variablennamen enthalten sein, um den globalen Wert aus dem Harmony-System zu lesen.
Projektvariablen
Projektvariablen werden zunächst als Projektkomponente innerhalb von Integration Studio. Sobald eine Projektvariable erstellt wurde, können Sie Werte für sie festlegen über Integration Studio, die Management Console oder Citizen Integrator. Weitere Informationen zum Erstellen und Aktualisieren von Projektvariablen finden Sie unter Projektvariablen.
In Jitterbit JavaScript hängt die zum Abrufen des Werts einer Projektvariable verwendete Syntax davon ab, ob der Name der Projektvariable einen Punkt enthält.
-
Namen ohne Punkte: Der Wert einer Projektvariable, die keinen Punkt im Namen enthält, kann abgerufen werden, indem sie mit einem Dollarzeichen beginnt
$
.$
: Mit einem Dollarzeichen als Präfix$
, das Codebeispiel$org_netsuite_auth_username
ruft den Wert der Projektvariable ab, genanntorg_netsuite_auth_username
.
-
Namen mit Punkten: Der Wert einer Projektvariable, die Punkte im Namen enthält, kann nur mit dem
Jitterbit.GetVar
Funktion.Jitterbit.GetVar
: VerwendenJitterbit.GetVar
, das CodebeispielJitterbit.GetVar("$server.URL")
gibt den Wert der Projektvariable zurück, genanntserver.URL
Beachten Sie, dass das Dollarzeichen$
muss im Variablennamen enthalten sein.
Jitterbit-Variablen
Das Harmony-System definiert bestimmte globale Variablen, die in einem Projekt immer verfügbar sind und als Jitterbit-Variablen (oder vordefinierte globale Variablen) bezeichnet werden. Diese können verwendet werden, um globale Informationen wie den Namen der aktuellen Quelldatei oder den Namen der aktuellen Operation abzurufen. Weitere Informationen finden Sie unter Jitterbit-Variablen.
In Jitterbit JavaScript sind von Harmony vordefinierte Jitterbit-Variablen nur mit dem Jitterbit.GetVar
Funktion. Dies liegt daran, dass alle von Jitterbit vordefinierten Jitterbit-Variablen Punkte im Variablennamen enthalten.
Jitterbit.GetVar
: VerwendenJitterbit.GetVar
, das CodebeispielJitterbit.GetVar("$jitterbit.operation.error")
ruft den Wert der Jitterbit-Variable abjitterbit.operation.error
Beachten Sie, dass das Dollarzeichen$
muss im Variablennamen enthalten sein.
Endpoints
Der Die Tab Endpoints bietet eine Liste der Endpoints im Projekt, auf die in einem Script verwiesen werden kann.
Innerhalb eines Script können Sie Endpoints als Argument für Funktionen referenzieren, indem Sie den Verbindungs- oder Aktivitätsreferenzpfad einfügen.
So fügen Sie einem Script einen Verbindungs- oder Aktivitätsreferenzpfad hinzu (Jitterbit Script oder JavaScript), verwenden Sie eine der folgenden Methoden:
- Ziehen Sie die Verbindung oder Aktivität aus der Palette in das Script, 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 Script einzufügen.
- Beginnen Sie mit der Eingabe des Verbindungs- oder Aktivitätsnamens und drücken Sie dann
Control+Space
, 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.
Die Typen von Endpoints, die in Scripts verwendet werden können, hängen davon ab, ob es Funktionen gibt, die die Verwendung des spezifischen Verbindungstyps oder der Aktivitätsreferenz als Argument unterstützen. Die Endpoint müssen in Verbindung mit diesen Funktionen verwendet werden, um im Script gültig zu sein.
Verbindungen und Aktivitäten, die im Script verwendet werden können, werden in Kategorien angezeigt, in denen die Anzahl der in jeder Kategorie verfügbaren Elemente aufgeführt ist. Den Aktivitätsnamen sind eckige Klammern vorangestellt, die den für den Aktivitätstyp spezifischen Interaktionstyp mit der Datenressource enthalten (z. B. Lesen, Schreiben, Abfragen, Upsert, GET, POST usw.). Damit sie hier angezeigt werden, müssen Verbindungen und Aktivitäten bereits im Projekt konfiguriert sein. Wenn beispielsweise im Projekt eine einzelne konfigurierte HTTP-Verbindung vorhanden ist und zwei Aktivitäten mit dieser Verbindung konfiguriert sind, werden sie wie folgt gruppiert angezeigt:
Verbindungsreferenzen sind enthalten in <TAG>
Und </TAG>
Tags und bestehen aus dem Typ der Projektkomponente (connection
), gefolgt von einem Doppelpunkt (:
), gefolgt vom Verbindungstyp und dem vom Benutzer angegebenen Verbindungsnamen.
Aktivitätsreferenzen sind länger, da die Verbindungsreferenz, mit der sie verknüpft sind, ebenfalls im Pfad enthalten sein muss. Aktivitätsreferenzen sind enthalten in <TAG>
Und </TAG>
Tags und bestehen aus dem Typ der Projektkomponente (activity
), gefolgt von einem Doppelpunkt (:
), gefolgt vom Verbindungstyp, gefolgt vom Aktivitätstyp, gefolgt vom vom Benutzer angegebenen Aktivitätsnamen.
Abhängig vom spezifischen Verbindungs- oder Aktivitätstyp, wie unten aufgeführt, können Sie Funktionen aus der Tab Funktionen verwenden, die einen Connector-Verweis 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 |
---|---|---|
Endpoints | Diese Kategorie umfasst alle konfigurierten Datenbanken Verbindungen (die in einem Script verwendet werden können) und zugehörige Aktivitäten (die nicht in einem in JavaScript geschriebenen Script verwendet werden können). | Datenbankverbindungen können mit allen in JavaScript Jitterbit und allgemeine Funktionen aufgeführten Funktionen verwendet werden, die eine
|
Dateifreigabe-Endpoints ** FTP Endpoints HTTP- Endpoints Lokale Endpoints Temporäre Endpoints** | Diese Kategorien umfassen alle konfigurierten Dateifreigaben, FTP, HTTP, Lokaler Speicher und Temporärer Speicher Verbindungen (die nicht in einem Script verwendet werden können) und zugehörige Aktivitäten (die in einem Script verwendet werden können) Hinweis Obwohl auch eine Kategorie API Endpoints enthalten ist, API Verbindungen und Aktivitäten können nicht in einem Script verwendet werden. | Die enthaltenen Aktivitäten (außer API Aktivitäten) können mit allen in JavaScript Jitterbit und allgemeine Funktionen aufgeführten Funktionen verwendet werden, die eine
|
Salesforce Endpoints | Diese Kategorie umfasst alle konfigurierten Salesforce-Verbindungen. Salesforce Verbindungen können nicht in einem in JavaScript geschriebenen Script verwendet werden. | Nicht zutreffend. |
NetSuite Endpoints | Diese Kategorie umfasst alle konfigurierten NetSuite Verbindungen. NetSuite-Verbindungen können nicht in einem in JavaScript geschriebenen Script verwendet werden. | Nicht zutreffend. |
Beispiele
Diese JavaScript-Beispiele dienen als Referenz.
JavaScript-Dateifunktionen
<javascript>
// This script:
// * Generates some random numbers
// * Writes them to a target file
// * Then reads them back in
// * Writes output to the Operation Log
// ************************************************
// Get 200 random numbers between 1 and 10000
var mystring = getRandomNumbers(200,1,10000);
// Write the data to a file
Jitterbit.WriteFile("<TAG>activity:tempstorage/Temporary Storage Endpoint/tempstorage_write/tmpdata</TAG>", mystring);
// Read the data back in from the file
var filedata = Jitterbit.ReadFile("<TAG>activity:tempstorage/Temporary Storage Endpoint/tempstorage_read/tmpdata</TAG>");
// Output to the Operation Log
WriteToOperationLog("Read file, output: " + filedata);
// Displays the data in the result of the Studio test script tab
SetScriptResult(filedata);
/////////////////
function getRandomNumbers(howMany,min,max) {
var output = "";
for (var i=0; i<howMany; i++) {
output = output + getRandomNumber(min,max) + " \n";
}
return output;
}
function getRandomNumber(min,max) {
return Math.floor((Math.random() * max) + min);
}
/////////////////
</javascript>
Mathematische Funktionen in JavaScript
<javascript>
// Create 200 random numbers
var $output = getRandomNumbers(200);
WriteToOperationLog($output);
SetScriptResult($output);
/////////////////
function getRandomNumbers(howMany) {
var output = "";
for (var i=0; i<howMany; i++) {
output = output + Math.floor((Math.random() * 10000) + 1) + " \n";
}
return output;
}
/////////////////
</javascript>
JavaScript-Schleife
<javascript>
// Create 100 random numbers
var $output = "";
for (var i=0; i<100; i++) {
$output = $output + Math.floor((Math.random() * 10000) + 1) + " \n";
}
SetScriptResult($output);
</javascript>
JavaScript JSON Beispiel 1
<javascript>
WriteToOperationLog("\n\n Parsing JSON...");
var jsonData = Jitterbit.ReadFile("<TAG>activity:tempstorage/Temporary Storage Endpoint/tempstorage_read/JSON Data</TAG>");
var $jsonObj = JSON.parse(jsonData);
WriteToOperationLog("Value of 'status' is: " + $jsonObj.status);
WriteToOperationLog("Value of 'operation' is: " + $jsonObj.operation);
WriteToOperationLog("Value of 'serverUrl' is: " + $jsonObj.serverUrl);
var $firstOrg = $jsonObj.orgAttrs[0];
WriteToOperationLog("First Org ID is: " + $firstOrg.orgId);
WriteToOperationLog("First Org Name is: " + $firstOrg.orgName);
</javascript>
JavaScript JSON Beispiel 2
<javascript>
WriteToOperationLog("\n\n Parsing JSON...");
var jsonData = Jitterbit.ReadFile("<TAG>activity:tempstorage/Temporary Storage Endpoint/tempstorage_read/JSON Data</TAG>");
var $jsonObj = JSON.parse(jsonData);
WriteToOperationLog("Status: " + $jsonObj.status);
WriteToOperationLog("Operation: " + $jsonObj.operation);
var orgs = "";
var needComma = false;
for (var i=0; i<$jsonObj.orgAttrs.length; i++) {
if (needComma) orgs = orgs + ",";
orgs = orgs + $jsonObj.orgAttrs[i].orgId;
needComma = true;
}
WriteToOperationLog("Org IDs: " + orgs);
// You can modify existing JSON values
// Any changes are reflected in the Jitterbit system as a map variable
// Here we'll insert a random number as an authentication token
var randomNumber = Math.floor((Math.random() * 10000) + 1);
$jsonObj.authenticationToken = randomNumber;
</javascript>
JavaScript JSON Beispiel 3
<javascript>
// This script uses JSON stringify
// to create a property value structure
// and then pushes it to an API
var $complexAPI = {
"properties": [
{
"property": "email",
"value": $email
},
{
"property": "firstname",
"value": $firstname
},
{
"property": "lastname",
"value": $lastname
},
{
"property": "website",
"value": $website
},
{
"property": "phone",
"value": $phone
}
]
}
var $outputJSON = JSON.stringify($complexAPI);
Jitterbit.WriteFile("<TAG>activity:http/HTTP Endpoint/http_post/Example HTTP POST</TAG>", $outputJSON);
WriteToOperationLog($outputJSON);
SetScriptResult($outputJSON);
</javascript>