Zum Inhalt springen

Allgemeine Funktionen in Jitterbit Design Studio

Allgemeine Funktionen sind solche, die nicht spezifisch für eine bestimmte Aktivität sind, aber in fast jedem Skript Anwendung finden.

ArgumentList

Deklaration

null ArgumentList(type var1[,... ])

Syntax

ArgumentList(<var1>[,... ])

Erforderliche Parameter

  • var1: Eine lokale Variable, die aus der Argumentliste der aufrufenden Instanz initialisiert wird

Optionale Parameter

  • var2,... varN: Zusätzliche Variablen, die aus der Argumentliste der aufrufenden Instanz initialisiert werden

Beschreibung

Diese Funktion initialisiert einen Satz lokaler Variablen aus ihrer Argumentliste.

Die Konstruktion der lokalen Variablen hängt davon ab, welcher dieser Fälle zutrifft:

  • Fall 1: Transformations-Mappings Wenn der Funktionsaufruf im Mapping eines Zielfelds erfolgt. (Ein Aufruf der Funktion setinstances muss zuvor erfolgt sein.) Die lokalen Variablen werden aus den entsprechenden globalen Variablen in der Instanz konstruiert, die durch die Funktion SetInstances() angegeben wird.
  • Fall 2: Ausführung eines Skripts Wenn der Funktionsaufruf in einem Skript erfolgt. Die lokalen Variablen werden aus den entsprechenden Argumenten in der Liste konstruiert, die durch die aufrufende runscript-Anweisung bereitgestellt wird. Auf diese Variablen kann auch über den Index zugegriffen werden, z. B. _1, _2...

Diese Funktion gibt einen Nullwert zurück und kann ignoriert werden. Alternativ siehe die Funktion getinstance.

Beispiele

Fall 1: Transformations-Mappings
// Assuming a parent mapping contains these statements:
...
s = "SELECT key_name, key_value, key_type FROM key_values";
r = DBLookupAll("<TAG>Sources/DB...</TAG>", s);
SetInstances("DETAILS", r);
...

// In the DETAILS target node, a field could have as a mapping:
<trans>
ArgumentList(key, value, type);
key + " = " + value + " (of type " + type + ")";
</trans>
Fall 2: Ausführung eines Skripts
// This code fragment calls a script "CalculateDisplayString":
...
RunScript("<TAG>Scripts/CalculateDisplayString</TAG>", "John", 35);
// The result will be the string "John is 35 years old."
...

// The script "CalculateDisplayString", using names:
<trans>
ArgumentList(name, age);
name + " is " + age + " years old.";
</trans>

// Same script "CalculateDisplayString", using indices:
<trans>
// ArgumentList: name, age
_1 + " is " + _2 + " years old.";
</trans>

AutoNumber

Deklaration

int AutoNumber()

Syntax

AutoNumber()

Beschreibung

Gibt die Nummer einer Instanz innerhalb einer bestimmten Hierarchie zurück.

Warnung

Diese Methode ist veraltet und kann in einer zukünftigen Version von Jitterbit entfernt werden. Verwenden Sie stattdessen entweder die Funktionen TargetInstanceCount oder SourceInstanceCount. Die Funktion TargetInstanceCount entspricht dieser Funktion.

Beispiele

Angenommen, eine Zielarchitektur hat zwei Datensätze auf oberster Ebene: PO1 und PO2:

  • PO1 ist übergeordnet zu drei untergeordneten Datensätzen: PO1_record1, PO1_record2 und PO1_record3.
  • PO2 ist übergeordnet zu zwei untergeordneten Datensätzen: PO2_record1 und PO2_record2.

Wenn die Funktion AutoNumber aufgerufen wird:

  • AutoNumber auf der übergeordneten Ebene aufgerufen gibt 1 bei PO1 und 2 bei PO2 zurück.
  • AutoNumber auf der untergeordneten Ebene von PO1 gibt 1 bei PO1_record1, 2 bei PO1_record2 und 3 bei PO1_record3 zurück, da PO1 3 untergeordnete Datensätze hat.

CancelOperation

Deklaration

void CancelOperation(string operationInstanceGUID)

Syntax

CancelOperation(<operationInstanceGUID>)

Erforderliche Parameter

  • operationInstanceGUID: Die GUID der Operationsinstanz, die abgebrochen werden soll

Beschreibung

Bricht eine bestimmte Operationsinstanz ab, die durch eine Operationsinstanz-GUID angegeben wird.

Wie im folgenden Beispiel gezeigt, rufen Sie die Funktion GetOperationQueue auf, um Instanzen ausgeführter Operationen abzurufen. Die Operationsinstanz-GUID befindet sich bei Index 4 der von der Funktion GetOperationQueue zurückgegebenen Untererrays. Details finden Sie in der Funktion GetOperationQueue.

Beispiele

// Cancel all instances of a particular operation
queue = GetOperationQueue("<TAG>Operations/My Operation</TAG>");
n = Length(queue);
i = 0;
While(i < n, op_inst = queue[i][4];
  WriteToOperationLog("Canceling operation instance: " + op_inst);
  CancelOperation(op_inst);
  i++;
);

CancelOperationChain

Deklaration

void CancelOperationChain(string message)

Syntax

CancelOperationChain(<message>)

Erforderliche Parameter

  • message: Bei einer nicht leeren Zeichenkette wird diese als Warnmeldung im Operationsprotokoll protokolliert.

Beschreibung

Wenn die aktuelle Operation Erfolgs- oder Fehleroperationen besitzt, führt der Aufruf dieser Methode dazu, dass diese Operationen abgebrochen werden. Alle durch eine Bedingung verknüpften Operationen werden ebenfalls abgebrochen. Die Skripte in der aktuellen Operation werden jedoch abgeschlossen.

Dies kann hilfreich sein, wenn eine Operation in einer Schleife ausgeführt wird und die Bedingung zum Beenden der Schleife erfüllt wurde.

Beispiele

CancelOperationChain("The success operation does not need to run.");

Eval

Deklaration

string Eval(type expToEvaluate, type defaultResult)

Syntax

Eval(<expToEvaluate>, <defaultResult>)

Erforderliche Parameter

  • expToEvaluate: Ein auszuwertender Ausdruck; wenn gültig, wird sein Ergebnis zurückgegeben
  • defaultResult: Standardergebnis, das ausgewertet und zurückgegeben wird, wenn expToEvaluate ungültig ist

Beschreibung

Wertet das erste Argument aus; falls gültig, wird sein Ergebnis als Zeichenkette zurückgegeben. Andernfalls wird der Standardwert ausgewertet und seine Ergebnisse als Zeichenkette zurückgegeben.

Dies kann als „Try-Catch"-Anweisung verwendet werden, da das zweite Argument nur ausgewertet wird, wenn das erste fehlschlägt.

Hinweis

