Zum Inhalt springen

Allgemeine Funktionen im Jitterbit Design Studio

Zu den allgemeinen Funktionen zählen jene Funktionen, die nicht auf eine bestimmte Aktivität beschränkt sind, sondern in nahezu jedem Script Anwendung finden.

ArgumentList

Erklärung

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

Syntax

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

Erforderliche Parameter

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

Optionale Parameter

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

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: Transformation Wenn der Funktionsaufruf im Mapping eines Zielfelds erfolgt. (Ein Aufruf der Funktion setinstances muss zuvor vorgenommen worden sein.) Die lokalen Variablen werden aus den entsprechenden globalen Variablen in der durch die Funktion gegebenen Instanz konstruiert SetInstances().
  • Fall 2: Ausführen eines Script Wenn der Funktionsaufruf in einem Script erfolgt. Die lokalen Variablen werden aus den entsprechenden Argumenten in der Liste erstellt, die vom aufrufenden runscript-Anweisung. Diese Variablen können auch über den Index angesprochen werden, wie _1, _2...

Diese Funktion gibt einen Nullwert zurück, der ignoriert werden kann. Alternativ können Sie die Funktion getinstance.

Beispiele

Case 1: Transformation 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>
Case 2: Running a Script
// 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

Erklärung

int AutoNumber()

Syntax

AutoNumber()

Beschreibung

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

Warnung

Diese Methode ist veraltet und wird möglicherweise in einer zukünftigen Version von Jitterbit entfernt. Verwenden Sie entweder die TargetInstanceCount oder SourceInstanceCount Funktionen statt. Die TargetInstanceCount Funktion ist äquivalent zu dieser Funktion.

Beispiele

Nehmen wir an, dass eine Zielarchitektur zwei Datensätze der obersten Ebene hat: PO1 und PO2:

  • PO1 ist ein übergeordneter Datensatz von drei untergeordneten Datensätzen: PO1_record1, PO1_record2 und PO1_record3.
  • PO2 ist ein übergeordneter Datensatz von zwei untergeordneten Datensätzen: PO2_record1 und PO2_record2.

Wenn der AutoNumber Funktion wird aufgerufen:

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

CancelOperation

Erklärung

void CancelOperation(string operationInstanceGUID)

Syntax

CancelOperation(<operationInstanceGUID>)

Erforderliche Parameter

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

Beschreibung

Bricht eine bestimmte Operation ab, die durch eine Operation-GUID angegeben ist.

Wie im folgenden Beispiel gezeigt, rufen Sie die GetOperationQueue Funktion zum Abrufen von Instanzen laufender Operationen. Die GUID der Operation befindet sich am Index 4 der von der GetOperationQueue Funktion. Siehe die GetOperationQueue Funktion für Details.

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("Cancelling operation instance: " + op_inst);
  CancelOperation(op_inst);
  i++;
);

CancelOperationChain

Erklärung

void CancelOperationChain(string message)

Syntax

CancelOperationChain(<message>)

Erforderliche Parameter

  • message: Wenn es sich um eine nicht leere Zeichenfolge handelt, wird sie als Warnmeldung im Operation protokolliert.

Beschreibung

Wenn der aktuelle Operation erfolgreiche oder fehlgeschlagene Vorgänge enthält, führt der Aufruf dieser Methode dazu, dass diese Vorgänge abgebrochen werden. Alle durch eine Bedingung verknüpften Vorgänge werden ebenfalls abgebrochen. Alle Scripts im aktuellen Operation werden jedoch abgeschlossen.

Dies kann nützlich sein, wenn ein Operation in einer Schleife ausgeführt wird und die Bedingung zum Beenden der Schleife erreicht wurde.

Beispiele

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

Eval

Erklärung

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 ist ungültig

Beschreibung