Es wird nicht empfohlen, diese Funktion mit RunOperation zu verwenden, da diese nach Ausführung der Operation immer ein gültiges Ergebnis zurückgibt, es sei denn, der Operationsaufruf selbst ist fehlerhaft oder ungültig. Um fehlgeschlagene Operationen zu erfassen, können Funktionen wie If und GetLastError verwendet werden, um ähnliche Funktionalität zu erreichen. Weitere Informationen finden Sie im Abschnitt Scripting unter Best Practices für Design Studio.

Beispiele

// Returns a value of "100"
// the string representation of 4 multiplied by 25:
entry = Eval(4*25,"Bad Entry");

// Returns "Bad Entry", as strings cannot be multiplied:
book = "";
entry = Eval(book*36.4, "Bad Entry");

// Execute a SQL statement and terminate an operation if it fails:
results = Eval(
  DBLookup("<TAG>Project Name/Sources/Source Name</TAG>", "SELECT col FROM table"),
  RaiseError("Failed to execute SQL statement: " + GetLastError())
);

Get

Deklaration

type Get(string name)

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

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

Syntax

Get(<name>[, <index1>, <index2>,... <indexN>])

Erforderliche Parameter

  • name: Der Name einer globalen Variablen, entweder ein Skalar oder ein Array, oder ein Array

Optionale Parameter

  • index1,... indexN: Indizes, die das gewünschte Element im Array oder ein Teil-Array angeben

Beschreibung

Gibt den Wert einer globalen Variablen mit einem bestimmten Namen zurück. Bei Übergabe eines Arrays oder des Namens einer globalen Variablen, die ein Array ist, wird ein Element des Arrays zurückgegeben. Siehe auch die ergänzende Set-Funktion.

Wenn das erste Argument entweder ein Array ist oder der Name einer globalen Variablen, die ein Array ist, ruft die Funktion ein bestimmtes Element nach seinem Index (oder Indizes für ein mehrdimensionales Array, z. B. einen Datensatz) mit den verbleibenden Argumenten ab.

Arrays sind nullindexiert; das erste Element befindet sich bei Index 0 und das letzte Element (des Arrays $array) bei Index [Length($array)-1].

Der Versuch, auf ein Element am Ende des Arrays zuzugreifen, führt zu einem Rückgabewert von null.

Beispiele

// Returns the value of the global variable "Count"
Get("Count");

// Returns the third element of an array (0-based)
Get($arr, 2);

// For arrays, this is the same as previous,
// as "arr" is equivalent to $arr in the case of arrays
Get("arr", 2);

// Returns the n-th element of the m-th array in $arr
Get($arr, m-1, n-1);

GetChunkDataElement

Deklaration

type GetChunkDataElement(string name)

Syntax

GetChunkDataElement(<name>)

Erforderliche Parameter

  • name: Der Name der Chunk-Variable

Beschreibung

Gibt den Wert der Chunk-Variable mit einem bestimmten Namen zurück. Eine Chunk-Variable wird bei der Verarbeitung jedes Daten-Chunks ausgewertet. Eine alternative Methode ist die Verwendung der SCOPE_CHUNK-Syntax der Set-Funktion. Siehe auch die Funktionen SetChunkDataElement und Set.

Beispiele

// If used in a transformation mapping, this sets
// the value of the chunk variable "CustomerFileName" to
// the results of a calculation using the value of the "Customer" field
// at the time of the chunking to create a filename for that chunk:

SetChunkDataElement("CustomerFilename", "customer_" + CustomerID + ".csv");

// This global variable would be available as a variable in the
// filenames field of the connection parameters of a target as:

[CustomerFilename]

// It would also be available in scripts in the same chunk as:

GetChunkDataElement("CustomerFilename");

// With each chunk created, a unique filename for that customer ID
// will be created, such as (depending on the values of CustomerID):
customer_1009.csv
customer_2019.csv
customer_5498.csv


// Returns the value of a chunk variable
result = GetChunkDataElement("Count");

GetHostByIP

Deklaration

string GetHostByIP(string ipAddress)

Syntax

GetHostByIP(<ipAddress>)

Erforderliche Parameter

  • ipAddress: Ein String mit einer IP-Adresse

Beschreibung

Löst eine IP-Adresse zu einem Host-Namen auf.

Beispiele

GetHostByIP("127.0.0.1");

GetInputString

Deklaration

string GetInputString(type arg)

Syntax

GetInputString(<arg>)

Erforderliche Parameter

  • arg: Eine globale Variable

Beschreibung

Gibt die unformatierte Eingabe als String für eine Quellglobalvariable zurück.

Dies ist nützlich, wenn die standardmäßige Jitterbit-Darstellung eines Datentyps (z. B. ein Datum oder Double) nicht geeignet ist und die "rohe" Eingabe erforderlich ist. Wenn diese Methode bei einem Objekt aufgerufen wird, das keine Quellglobalvariable ist, wird ein leerer String zurückgegeben.

Beispiele

// The input is too large for a Jitterbit double
// return the raw input instead
$SessionId = GetInputString(root$transaction$body$GetMachineList$req$SessionID$)

GetLastOperationRunStartTime

Deklaration

date GetLastOperationRunStartTime(string operationId)

Syntax

GetLastOperationRunStartTime(<operationId>)

Erforderliche Parameter

  • operationId: Eine Operation im aktuellen Projekt

Beschreibung

Gibt das letzte Datum und die letzte Uhrzeit zurück, zu der die angegebene Operation ausgeführt wurde. Der Rückgabewert ist ein Datum (einschließlich Datum und Uhrzeit). Nur mit einem einzelnen Agent zu verwenden.

Die in diesem Funktionsaufruf verwendete Operation muss als Operation im aktuellen Projekt definiert sein. Siehe die Anleitung zum Einfügen von Projektelementen.

Das zurückgegebene Datum liegt in UTC (ohne spezifische Zeitzone). Verwenden Sie die ConvertTimeZone-Funktion, um in eine lokale Zeit umzuwandeln, wie im folgenden Beispiel dargestellt.

Warnung

Diese Funktion ist nur mit einem einzelnen privaten Agent zu verwenden, da sie bei Cloud-Agents oder mehreren privaten Agents nicht genau ist.

Beispiele

$lastOpRun = GetLastOperationRunStartTime("<TAG>Operations/MyOperation</TAG>");
// Converting to a local time zone
$lorInMyTimeZone = ConvertTimeZone($lastOpRun,"UTC","CST");

GetName

Deklaration

string GetName(type arg)

Syntax

GetName(<arg>)

Erforderliche Parameter

  • arg: Eine Variable oder globale Variable

Beschreibung

Gibt den Namen einer Variable oder einer globalen Variable zurück.

Bestimmte Funktionen geben ein benanntes globales Variablen-Array zurück. Falls definiert, ruft diese Funktion den Namen des Werts ab.

Beispiele

x = {a="var1", b="var2"};
GetName(x[0]);
// Returns the string "a"
GetName(x)[0];
// Also returns the string "a"
// The source is a simple text and [] represents the source element
values = GetSourceInstanceArray([]);
// Returns the first field name of the source element
GetName(values[0]);

GetOperationQueue

Deklaration

array GetOperationQueue([string operationTag])

Syntax

GetOperationQueue([<operationTag>])