Wertet das erste Argument aus; wenn es gültig ist, wird das Ergebnis als Zeichenfolge zurückgegeben. Andernfalls wird der Standardwert ausgewertet und das Ergebnis als Zeichenfolge 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 zu verwenden mit RunOperation da es nach der Ausführung der Operation immer ein gültiges Ergebnis zurückgibt, es sei denn, der Operation selbst ist fehlerhaft oder ungültig. Um fehlgeschlagene Operationen zu erfassen, verwenden Sie stattdessen Funktionen wie If Und GetLastError kann verwendet werden, um ähnliche Funktionalität zu erreichen. Weitere Informationen finden Sie im Scripting in Bewährte Methoden 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

Erklärung

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 Variable, entweder ein Skalar oder ein Array oder ein Array

Optionale Parameter

  • index1,... indexN: Indizes, die das gewünschte Element im Array oder einem Unterarray angeben

Beschreibung

Gibt den Wert einer globalen Variable mit einem bestimmten Namen zurück. Wenn ein Array oder der Name einer globalen Variable, die ein Array ist, übergeben wird, wird ein Element des Arrays zurückgegeben. Siehe auch das ergänzende Set Funktion.

Wenn das erste Argument entweder ein Array oder der Name einer globalen Variable ist, die ein Array ist, ruft die Funktion ein bestimmtes Element anhand seines Indexes (oder Indizes für ein mehrdimensionales Array wie einen Datensatz) unter Verwendung der verbleibenden Argumente ab.

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

Der Versuch, ein Element hinter dem Ende des Arrays abzurufen, 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

Erklärung

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 ausgewertet, wenn jeder Datenblock verarbeitet wird. Eine alternative Methode ist die Verwendung von SCOPE_CHUNK Syntax der Set Funktion. Siehe auch die SetChunkDataElement Und Set Funktionen.

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

Erklärung

string GetHostByIP(string ipAddress)

Syntax

GetHostByIP(<ipAddress>)

Erforderliche Parameter

  • ipAddress: Eine Zeichenfolge mit einer IP-Adresse

Beschreibung

Löst eine IP-Adresse in einen Host auf.

Beispiele

GetHostByIP("127.0.0.1");

GetInputString

Erklärung

string GetInputString(type arg)

Syntax

GetInputString(<arg>)

Erforderliche Parameter

  • arg: Eine globale Variable

Beschreibung

Gibt die unformatierte Eingabe als Zeichenfolge zurück, wenn eine globale Quellvariable angegeben ist.

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 für ein Objekt aufgerufen wird, das keine globale Quellvariable ist, wird eine leere Zeichenfolge 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

Erklärung

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 der angegebene Operation ausgeführt wurde. Der Rückgabewert ist ein Datum (das Datum und Uhrzeit enthält). Nur mit einem einzelnen Agenten zu verwenden.

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

Das zurückgegebene Datum ist in UTC (ohne eine bestimmte Zeitzone). Verwenden Sie die ConvertTimeZone Funktion zur Umrechnung in eine Ortszeit, wie im Beispiel unten zu sehen.

Warnung

Diese Funktion darf nur mit einem einzigen privaten Agenten verwendet werden, da sie bei der Verwendung von Cloud-Agenten oder mehreren privaten Agenten nicht genau ist.

Beispiele

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

GetName

Erklärung

string GetName(type arg)

Syntax

GetName(<arg>)

Erforderliche Parameter

  • arg: Eine Variable oder globale Variable

Beschreibung

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

Bestimmte Funktionen geben ein benanntes globales Variablenarray zurück. Wenn 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

Erklärung

array GetOperationQueue([string operationTag])

Syntax

GetOperationQueue([<operationTag>])

Optionale Parameter

  • operationTag: Eine Operation im aktuellen Projekt, andernfalls werden alle Operationen im aktuellen Projekt verwendet

Beschreibung