Optionale Parameter

  • operationTag: Ein Vorgang im aktuellen Projekt; sonst werden alle Vorgänge im aktuellen Projekt verwendet

Beschreibung

Gibt den Inhalt der Vorgangswarteschlange als Array zurück. Es werden nur Vorgänge zurückgegeben, auf die der aktuelle Benutzer Lesezugriff hat. Nur mit einem einzelnen Agent zu verwenden.

Das Ergebnis wird als Array von Arrays mit diesen Elementen in jedem Sub-Array zurückgegeben:

  • 0: Vorgangs-GUID (String)
  • 1: Das Flag IsExecuting (boolescher Wert)
  • 2: Zeitstempel (Datum) für den Zeitpunkt, zu dem der Vorgang zur Warteschlange hinzugefügt wurde
  • 3: Sekunden im aktuellen Status (Integer)
  • 4: Vorgangsinstanz-GUID (String)
  • 5: Vorgangsname (String)

Das Argument für das Vorgang-Tag ist optional. Wenn das Argument für das Vorgang-Tag vorhanden ist, werden nur Warteschlangen-Einträge für diesen bestimmten Vorgang zurückgegeben. Siehe die Anweisungen zum Einfügen von Projektelementen.

Warnung

Diese Funktion darf nur mit einem einzelnen privaten Agent verwendet werden, da sie bei Verwendung von Cloud-Agents oder mehreren privaten Agents nicht genau ist.

Beispiele

// Write the queue for a particular operation to the operation log:
queue = GetOperationQueue("<TAG>Operations/MyOperation</TAG>");
n = Length(queue);
i = 0;
// Loop over the queue entries
While(i < n,
  WriteToOperationLog("Queue Entry: GUID=" +
    queue[i][0] + "; IsExecuting=" + queue[i][1] +
    "; Added at: " + queue[i][2] );
  i++;
);

GetServerName

Deklaration

string GetServerName()

Syntax

GetServerName()

Beschreibung

Gibt den Namen des Computers zurück, auf dem der Agent ausgeführt wird.

Beispiele

GetServerName();
// Gibt den Servernamen zurück

GUID

Deklaration

string GUID()

Syntax

GUID()

Beschreibung

Gibt eine GUID-Zeichenkette zurück (eine weltweit eindeutige Kennung, auch bekannt als Universally Unique Identifier oder UUID).

Das Format der GUID ist xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, wobei M die Version (4) und N die Variante (8) ist.

Beispiele

GUID();
// Gibt eine Zeichenkette wie "c056f89d-1f45-458e-8b25-9ecf2ed10842" zurück

IfEmpty

Deklaration

type IfEmpty(type arg, type default)

Syntax

IfEmpty(<arg>, <default>)

Erforderliche Parameter

  • arg: Ein Argument, das ausgewertet werden soll, um festzustellen, ob es null oder eine leere Zeichenkette ist
  • default: Standardwert, der zurückgegeben werden soll, wenn arg null oder eine leere Zeichenkette ist

Beschreibung

Gibt den Standardwert zurück, wenn das erste Argument null ist oder die Zeichenkettendarstellung des Arguments eine leere Zeichenkette ist. Andernfalls wird das erste Argument zurückgegeben. Dies ist eine Abkürzung für eine If-Funktionsanweisung:

If(IsNull(arg)|Length(arg)==0, default, arg)

Siehe auch die Funktion IsNull.

Beispiele

// Wenn die Variable "myDate" null oder leer ist,
// wird das aktuelle Datum zurückgegeben, andernfalls wird "myDate" zurückgegeben
result = IfEmpty(myDate, Now());

IfNull

Deklaration

type IfNull(type arg, type default)

Syntax

IfNull(<arg>, <default>)

Erforderliche Parameter

  • arg: Ein Argument, das ausgewertet wird, um zu prüfen, ob es null ist
  • default: Standardwert, der zurückgegeben wird, wenn arg null ist

Beschreibung

Gibt den Standardwert zurück, wenn das erste Argument null ist, andernfalls wird das erste Argument zurückgegeben.

Dies ist eine Abkürzung für eine If-Funktionsanweisung:

If(IsNull(arg), default, arg)

Siehe auch die Funktionen IsNull und IfEmpty.

Hinweis

Wenn jitterbit.target.xml.include_nil_attribute upstream der Funktionen IfNull oder IsNull auf true gesetzt ist, werden die Funktionen eine leere Zeichenkette bei Verwendung von Agent-Versionen 11.43 oder später als Nicht-Null-Wert auswerten.

Beispiele

// Wenn die Variable "myDate" null ist,
// wird das aktuelle Datum zurückgegeben, andernfalls wird "myDate" zurückgegeben
result = IfNull(myDate, Now());

InitCounter

Deklaration

long InitCounter(type counter[, long initialValue])

Syntax

InitCounter(<counter>, <initialValue>)

Erforderliche Parameter

  • counter: Der Name einer Variablen oder ein Verweis auf eine globale Variable, die als Zähler verwendet werden soll

Optionale Parameter

  • initialValue: Der Initialwert, auf den der Zähler gesetzt werden soll; Standard ist 0

Beschreibung

Initialisiert einen Zähler und übergibt optional einen Initialwert. Wird nur mit einem einzelnen Agent verwendet.

Wenn kein Initialwert gesetzt ist, wird der Initialwert auf 0 gesetzt. Das erste Argument ist entweder der Name einer Variablen oder ein Verweis auf eine Variable (siehe Beispiele). Diese Methode muss nur in Einzelthread-Kontexten aufgerufen werden. Das Aufrufen dieser Methode in einem Multi-Thread-Kontext führt zu einem Fehler. Siehe auch Überlegungen zur Chunking.

Warnung

Diese Funktion darf nur mit einem einzelnen Agent verwendet werden, da sie in einem Multi-Agent-Kontext zu einem Fehler führt.

Beispiele

// Initialize counter to 0 using the name of a global variable
InitCounter("counter");

// Initialize counter to 100 using a reference to a global variable
InitCounter($counter, 100);

InList

Deklaration

int InList(type x[, type arg1, ... type argN])

Unterstützte Datentypen für type

int, float, long, double, string, bool, date, binary, collection, map

Syntax

InList(<x>[, <arg1>, ... <argN>])

Erforderliche Parameter

  • x: Ein Element, das auf eine Übereinstimmung überprüft werden soll

Optionale Parameter

  • arg1...argN: Eine Reihe von Argumenten, mit denen x verglichen werden soll

Beschreibung

Prüft auf x in der Liste der Argumente (arg1 bis argN). Wenn eine Übereinstimmung (nach Wert) gefunden wird, gibt diese Funktion eine ganze Zahl zurück, die die Position der Übereinstimmung in der Liste darstellt, wobei die erste Position in der Liste durch die ganze Zahl 1 dargestellt wird.

Wenn die Liste mehr als eine Instanz von x enthält, gibt diese Funktion die Position der ersten Übereinstimmung zurück (die Übereinstimmung mit dem niedrigsten Positionsindex). 0 wird zurückgegeben, wenn die Liste keinen entsprechenden Wert enthält oder wenn nur ein einzelnes Argument bereitgestellt wird.

Wichtig

Die Funktion InList unterstützt mehrere Datentypen, indem sie diese vor der Auswertung implizit in Strings konvertiert. Beispiele:

  • 123 und "123" sind gleich.
  • 4.5 und "4.5" sind gleich.
  • true und "1" sind gleich.
  • false und "0" sind gleich.
  • Date("7/15/2025") und "2025-07-15" sind gleich.

Beispiele

InList("x","a","b","c","x");
// Returns 4

InList("a","a","b","c","a");
// Returns 1

InList("x","a","b","c");
// Returns 0

InList("x");
// Returns 0

InList("1", 123, "12", true);
// Returns 3 due to implicit conversion

IsInteger

Deklaration

bool IsInteger(type x)

Syntax

IsInteger(<x>)

Erforderliche Parameter

  • x: Ein zu wertendes Element

Beschreibung

Gibt true zurück, wenn das Argument vom Typ Integer oder Long ist oder ohne Informationsverlust in einen Integer oder Long konvertiert werden kann.

Beispiele

$s="1";
IsInteger($s);
// Returns true
$s="1a";
IsInteger($s);
// Returns false
$s=12.12;
IsInteger($s);
// Returns false
$s=12.00;
IsInteger($s);
// Returns true

IsNull

Deklaration

bool IsNull(type x)

Syntax

IsNull(<x>)

Erforderliche Parameter

  • x: Ein zu wertendes Element

Beschreibung

Gibt true zurück, wenn das Argument null ist. Gilt für Datenbankfelder, Variablen und Funktionen, die null zurückgeben können.

Siehe auch die Funktionen IfNull und IfEmpty für Abkürzungen, die statt dieser Funktion verwendet werden können.

Hinweis

Wenn jitterbit.target.xml.include_nil_attribute upstream der Funktionen IfNull oder IsNull auf true gesetzt ist, werten die Funktionen einen leeren String als Non-Null-Wert aus, wenn Agent-Versionen 11.43 oder später verwendet werden.

Beispiele

// Wenn "POHeader.Vendor_Code" null ist,
// wird die Zeichenkette "VC" zurückgegeben, andernfalls der Code
If(IsNull(POHeader.Vendor_Code), POHeader.Vendor_Code, "VC")

IsValid

Deklaration

bool IsValid(type x)

Syntax

IsValid(<x>)

Erforderliche Parameter

  • x: Ein zu wertendes Element

Beschreibung

Gibt true zurück, wenn die Auswertung des Arguments ohne Fehler erfolgt.

Beispiele

IsValid(Date("abc"))
// Returns false, since the string "abc"
// cannot be successfully converted to a date

IsValid(3/0)
// Returns false, since division by 0
// is not permitted

IsValid(0/3)
// Returns true, since 0/3 is a legal expression
// evaluating to 0

Length

Deklaration

int Length(type x)

Syntax

Length(<x>)

Erforderliche Parameter

  • x: Ein zu wertendes Element

Beschreibung

Gibt die Länge des Eingabearguments zurück.

Das Verhalten dieser Methode hängt vom Argumenttyp ab:

  • string: Die Länge der Zeichenkette wird zurückgegeben
  • array: Die Anzahl der Elemente im Array wird zurückgegeben
  • binary data: Die Anzahl der Bytes wird zurückgegeben
  • Für alle anderen Typen wird versucht, das Argument in eine Zeichenkette zu konvertieren, und die Länge der resultierenden Zeichenkette wird zurückgegeben.
  • Wenn das Argument nicht in eine Zeichenkette konvertiert werden kann oder das Argument null ist oder einen unbekannten Typ hat, wird 0 zurückgegeben.

Beispiele

// String length:
Length("Mississippi"); // returns 11

// Array length:
// Count the number of email address nodes
$nodes = SelectNodesFromXMLAny("cust:EmailAddress", Customer$Any#.,
"cust=urn:xmlns:25hoursaday-com:customer");
Length($nodes);

// Binary arguments:
Length(HexToBinary("b2082fee"));
// Returns 4, because the input is a 4-byte binary value

// Numeric arguments:
Length(1234567); // Returns 7
Length(123.45678); // Returns 9

// Miscellaneous:
Length(true); // Returns 1
Length(Now()); // Returns 19 since the default date format is "yyyy-MM-DD hh:mm:ss"
Length(Null()); // Returns 0

Null

Deklaration

null Null()

Syntax

Null()

Beschreibung

Gibt null zurück.

Beispiele

Mit dieser Funktion lässt sich ein Nullwert in bestimmte Spalten einer Datenbank einfügen.

Random

Deklaration

int Random(int min, int max)

Syntax

Random(<min>, <max>)

Erforderliche Parameter

  • min: Ganzzahlwert der minimalen Zufallszahl
  • max: Ganzzahlwert der maximalen Zufallszahl

Beschreibung

Erzeugt eine zufällige Ganzzahl zwischen den angegebenen Minimal- und Maximalwerten (einschließlich). Siehe auch die Funktion RandomString.

Beispiele

// Creates a random number from 0 to 9999999 (inclusive)
Random(0, 9999999);


// Creates a random number from 1 to 10
Random(1, 10);
// Returns a random 7-character string
// using the characters "0123456789"
RandomString(7, "0123456789");

// Returns a random 5-digit hexadecimal string
RandomString(5, "0123456789ABCDEF");

// Returns a random 7-digit integer string
// with no leading zeroes
RandomString(1, "123456789") +
  RandomString(6, "0123456789");

RandomString

Deklaration

string RandomString(int len[, string chars])

Syntax

RandomString(<len>[, <chars>])

Erforderliche Parameter

  • len: Länge der resultierenden Zufallszeichenkette

Optionale Parameter

  • chars: Zeichenkette mit Zeichen, die in der resultierenden Zufallszeichenkette verwendet werden

Beschreibung

Erzeugt eine zufällige Zeichenkette der angegebenen Länge. Standardmäßig verwendet die Funktion alphanumerische Zeichen; die Menge umfasst a–z, A–Z und 0–9. Siehe auch die Funktion Random.

Beispiele

// Creates a random 5-digit hexadecimal string
RandomString(5, "0123456789ABCDEF");

// Creates a random 7-digit integer string
// with no leading zeroes
RandomString(1, "123456789") + RandomString(6, "0123456789");

ReadArrayString

Deklaration

array ReadArrayString(string arrayString[, string type])

Syntax

ReadArrayString(<arrayString>[, <type>])

Erforderliche Parameter

  • arrayString: Eine Zeichenkettendarstellung eines Arrays

Optionale Parameter

  • type: Eine Zeichenkette, die den Typ beschreibt, den die Array-Zeichenkette darstellt, z. B. "string", "int", "double", "bool"

Beschreibung

Liest eine Zeichenkette, die ein ein- oder mehrdimensionales Array darstellt.