Gibt den Inhalt der Operation als Array zurück. Es werden nur Operationen zurückgegeben, für die der aktuelle Benutzer Lesezugriff hat. Nur mit einem einzelnen Agenten zu verwenden.

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

  • 0: Vorgangs-GUID (Zeichenfolge)
  • 1: Die IsExecuting Flagge (Boolesch)
  • 2: Zeitstempel (Datum) für den Zeitpunkt, zu dem der Operation zur Warteschlange hinzugefügt wurde
  • 3: Sekunden im aktuellen Status (Ganzzahl)
  • 4: GUID der Operationsinstanz (Zeichenfolge)
  • 5: Operationsname (Zeichenfolge)

Das Operation-Argument ist optional. Wenn das Operation-Argument vorhanden ist, werden nur Warteschlangeneinträge für diese bestimmte Operation zurückgegeben. Siehe die Anweisungen zum Einfügen von Projektelementen.

Warnung

Diese Funktion darf nur mit einem einzigen privaten Agenten verwendet werden, da sie bei der Verwendung von Cloud-Agenten oder mehreren privaten Agenten 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

Erklärung

string GetServerName()

Syntax

GetServerName()

Beschreibung

Gibt den Namen der Maschine zurück, auf der der Agent ausgeführt wird.

Beispiele

GetServerName();
// Returns the server name

GUID

Erklärung

string GUID()

Syntax

GUID()

Beschreibung

Gibt eine GUID-Zeichenfolge zurück (eine global 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();
// Returns a string such as "c056f89d-1f45-458e-8b25-9ecf2ed10842"

IfEmpty

Erklärung

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 Zeichenfolge ist
  • default: Standardwert, der zurückgegeben wird, wenn arg null oder eine leere Zeichenfolge ist

Beschreibung

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

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

Siehe auch die IsNull Funktion.

Beispiele

// If the variable "myDate" is null or empty,
// returns the current date, otherwise returns "myDate"
result = IfEmpty(myDate, Now());

IfNull

Erklärung

type IfNull(type arg, type default)

Syntax

IfNull(<arg>, <default>)

Erforderliche Parameter

  • arg: Ein Argument, das ausgewertet werden soll, um festzustellen, ob es null ist
  • default: Standardwert, der zurückgegeben wird, wenn das Argument 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 ein IfFunktionsanweisung:

If(IsNull(arg), default, arg)

Siehe auch die IsNull Und IfEmpty Funktionen.

Beispiele

// If the variable "myDate" is null,
// returns the current date, otherwise returns "myDate"
result = IfNull(myDate, Now());

InitCounter

Erklärung

long InitCounter(type counter[, long initialValue])

Syntax

InitCounter(<counter>, <initialValue>)

Erforderliche Parameter

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

Optionale Parameter

  • initialValue: Der Anfangswert, auf den der Zähler gesetzt wird; Standard ist 0

Beschreibung

Initialisiert einen Zähler und übergibt optional einen Anfangswert. Nur mit einem einzelnen Agenten zu verwenden.

Wenn kein Anfangswert festgelegt ist, wird der Anfangswert auf 0 gesetzt. Das erste Argument ist entweder der Name einer Variablen oder eine Referenz auf eine Variable (siehe Beispiele). Diese Methode muss nur in einfädigen Kontexten aufgerufen werden. Der Aufruf dieser Methode in einem mehrfädigen Kontext führt zu einem Fehler. Siehe auch die Überlegungen zum chunking.

Warnung

Diese Funktion darf nur mit einem einzelnen Agent verwendet werden, da sie im Kontext mehrerer Agent 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

Erklärung

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

Syntax

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

Erforderliche Parameter

  • x: Ein Element, das auf Übereinstimmung verglichen werden soll

Optionale Parameter

  • arg1...argN: Eine Reihe von Argumenten, die x ist zu vergleichen mit

Beschreibung

Überprüft auf x in der Liste der Argumente (arg1 durch argN). Wenn eine Übereinstimmung (nach Wert) gefunden wird, gibt diese Funktion eine Ganzzahl zurück, die die Position der Übereinstimmung in der Liste darstellt, wobei die erste Position in der Liste durch die Ganzzahl 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 übereinstimmenden Wert enthält oder nur ein einziges Argument angegeben wird.

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

IsInteger

Erklärung

bool IsInteger(type x)

Syntax

IsInteger(<x>)

Erforderliche Parameter

  • x: Ein auszuwertendes 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

Erklärung

bool IsNull(type x)

Syntax

IsNull(<x>)

Erforderliche Parameter

  • x: Ein auszuwertendes Element

Beschreibung

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

Siehe auch die IfNull Und IfEmpty Funktionen für Tastenkombinationen, die anstelle dieser Funktion verwendet werden können.

Beispiele

// If the "POHeader.Vendor_Code" is null,
// it returns a string "VC", otherwise it returns the code
If(IsNull(POHeader.Vendor_Code), POHeader.Vendor_Code, "VC")

IsValid

Erklärung

bool IsValid(type x)

Syntax

IsValid(<x>)

Erforderliche Parameter

  • x: Ein auszuwertendes Element

Beschreibung

Gibt „true“ zurück, wenn die Auswertung des Arguments fehlerfrei verläuft.

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

Erklärung

int Length(type x)

Syntax

Length(<x>)

Erforderliche Parameter

  • x: Ein auszuwertendes Element

Beschreibung

Gibt die Länge des Eingabearguments zurück.

Das Verhalten dieser Methode hängt vom Argumenttyp ab:

  • String: Die Länge des Strings wird zurückgegeben.
  • Array: Die Anzahl der Elemente im Array wird zurückgegeben.
  • Binärdaten: Die Anzahl der Bytes wird zurückgegeben.
  • Bei allen anderen Typen wird versucht, das Argument in einen String umzuwandeln, und die Länge des resultierenden Strings wird zurückgegeben.
  • Wenn das Argument nicht in einen String umgewandelt werden kann oder das Argument null oder von einem unbekannten Typ ist, 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

Erklärung

null Null()

Syntax

Null()

Beschreibung

Gibt null zurück.

Beispiele

Mit dieser Funktion kann ein Nullwert in bestimmte Spalten einer Datenbank eingefügt werden.

Random

Erklärung

int Random(int min, int max)

Syntax

Random(<min>, <max>)

Erforderliche Parameter

  • min: Ganzzahliger Wert der minimalen Zufallszahl
  • max: Ganzzahliger Wert der maximalen Zufallszahl

Beschreibung

Generiert eine zufällige Ganzzahl zwischen und einschließlich der angegebenen Mindest- und Höchstwerte. Siehe auch die RandomString Funktion.

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

Erklärung

string RandomString(int len[, string chars])

Syntax

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

Erforderliche Parameter

  • len: Länge der resultierenden Zufallszeichenfolge

Optionale Parameter

  • chars: Zeichenfolge mit Zeichen, die in der resultierenden Zufallszeichenfolge verwendet werden

Beschreibung

Generiert eine zufällige Zeichenfolge der angegebenen Länge. Standardmäßig verwendet die Funktion alphanumerische Zeichen; den Satz, der a-z, A-Z und 0-9 umfasst. Siehe auch die RandomFunktion.

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

Erklärung

array ReadArrayString(string arrayString[, string type])

Syntax

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

Erforderliche Parameter

  • arrayString: Eine String-Darstellung eines Arrays

Optionale Parameter

  • type: Ein String, der den Typ beschreibt, den der Array-String darstellt, wie zum Beispiel "string", "int", "double", "bool"

Beschreibung

Liest einen String, der ein ein- oder mehrdimensionales Array darstellt.

Das Array wird dargestellt, indem Array-Elemente mit einem Paar geschweifter Klammern ({ Und }). Jedes Array-Element kann ein Array oder ein Skalarelement sein, getrennt durch Komma (,). Die Elemente in einem Array müssen entweder alle Skalare oder alle Arrays sein.

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

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

Erklärung

int RecordCount()

Syntax

RecordCount()

Beschreibung

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

Wenn sie in einer Bedingung aufgerufen wird, gibt sie die Instanznummer der letzten generierten Instanz zurück. Wenn diese Methode zum ersten Mal 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 jedes Mal auf 0 zurückgesetzt, wenn eine neue Schleife gestartet wird.

Hinweis

Diese Methode ist veraltet und wird möglicherweise in einer zukünftigen Version entfernt.

Verwenden Sie SourceInstanceCount() oder TargetInstanceCount() stattdessen TargetInstanceCount() ist gleichwertig mit dieser Methode.

Beispiele

RecordCount gibt beim Generieren der fünften Zeile in einem Zielschleifenknoten einen Wert von 5 zurück.

ReRunOperation

Erklärung

bool ReRunOperation([bool runSynchronously])

Syntax

ReRunOperation([<runSynchronously>])

Optionale Parameter

  • runSynchronously: Flag, um anzugeben, ob der Operation synchron (Standard) oder asynchron ausgeführt werden soll

Beschreibung

Führt den aktuellen Operation erneut aus.

Das Verhalten dieser Methode in Bezug auf Rückgabewert und globale Variablen ist identisch mit dem der RunOperation Funktion. In dieser Funktion finden Sie eine Beschreibung, wie sich die synchrone oder asynchrone erneute Ausführung des Operation auf globale Variablen auswirkt.

Warnung

Da es sich um einen rekursiven Aufruf handelt, ist es wichtig, dass eine Stoppbedingung vorliegt, höchstwahrscheinlich einschließlich der CancelOperation Funktion. Andernfalls landen Sie in einer Endlosschleife von Operation.

Beispiele

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

RunOperation

Erklärung

bool RunOperation(string operationId[, bool runSynchronously])

Syntax

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

Erforderliche Parameter

Optionale Parameter

  • runSynchronously: Flag, um anzugeben, ob der Operation synchron (Standard) oder asynchron ausgeführt werden soll

Beschreibung

Führt einen Operation synchron oder asynchron aus, wobei „synchron“ die Standardeinstellung ist.

Synchron laufen

Wenn run_synchronously=true Die aufgerufene Operation und alle erfolgreichen/fehlgeschlagenen Operationen werden innerhalb der aktuellen Operation ausgeführt und die aktuelle Operation wartet, bis die gesamte Operation abgeschlossen ist. Alle globalen Variablen werden von der aufgerufenen Operation übernommen und alle Änderungen an den globalen Variablen werden in der aktuellen Operation widergespiegelt. Dies ist das Standardverhalten, wenn das zweite Argument nicht angegeben wird. Gibt zurück false wenn die aufgerufene Operation zu einem Fehler geführt hat.

Wenn run_synchronously=false Diese Methode stellt die aufgerufene Operation in die Jitterbit-Verarbeitungswarteschlange, um sie zu verarbeiten, sobald alle vor ihr liegenden Operationen verarbeitet wurden. Alle globalen Variablen werden von der aufgerufenen Operation übernommen, aber Änderungen an diesen Variablen werden in der aktuellen Operation nicht berücksichtigt. Die aktuelle Operation wird unabhängig von der aufgerufenen Operation weiter ausgeführt und es gibt keine Garantie dafür, welche Operation zuerst abgeschlossen wird. Gibt zurück false wenn die aufgerufene Operation nicht zur Warteschlange hinzugefügt werden konnte. Im asynchronen Modus werden diese globalen Variablen der aufgerufenen Operation nach Wert und nicht nach Referenz übergeben. Dadurch wird sichergestellt, dass sich Änderungen an den Variablen nicht in anderen Operation widerspiegeln.

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

Beispiele

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

RunOperationFromProject

Erklärung

bool RunOperationFromProject(string operationId[, bool runSynchronously])

Syntax

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

Erforderliche Parameter

  • operationId: Eine Operation ID in einem anderen Projekt, das in derselben Umfeld wie das aktuelle Projekt bereitgestellt wird.

Optionale Parameter

  • runSynchronously: Flag, um anzugeben, ob der Operation synchron (Standard) oder asynchron ausgeführt werden soll

Beschreibung

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

Abrufen der Operation-ID

Um die Operation-ID der Operation im anderen Projekt (als Remote-Projekt bezeichnet) zu erhalten, müssen Sie zuerst das Remote-Projekt in derselben Umfeld wie das aktuelle Projekt einsetzen.

Dann verwenden wir den Business Analyst-Modus des Design Studio, fügen Sie diese Funktion in Ihr Script ein. Der angezeigte Assistent fordert Sie auf, das Projekt anzugeben, das Sie verwenden möchten, und ermöglicht Ihnen dann, eine der aktuell bereitgestellten Operationen auszuwählen. Anschließend wird ein geeigneter Pfad erstellt und als ID eingefügt. Siehe auch die Anweisungen zum Einfügen von Projektelementen.

Globale Variablen

Im Remoteprojekt festgelegte globale Variablen können übernommen werden, je nachdem, ob die Operation synchron ausgeführt wird oder nicht. Wie im nächsten Abschnitt beschrieben, werden globale Variablen bei synchroner Ausführung von der aufgerufenen Operation übernommen und alle Änderungen an den globalen Variablen werden in der aktuellen Operation widergespiegelt. Dadurch kann ein Remoteprojekt mit der aufrufenden Operation kommunizieren.

Im asynchronen Modus werden diese globalen Variablen als Wert und nicht als Referenz an die Remote Operation übergeben. Dadurch wird sichergestellt, dass sich Änderungen an den Variablen nicht auf die aktuelle Operation auswirken.

Synchron laufen

Für runSynchronously=true, die Operation und alle erfolgreichen oder fehlgeschlagenen Operationen werden innerhalb der aktuellen Operation ausgeführt und die aktuelle Operation wartet, bis die gesamte aufgerufene Operation abgeschlossen ist. Alle globalen Variablen werden von der aufgerufenen Operation übernommen und alle Änderungen an den globalen Variablen werden in der aktuellen Operation widergespiegelt. Dies ist das Standardverhalten, wenn das zweite Argument nicht angegeben wird. Gibt zurück false wenn die aufgerufene Operation zu einem Fehler geführt hat.

Für runSynchronously=false, diese Methode stellt eine Operation in die Jitterbit-Verarbeitungswarteschlange, die verarbeitet werden soll, sobald alle Operationen vor ihr verarbeitet wurden. Alle globalen Variablen werden von der aufgerufenen Operation übernommen, aber Änderungen an diesen Variablen werden sich nicht in der aktuellen Operation widerspiegeln. Die aktuelle Operation wird unabhängig von der aufgerufenen Operation weiter ausgeführt und es gibt keine Garantie dafür, welche Operation zuerst abgeschlossen wird. Gibt zurück false wenn der Operation nicht zur Warteschlange hinzugefügt werden konnte.

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

Notiz

Die Operation im externen Projekt muss bereits aus diesem Projekt bereitgestellt worden sein, um in einem RunOperationFromProject Funktion in Ihrem aktuellen Projekt.

Beispiele

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

RunPlugin

Erklärung

bool RunPlugin(string pluginId)

Syntax

RunPlugin(<pluginId>)

Erforderliche Parameter

Beschreibung

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

In der Design Studio Benutzeroberfläche werden nur die Plug-Ins angezeigt, die in einem Script ausgeführt werden können. Plug-Ins, die auf Quellen, Zielen und Webdienstaufrufen ausgeführt werden, sind ausgeblendet. Weitere Informationen finden Sie in den Anweisungen zum Einfügen von Projektelementen.

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

Beispiele

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

RunScript

Erklärung

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 Script fort. Diese Methode gibt bei Erfolg den Rückgabewert des aufgerufenen Script als Zeichenfolge zurück.

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

Wenn umfassende Namen bevorzugt werden, ArgumentList Funktion kann verwendet werden, um eine Liste lokaler Variablennamen auf die Liste der_1, _2 ...Siehe die ArgumentList Funktion für Beispiele.

Warnung

Der Rückgabetyp ist ein string. Alle anderen Typen werden in ihre String-Äquivalente umgewandelt. Nullwerte werden als leere string. Arrays werden zurückgegeben als string; wenn sie skalare Werte enthalten, können sie mit dem ReadArrayString Funktion. (Ein mehrdimensionales Array kann auch umgewandelt werden durch ReadArrayString.)

Warnung

Wenn das aufgerufene Script ein JavaScript-Script ist, werden ihm keine Argumente übergeben. Alle im Aufruf des RunScript Funktion wird im JavaScript Script nicht deklariert oder ist nicht verfügbar. Die einzige Methode zum Übergeben von Informationen an ein JavaScript Script ist die Verwendung globaler Variablen. Dabei handelt es sich um Variablen, denen ein $ Symbol. Diese Werte können im JavaScript-Script verfügbar gemacht werden, indem man Jitterbit.GetVar Funktion.

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

Erklärung

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 Variable, entweder ein Skalar oder ein Array
  • value: Ein Wert, der der globalen Variable zugewiesen werden soll

Optionale Parameter

  • index1...indexN: Index oder Indizes, die zur Beschreibung der Position eines Elements verwendet werden, wenn ein Element in einem Array festgelegt wird

Beschreibung

Setzt den Wert einer globalen Variable mit einem bestimmten Namen auf einen Wert und gibt den Wert zurück. Siehe auch die ergänzende Get Funktion.

Erste Form: Skalare

In der ersten Form wird ein Stringname einer globalen Variable mit dem angegebenen Namen und Wert festgelegt.

(Obwohl eine *lokale* Variable als Referenz übergeben werden kann, ist dies nicht ratsam, da die Ergebnisse inkonsistent sein können. Lokale Variablen sind nicht für die Festlegung über diesen Mechanismus vorgesehen.)

Siehe die Beispiele unten.

Zweite und dritte Form: Arrays

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

Wenn das erste Argument ein Array ist (oder der Name einer globalen Variable, die ein Array ist), können Sie den Wert eines Array-Elements festlegen, indem Sie dessen Index (oder Indizes für mehrdimensionale Arrays) als zusätzliche Argumente angeben.

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

Arrays sind nullindiziert; das erste Element steht am Index 0 und das letzte Element (des Arrays $array) steht am Index [Length($array)-1]. Arrays können entweder mit dem Array oder ReadArrayString Funktionen.

Der Versuch, ein Element über das Ende des Arrays hinaus zu setzen, führt dazu, dass dem Array nach Bedarf zusätzliche Nullwertelemente hinzugefügt werden, um das Array auf die richtige Größe aufzufüllen.

SCOPE_CHUNK-Präfixsyntax

Einstellen eines Variablennamens mit dem Präfix SCOPE_CHUNK erstellt eine globale Variable, die ausgewertet wird, wenn jeder Datenblock verarbeitet wird. Dies kann bei der Erstellung globaler Variablen verwendet werden, deren Wert für einen bestimmten Block eindeutig ist, und kann diesen Block dann identifizieren, wenn ein Dateiname oder Datensatz auf einem Ziel erstellt wird. Siehe auch die GetChunkDataElement Und SetChunkDataElement fungiert als alternative Methode, die die Verwendung anderer Variablennamen ermöglicht.

Achtung

Die SCOPE_CHUNK Die Präfixsyntax wird bei Vorgängen mit einer Transformation, die bedingtes Mapping verwendet, nicht unterstützt.

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

Erklärung

type SetChunkDataElement(string name, type value)

Syntax

SetChunkDataElement(<name>, <value>)

Erforderliche Parameter

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

Beschreibung

Legt den Wert einer angegebenen Chunk-Variable fest und gibt den Wert zurück. Eine Chunk-Variable wird ausgewertet, wenn jeder Datenblock verarbeitet wird. Eine alternative Methode ist die Verwendung von SCOPE_CHUNK Syntax der Set Funktion.

Siehe auch die GetChunkDataElement Und Set Funktionen.

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

Erklärung

void Sleep(int seconds)

Syntax

Sleep(<seconds>)

Erforderliche Parameter

  • seconds: Die ganzzahlige Anzahl von Sekunden, um die der aktuelle Operation unterbrochen werden soll

Beschreibung

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

Beispiele

// Sleeps the current operation for 1 minute
Sleep(60);

SourceInstanceCount

Erklärung

int SourceInstanceCount()

Syntax

SourceInstanceCount()

Beschreibung

Gibt die Instanzanzahl des aktuellsten Generators zurück.

Der Wert ist unabhängig davon, ob die Zielinstanz generiert wurde oder nicht; beim Aufruf in einem Script oder einem Script wird der gleiche Wert zurückgegeben.

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

Siehe auch die TargetInstanceCount Funktion.

Beispiele

// Returns the instance count of the most recent generator
currentSourceInstance = SourceInstanceCount();

TargetInstanceCount

Erklärung

int TargetInstanceCount()

Syntax

TargetInstanceCount()

Beschreibung

Gibt die Instanzanzahl eines generierenden Zielschleifenknotens zurück.

Wenn es in einer Bedingung aufgerufen wird, gibt es die Anzahl der Zielinstanzen zurück, die bisher für den aktuellen Schleifenknoten generiert wurden. Die von dieser Methode zurückgegebene Zahl ist um eins geringer, wenn sie in einer Bedingung aufgerufen wird, da in einer Bedingung nicht bekannt ist, ob die aktuelle Zielinstanz generiert wird oder nicht.

Wenn die erste Zielinstanz generiert wird, wird 1 zurückgegeben, dann 2 und so weiter. Wenn es in einer Bedingung aufgerufen wird, ist die Sequenz stattdessen 0, 1 und so weiter.

Siehe auch die SourceInstanceCount Funktion.

Beispiele

// Returns the instance count of the most recent target generator
currentTargetInstance = TargetInstanceCount();

WaitForOperation

Erklärung

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

Syntax

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

Erforderliche Parameter

  • operationID: Eine Operation im aktuellen Projekt

Optionale Parameter

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

Beschreibung

Stoppt die Ausführung eines Script oder Mappings, bis die Verarbeitung aller Instanzen der angegebenen Operation, die sich derzeit in der Operation befinden, abgeschlossen ist. Diese Methode ist nützlich, wenn Sie der Warteschlange viele Instanzen einer Operation zur parallelen Verarbeitung hinzufügen und dann warten möchten, bis alle Instanzen abgeschlossen sind.

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

Notiz:

  • Für jede Operation (identifiziert durch ihre operationID), auf die gewartet werden soll, muss diese Methode aufgerufen werden.
  • Operationsinstanzen, die hinzugefügt werden (durch Aufrufe der RunOperation Auf die Ausführung der Funktion) nach diesem Aufruf wird nicht gewartet.
  • Der aktuelle Benutzer muss für den Operation, auf den gewartet wird, Lesezugriff haben.

Das zweite (optionale) Argument ist das Timeout in Sekunden. Das Standard-Timeout beträgt 1 Stunde (3600 Sekunden) und wenn nicht alle Operationen innerhalb dieser Zeit abgeschlossen sind, wird ein Fehler ausgegeben. Wenn Sie erwarten, dass Ihre Operationen unter normalen Bedingungen länger laufen, müssen Sie das Timeout erhöhen. Sie können diesen Fehler mit dem Eval Funktion.

Das dritte (optionale) Argument ist das Abfrageintervall in Sekunden. Das Abfrageintervall ist die Zeit zwischen den Warteschlangenprüfungen der Operation. Das Standardabfrageintervall beträgt 10 Sekunden. Der Standardwert hat keine nennenswerten Auswirkungen auf die Leistung, aber wenn Ihre Operationen voraussichtlich sehr lange laufen, sollten Sie 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>");