Das Array wird dargestellt, indem Array-Elemente mit einem Paar von geschwungenen Klammern ({ und }) eingeschlossen werden. Jedes Array-Element kann ein Array oder ein durch Komma (,) getrenntes Skalarelement sein. Die Elemente in einem Array müssen entweder alle Skalare oder alle Arrays sein.

Der Skalarwert kann durch eine CSV-Zeichenkette dargestellt werden. Doppelte Anführungszeichen zum Einschließen der Zeichenkette sind optional, es sei denn, die Zeichenkette enthält Sonderzeichen wie ",{}\n (doppelte Anführungszeichen, Komma, geschwungene Klammern, Tabulatoren, Zeilenumbrüche oder Wagenrücklaufe). In der in doppelte Anführungszeichen eingeschlossenen Zeichenkette muss jedes doppelte Anführungszeichen durch zwei doppelte Anführungszeichen maskiert werden. Das optionale zweite Argument dient zur Angabe des Datentyps des Skalarwerts. Der Typ wird als Zeichenkette angenommen, wenn er nicht explizit angegeben wird.

Beispiele

// One-dimensional array with four string values
ReadArrayString("{John,Steve,Dave,Eric}");

// One-dimensional array with three boolean values
ReadArrayString("{1,0,1}", "bool");

// Two-dimensional array
// The first array element is an array with three string values
// The second array element is an array with two string values
// The second element of the second array contains a trailing line break
ReadArrayString('{{abc,"a,b","a""b"},{"de","d
"}}');

RecordCount

Deklaration

int RecordCount()

Syntax

RecordCount()

Beschreibung

Gibt die Instanznummer der Zielschleife zurück, die gerade erzeugt wird.

Bei Verwendung in einer Bedingung wird die Instanznummer der zuletzt erzeugten Instanz zurückgegeben. Das erste Mal, wenn diese Methode in einer Schleife aufgerufen wird, gibt sie 0 (Null) zurück, wenn sie in einer Bedingung aufgerufen wird; andernfalls gibt sie 1 (Eins) zurück. Der Zähler wird auf 0 zurückgesetzt, sobald eine neue Schleife gestartet wird.

Hinweis

Diese Methode ist veraltet und kann in einer zukünftigen Version entfernt werden.

Verwenden Sie stattdessen SourceInstanceCount() oder TargetInstanceCount(). TargetInstanceCount() entspricht dieser Methode.

Beispiele

RecordCount gibt einen Wert von 5 zurück, während die fünfte Zeile in einem Zielschleifenknoten generiert wird.

ReRunOperation

Deklaration

bool ReRunOperation([bool runSynchronously])

Syntax

ReRunOperation([<runSynchronously>])

Optionale Parameter

  • runSynchronously: Flag, das angibt, ob der Vorgang synchron (Standard) oder asynchron ausgeführt werden soll

Beschreibung

Führt den aktuellen Vorgang erneut aus.

Das Verhalten dieser Methode bezüglich des Rückgabewerts und globaler Variablen ist identisch mit der RunOperation-Funktion. Siehe diese Funktion für eine Beschreibung, wie sich das synchrone oder asynchrone Ausführen des Vorgangs auf globale Variablen auswirkt.

Hinweis

Diese Funktion unterliegt auch der gleichen Agentenebenen-Begrenzung für synchrone Aufrufe innerhalb einer einzelnen While-Schleife und teilt ihre kumulative Anzahl mit RunOperation und RunOperationFromProject. Siehe den Hinweis unter RunOperation für Details.

Warnung

Da es sich um einen rekursiven Aufruf handelt, ist es unerlässlich, dass eine Stoppbedingung vorhanden ist, höchstwahrscheinlich einschließlich der CancelOperation-Funktion. Andernfalls landen Sie in einer Endlosschleife von Vorgangsaufrufen.

Beispiele

ReRunOperation();
// Re-runs the current operation synchronously
ReRunOperation(false);
// Re-runs the current operation asynchronously

RunOperation

Deklaration

bool RunOperation(string operationId[, bool runSynchronously])

Syntax

RunOperation(<operationId>[, <runSynchronously>])

Erforderliche Parameter

Optionale Parameter

  • runSynchronously: Flag, das angibt, ob der Vorgang synchron (Standard) oder asynchron ausgeführt werden soll

Beschreibung

Führt einen Vorgang synchron oder asynchron aus, wobei synchron die Standardeinstellung ist.

Synchronität

Wenn run_synchronously true ist, wird der aufgerufene (untergeordnete) Vorgang oder die Vorgangskette sequenziell vom aufrufenden (übergeordneten) Vorgang ausgeführt. Alle globalen Variablen werden vom untergeordneten Vorgang geerbt und alle Änderungen an den globalen Variablen werden im übergeordneten Vorgang widergespiegelt. Dies ist das Standardverhalten, wenn das zweite Argument nicht angegeben wird. Gibt false zurück, wenn der aufgerufene Vorgang fehlgeschlagen ist.

Wenn run_synchronously false ist, wird der aufgerufene (untergeordnete) Vorgang oder die Vorgangskette gleichzeitig neben dem aufrufenden (übergeordneten) Vorgang ausgeführt. Der aufgerufene Vorgang wird der Jitterbit-Verarbeitungswarteschlange hinzugefügt, um verarbeitet zu werden, nachdem alle vorherigen Vorgänge verarbeitet wurden. Alle globalen Variablen werden vom untergeordneten Vorgang geerbt, aber Änderungen an diesen Variablen werden nicht im übergeordneten Vorgang widergespiegelt. Der übergeordnete Vorgang wird unabhängig vom untergeordneten Vorgang weiterhin ausgeführt und es gibt keine Garantie dafür, welcher Vorgang zuerst beendet wird. Gibt false zurück, wenn der untergeordnete Vorgang nicht der Warteschlange hinzugefügt werden konnte. Im asynchronen Modus werden diese globalen Variablen dem aufgerufenen Vorgang nach Wert statt nach Referenz übergeben, was sicherstellt, dass Änderungen an den Variablen nicht in einem anderen Vorgang widergespiegelt werden.

Weitere Informationen finden Sie unter Synchronität wie im Studio-Tool Vorgang aufrufen beschrieben. Das gleiche allgemeine Konzept gilt für Design Studio.

Hinweis

Operationen, die mit dieser Funktion aufgerufen werden, werden verkettet und laufen auf dem gleichen Agent wie die aufrufende Operation, unabhängig von der Synchronität.

Wenn die Funktion false zurückgibt, um einen Fehler anzuzeigen, oder wenn die aufgerufene Operation nicht in die Warteschlange gestellt werden konnte, rufen Sie GetLastError auf, um die Fehlermeldung abzurufen.

Hinweis

Ein Limit auf Agent-Ebene begrenzt auch die Anzahl der synchronen RunOperation-Aufrufe, die innerhalb einer einzelnen While-Schleife getätigt werden (50 standardmäßig). Dies ist unabhängig von MaxOperationStackDepth, das verschachtelte synchrone Operationsaufrufe begrenzt, anstatt wiederholte Aufrufe innerhalb einer Schleife. RunOperation, RunOperationFromProject und ReRunOperation teilen sich einen einzigen kumulativen Zähler pro Schleife, sodass der synchrone Aufruf einer dieser Funktionen innerhalb der gleichen Schleife zum gleichen Limit zählt. Wenn das Limit erreicht wird, gibt RunOperation false zurück und die aufrufende Operation wird weiter ausgeführt. Das Operationsprotokoll erfasst ebenfalls einen Eintrag, der die aufgerufene Operation nach Name identifiziert (und bei der GUID zurückfällt, wenn der Name nicht aufgelöst werden kann), wenn das Limit erreicht wurde, und GetLastError gibt die gleiche Identifizierungsinformation zurück. Auf privaten Agents können Sie das Limit und die Frage, ob eine Operation es außer Kraft setzen kann, im Abschnitt [OperationEngine] der Datei jitterbit.conf konfigurieren.

Beispiele

// Runs the "MyOperation"
RunOperation("<TAG>MyProject/Operations/MyOperation</TAG>");

RunOperationFromProject

Deklaration

bool RunOperationFromProject(string operationId[, bool runSynchronously])

Syntax

RunOperationFromProject(<operationId>[, <runSynchronously>])

Erforderliche Parameter

  • operationId: Eine Operationskennnung in einem anderen Projekt, das in derselben Umgebung wie das aktuelle Projekt bereitgestellt wurde.

Optionale Parameter

  • runSynchronously: Flag, das angibt, ob die Operation synchron (Standardeinstellung) oder asynchron ausgeführt werden soll

Beschreibung

Führt eine Operation synchron oder asynchron aus, wobei synchron die Standardeinstellung ist. Diese Funktion, verfügbar ab Version 8.22, ermöglicht es Ihnen, Operationen aus verschiedenen Projekten auszuführen, die sich in der gleichen Umgebung wie Ihr aktuelles Projekt befinden und bereits bereitgestellt sind. Diese Funktion funktioniert ähnlich wie die Funktion RunOperation.

Abrufen der Operationskennnung

Um die Operationskennnung der Operation im anderen Projekt (bezeichnet als Remote-Projekt) abzurufen, müssen Sie zunächst das Remote-Projekt in der gleichen Umgebung wie das aktuelle Projekt bereitstellen.

Fügen Sie diese Funktion dann im Modus Business Analyst des Design Studio in Ihr Skript ein. Der daraufhin angezeigte Assistent fordert Sie auf, das Projekt auszuwählen, das Sie verwenden möchten, und ermöglicht es Ihnen dann, aus einer seiner derzeit bereitgestellten Operationen auszuwählen. Der Assistent erstellt dann einen geeigneten Pfad und fügt ihn als Kennnung ein. Siehe auch die Anweisungen zum Einfügen von Projektelementen.

Globale Variablen

Globale Variablen, die im Remote-Projekt festgelegt werden, können je nachdem, ob die Remote-Operation synchron ausgeführt wird oder nicht, vererbt werden. Wie im nächsten Abschnitt beschrieben, werden globale Variablen, wenn sie synchron ausgeführt werden, von der aufgerufenen Operationskette geerbt und alle Änderungen an den globalen Variablen werden in der aktuellen Operation widerspiegelt. Dies ermöglicht es einem Remote-Projekt, mit der aufrufenden Operation zu kommunizieren.

Mit dem asynchronen Modus werden diese globalen Variablen an den Remote-Vorgang nach Wert und nicht nach Referenz übergeben, was sicherstellt, dass Änderungen an den Variablen nicht in den aktuellen Vorgang übernommen werden.

Synchrone Ausführung

Bei runSynchronously=true werden der Vorgang und alle erfolgreichen oder fehlgeschlagenen Vorgänge innerhalb des aktuellen Vorgangs ausgeführt und der aktuelle Vorgang wartet darauf, dass die gesamte aufgerufene Vorgangskette beendet wird. Alle globalen Variablen werden von der aufgerufenen Vorgangskette geerbt und Änderungen an den globalen Variablen werden im aktuellen Vorgang übernommen. Dies ist das Standardverhalten, wenn das zweite Argument nicht angegeben wird. Gibt false zurück, wenn der aufgerufene Vorgang zu einem Fehler führte.

Bei runSynchronously=false wird dieser Vorgang in die Jitterbit-Verarbeitungswarteschlange eingereiht und verarbeitet, nachdem alle Vorgänge davor verarbeitet wurden. Alle globalen Variablen werden von der aufgerufenen Vorgangskette geerbt, Änderungen an diesen Variablen werden aber nicht im aktuellen Vorgang übernommen. Der aktuelle Vorgang wird unabhängig von der aufgerufenen Vorgangskette ausgeführt und es gibt keine Garantie, welcher Vorgang zuerst beendet wird. Gibt false zurück, wenn der Vorgang nicht in die Warteschlange eingereiht werden konnte.

Gibt die Funktion false zurück, um einen Fehler anzuzeigen, oder konnte der Vorgang nicht eingereiht werden, rufen Sie GetLastError auf, um die Fehlermeldung abzurufen.

Hinweis

Der Vorgang im externen Projekt muss bereits von diesem Projekt aus bereitgestellt worden sein, um in einer RunOperationFromProject-Funktion im aktuellen Projekt verwendet zu werden.

Hinweis

Ein Limit auf Agent-Ebene begrenzt auch die Anzahl der synchronen RunOperationFromProject-Aufrufe, die aus einer einzelnen While-Schleife getätigt werden (standardmäßig 50). Dies ist separat von MaxOperationStackDepth, das verschachtelte synchrone Vorgangsaufrufe begrenzt und nicht wiederholte Aufrufe in einer Schleife. RunOperation, RunOperationFromProject und ReRunOperation verwenden eine gemeinsame kumulative Anzahl pro Schleife, sodass synchrone Aufrufe in der gleichen Schleife zum gleichen Limit zählen. Wird das Limit erreicht, gibt RunOperationFromProject false zurück und der aufrufende Vorgang wird weiter ausgeführt. Das Vorgangsprotokoll erfasst auch einen Eintrag, der den aufgerufenen Vorgang beim Namen angibt (bei Bedarf wird die GUID verwendet, wenn der Name nicht aufgelöst werden kann), wenn das Limit erreicht wurde, und GetLastError gibt diese gleichen Informationen zurück. Auf privaten Agents können Sie das Limit und ob ein Vorgang es überschreiben kann im jitterbit.conf-Dateiabschnitt [OperationEngine] konfigurieren.

Beispiele

// Runs the "MyOperation" in the default mode of synchronously
RunOperationFromProject("<TAG>Project/MyProject/Operations/MyOperation</TAG>");

RunPlugin

Deklaration

bool RunPlugin(string pluginId)

Syntax

RunPlugin(<pluginId>)

Erforderliche Parameter

Beschreibung

Führt ein bestimmtes Plugin aus und setzt dann die Ausführung des aktuellen Scripts fort. Falls mehrere Versionen eines Plugins auf einem Agent installiert sind, wird die höchste verfügbare Version verwendet.

In der Design-Studio-Benutzeroberfläche werden nur die Plugins angezeigt, die innerhalb eines Scripts ausgeführt werden können. Plugins, die auf Quellen, Zielen und Web-Service-Aufrufen ausgeführt werden, sind ausgeblendet. Siehe Anweisungen zum Einfügen von Projektelementen.

Gibt true zurück, wenn das Plugin ohne Fehler abgeschlossen wird. Gibt false zurück, wenn das Plugin nicht ausgeführt werden konnte oder die Plugin-Implementierung selbst einen Fehler zurückgegeben hat. Rufen Sie GetLastError auf, um die Fehlermeldung abzurufen.

Beispiele

// Runs the Jitterbit HMACSHA256Generator plugin
RunPlugin("<TAG>plugin:http://www.jitterbit.com/plugins/pipeline/user/HMACSHA256Generator</TAG>");

RunScript

Deklaration

string RunScript(string scriptId[, type var1, type var2, ..., type varN])

Syntax

RunScript(<scriptId>[, <var1>, <var2>, ..., <varN>])

Erforderliche Parameter

Optionale Parameter

  • var1...varN: Zusätzliche Variablen, die an das aufgerufene Script übergeben werden

Beschreibung

Führt das angegebene Script aus und setzt dann die Ausführung des aktuellen Scripts fort. Diese Methode gibt bei erfolgreicher Ausführung den Rückgabewert des aufgerufenen Scripts als String zurück.

Eine Liste von Werten kann als Eingabevariablen an eine RunScript-Funktion übergeben werden. Das Script erstellt lokale Variablen mit diesen Werten unter Verwendung von Standardnamen wie _1, _2 ....

Falls aussagekräftigere Namen bevorzugt werden, kann die ArgumentList-Funktion verwendet werden, um eine Liste von lokalen Variablennamen auf die Liste der _1, _2 ... abzubilden. Siehe die ArgumentList-Funktion für Beispiele.

Warnung

Der Rückgabetyp ist ein string. Alle anderen Typen werden in ihr String-Äquivalent konvertiert. Null-Werte werden als leerer string zurückgegeben. Arrays werden als string zurückgegeben. Falls sie Skalare enthalten, können diese mit der ReadArrayString-Funktion in ein Array konvertiert werden. (Ein mehrdimensionales Array kann auch von ReadArrayString konvertiert werden.)

Warnung

Wenn es sich bei dem aufgerufenen Script um ein JavaScript-Script handelt, werden ihm keine Argumente übergeben. Alle in dem Aufruf der RunScript-Funktion enthaltenen Argumente werden in dem JavaScript-Script nicht deklariert oder verfügbar sein. Die einzige Methode zur Übergabe von Informationen an ein JavaScript-Script besteht darin, globale Variablen zu verwenden. Dies sind Variablen, denen ein $-Symbol vorangestellt ist. Diese Werte können im JavaScript-Script mithilfe der Jitterbit.GetVar-Funktion verfügbar gemacht werden.

Hinweis

Das Aufrufen von Unmap aus einem von RunScript aufgerufenen Script hat keine Auswirkung auf die Zuordnung des aufrufenden Felds, da RunScript das Ergebnis des aufgerufenen Scripts als String zurückgibt, anstatt das Unmapping-Signal weiterzugeben. Rufen Sie Unmap stattdessen direkt im eigenen Zuordnungsausdruck des Zielfelds auf.

Beispiele

// Runs the script "CalculateSomething"
RunScript("<TAG>Scripts/CalculateSomething</TAG>");

RunScript("<TAG>Scripts/CalculateSomething</TAG>", "abc", 1);
// Sends the script "CalculateSomething" the string "abc" and the number 1
// Inside "CalculateSomething", these will be available as _1 and _2

Set

Deklaration

type Set(string name, type value)

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

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

Syntax

Set(<name>, <value>[, <index1>, <index2>, ..., <indexN>])

Erforderliche Parameter

  • name: Der Name einer globalen Variablen, entweder ein Skalar oder ein Array
  • value: Ein Wert, der der globalen Variablen zugewiesen werden soll

Optionale Parameter

  • index1...indexN: Index oder Indizes, die die Position eines Elements bei der Festlegung eines Elements in einem Array beschreiben

Beschreibung

Legt den Wert einer globalen Variablen mit einem angegebenen Namen auf einen Wert fest und gibt den Wert zurück. Siehe auch die ergänzende Get-Funktion.

Erste Form: Skalare

In der ersten Form wird eine String-Name einer globalen Variablen unter Verwendung des bereitgestellten Namens und Werts festgelegt.

(Obwohl eine *lokale* Variable als Referenz übergeben werden kann, wird dies nicht empfohlen, da die Ergebnisse inkonsistent sein können. Lokale Variablen sind nicht dazu gedacht, durch diesen Mechanismus gesetzt zu werden.)

Siehe die Beispiele unten.

Zweite und dritte Form: Arrays

In der zweiten und dritten Form liefern zusätzliche Argumente die Indizes zum Setzen eines Elements in einem Array.

Wenn das erste Argument ein Array ist (oder der Name einer globalen Variablen, die ein Array ist), kann der Wert eines Array-Elements durch Angabe seines Index (oder der Indizes für mehrdimensionale Arrays) als zusätzliche Argumente gesetzt werden.

Um Daten an ein Array anzuhängen, übergeben Sie entweder einen negativen Indexwert oder die Größe des Arrays. Die Größe kann mit der Funktion Length als Length($array) ermittelt werden.

Arrays sind nullindiziert; das erste Element befindet sich am Index 0 und das letzte Element (des Arrays $array) am Index [Length($array)-1]. Arrays können mit der Funktion Array oder ReadArrayString erstellt werden.

Der Versuch, ein Element über das Ende des Arrays hinaus zu setzen, führt dazu, dass zusätzliche Null-Wert-Elemente zum Array hinzugefügt werden, um das Array auf die korrekte Größe aufzufüllen.

SCOPE_CHUNK-Präfix-Syntax

Das Setzen eines Variablennamens mit dem Präfix SCOPE_CHUNK erstellt eine globale Variable, die ausgewertet wird, während jeder Datensatz verarbeitet wird. Dies kann bei der Erstellung von globalen Variablen verwendet werden, deren Wert für einen bestimmten Datensatz eindeutig ist, und kann dann diesen Datensatz identifizieren, wenn eine Datei oder ein Datensatz bei einem Ziel erstellt wird. Siehe auch die Funktionen GetChunkDataElement und SetChunkDataElement als alternative Methode, die die Verwendung anderer Variablennamen ermöglicht.

Vorsicht

Die SCOPE_CHUNK-Präfix-Syntax wird nicht in Operationen mit einer Transformation unterstützt, die bedingte Zuordnung verwendet.

Beispiele

// Scalars:
// All of these forms are equivalent:
// they increase the global variable "count" by 1
result1 = Set("count", Get("count")+1);
$count++;
$count = $count + 1;

// Arrays:
// Appending a value to the array "arr"
// These are equivalent
Set($arr, "value", -1);
Set($arr, "value", Length($arr));

// Set the n:th entry in an array "arr"
// to the string "value"
Set($arr, "value", n-1);

// Set the n:th entry of the m:th array
// of "record_set"
Set($record_set, "value", m-1, n-1);

// SCOPE_CHUNK Prefix:
// Example from a mapping using the SCOPE_CHUNK syntax to
// create a global variable that is unique in value to a
// particular chunk.
// It uses the field "CustomerID" to identify the chunk:

Set("SCOPE_CHUNK_CustomerID",
    "customer_"+CustomerID+".csv");

// This variable will be available in the filenames field of
// the connection parameters of a target as:

[SCOPE_CHUNK_CustomerID]

// With each chunk created, a unique filename for that
// customer ID will be created, such as (depending on the
// values of Customer ID):
customer_1009.csv
customer_2019.csv
customer_5498.csv

SetChunkDataElement

Deklaration

type SetChunkDataElement(string name, type value)

Syntax

SetChunkDataElement(<name>, <value>)

Erforderliche Parameter

  • name: Der Name der Chunk-Variablen
  • value: Der Wert, auf den die Chunk-Variable gesetzt werden soll

Beschreibung

Setzt den Wert einer angegebenen Chunk-Variablen und gibt den Wert zurück. Eine Chunk-Variable wird ausgewertet, während jeder Datensatz verarbeitet wird. Eine alternative Methode ist die Verwendung der SCOPE_CHUNK-Syntax der Funktion Set.

Siehe auch die Funktionen GetChunkDataElement und Set.

Beispiele

// If used in a transformation mapping, this sets
// the value of the chunk variable "CustomerFileName"
// to the results of a calculation using the value of
// the "Customer" field at the time of the chunking
// to create a filename for that chunk:

SetChunkDataElement("CustomerFilename",
    "customer_"+CustomerID+".csv");

// This global variable would be available as a
// variable in the filenames field of the connection
// parameters of a target as:

[CustomerFilename]

// It would also be available in scripts in the same
// chunk as:

GetChunkDataElement("CustomerFilename");

// With each chunk created, a unique filename for that
// customer ID will be created, such as (depending on
// the values of Customer ID):
customer_1009.csv
customer_2019.csv
customer_5498.csv

Sleep

Deklaration

void Sleep(int seconds)

Syntax

Sleep(<seconds>)

Erforderliche Parameter

  • seconds: Die ganzzahlige Anzahl der Sekunden, für die der aktuelle Vorgang unterbrochen werden soll

Beschreibung

Bewirkt, dass die Ausführung für eine angegebene Anzahl von Sekunden unterbrochen wird.

Beispiele

// Suspendiert den aktuellen Vorgang für 1 Minute
Sleep(60);

SourceInstanceCount

Deklaration

int SourceInstanceCount()

Syntax

SourceInstanceCount()

Beschreibung

Gibt die Instanzanzahl des letzten Generators zurück.

Der Wert ist unabhängig davon, ob die Zielinstanz generiert wurde oder nicht; derselbe Wert wird zurückgegeben, wenn er in einem Bedingungsskript oder in einem Zuordnungsskript aufgerufen wird.

Wenn die erste Quellinstanz als Generator verwendet wird, wird 1 zurückgegeben, dann 2 und so weiter.

Siehe auch die Funktion TargetInstanceCount.

Beispiele

// Gibt die Instanzanzahl des neuesten Generators zurück
currentSourceInstance = SourceInstanceCount();

TargetInstanceCount

Deklaration

int TargetInstanceCount()

Syntax

TargetInstanceCount()

Beschreibung

Gibt die Instanzanzahl eines erzeugenden Zielschleifenknotens zurück.

Bei Aufrufen in einer Bedingung wird die Anzahl der Zielinstanzen zurückgegeben, die bisher für den aktuellen Schleifenknoten erzeugt wurden. Die von dieser Methode zurückgegebene Anzahl ist um eins kleiner, wenn sie in einer Bedingung aufgerufen wird, da in einer Bedingung nicht bekannt ist, ob die aktuelle Zielinstanz erzeugt wird oder nicht.

Wenn die erste Zielinstanz erzeugt wird, wird 1 zurückgegeben, dann 2 und so weiter. Bei Aufrufen in einer Bedingung verläuft die Sequenz stattdessen 0, 1 und so weiter.

Siehe auch die Funktion SourceInstanceCount.

Beispiele

// Gibt die Instanzanzahl des neuesten Zielgenerators zurück
currentTargetInstance = TargetInstanceCount();

WaitForOperation

Deklaration

void WaitForOperation(string operationId[, int timeOutSec, int pollIntervalSec])

Syntax

WaitForOperation(<operationId>[, <timeOutSec>, <pollIntervalSec>])

Erforderliche Parameter

  • operationID: Ein Vorgang im aktuellen Projekt

Optionale Parameter

  • timeOutSec: Eine lokale Variable
  • pollIntervalSec: Eine lokale Variable

Beschreibung

Stoppt die Ausführung eines Skripts oder einer Zuordnung, bis alle Instanzen des angegebenen Vorgangs, die sich derzeit in der Operationswarteschlange befinden, die Verarbeitung abgeschlossen haben. Diese Methode ist nützlich, wenn man viele Instanzen eines Vorgangs zur parallelen Verarbeitung in die Warteschlange einreihen und dann auf deren Abschluss warten möchte.

Der in diesem Funktionsaufruf verwendete Vorgang muss als Vorgang im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.

Hinweis:

  • Für jeden Vorgang (identifiziert durch seine operationID), auf den gewartet werden soll, muss ein Aufruf dieser Methode erfolgen.
  • Vorgangsinstanzen, die nach diesem Aufruf hinzugefügt werden (durch Aufrufe der Funktion RunOperation), werden nicht erwartet.
  • Der aktuelle Benutzer benötigt Lesezugriff auf den Vorgang, auf den gewartet wird.

Das zweite (optionale) Argument ist das Timeout in Sekunden. Das Standard-Timeout beträgt 1 Stunde (3600 Sekunden), und wenn alle Vorgänge nicht innerhalb dieser Zeit abgeschlossen sind, wird ein Fehler ausgelöst. Falls man erwartet, dass die Vorgänge unter normalen Bedingungen länger ausgeführt werden, muss man das Timeout erhöhen. Man kann diesen Fehler durch Verwendung der Funktion Eval behandeln.

Das dritte (optionale) Argument ist das Abfrageintervall in Sekunden. Das Abfrageintervall ist die Zeit zwischen Überprüfungen der Operationswarteschlange. Das Standard-Abfrageintervall beträgt 10 Sekunden. Der Standard-Wert stellt keine signifikante Leistungsbeeinträchtigung dar, aber wenn man erwartet, dass die Vorgänge sehr lange ausgeführt werden, kann man das Abfrageintervall erhöhen.

Beispiele

// Add ten operation instances to the queue
// and wait for all of them to finish
i = 0;
while(i < 10,
  RunOperation("<TAG>Operations/Process One Message</TAG>", false);
  i++;
);

WaitForOperation("<TAG>Operations/Process One Message</TAG>");