Allgemeine Funktionen im Jitterbit Design Studio
Allgemeine Funktionen sind solche Funktionen, die nicht spezifisch für eine bestimmte Aktivität sind, sondern 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 werden soll
Optionale Parameter
var2,... varN
: Zusätzliche Variablen, die aus der Argumentliste der aufrufenden Instanz initialisiert werden sollen
Beschreibung
Diese Funktion initialisiert eine Menge lokaler Variablen aus ihrer Argumentliste.
Die Konstruktion der lokalen Variablen hängt davon ab, welcher dieser Fälle zutrifft:
- Fall 1: Transformationszuordnungen Wenn der Funktionsaufruf in der Zuordnung eines Zielfeldes 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 FunktionSetInstances()
gegeben ist. - Fall 2: Ausführen 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. Diese Variablen können auch über den Index angesprochen werden, wie_1
,_2
...
Ein Nullwert wird von dieser Funktion zurückgegeben und kann ignoriert werden. Als Alternative siehe die Funktion getinstance
.
Beispiele
// 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>
// 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 wurde als veraltet markiert und könnte in einer zukünftigen Version von Jitterbit entfernt werden. Verwenden Sie stattdessen entweder die Funktionen TargetInstanceCount
oder SourceInstanceCount
. Die Funktion TargetInstanceCount
ist äquivalent zu dieser Funktion.
Beispiele
Angenommen, eine Zielarchitektur hat zwei oberste Datensätze: PO1 und PO2:
- PO1 ist ein Elternteil von drei Kinddatensätzen: PO1_record1, PO1_record2 und PO1_record3.
- PO2 ist ein Elternteil von zwei Kinddatensätzen: PO2_record1 und PO2_record2.
Wenn die Funktion AutoNumber
aufgerufen wird:
AutoNumber
, die auf der Elternebene aufgerufen wird, gibt 1 bei PO1 und 2 bei PO2 zurück.AutoNumber
auf der Kindebene von PO1 gibt 1 bei PO1_record1, 2 bei PO1_record2 und 3 bei PO1_record3 zurück, da PO1 3 Kinddatensätze hat.
CancelOperation
Deklaration
void CancelOperation(string operationInstanceGUID)
Syntax
CancelOperation(<operationInstanceGUID>)
Erforderliche Parameter
operationInstanceGUID
: Die GUID der Betriebsinstanz, die abgebrochen werden soll
Beschreibung
Bricht eine bestimmte Betriebsinstanz ab, die durch eine Betriebsinstanz-GUID angegeben ist.
Wie im folgenden Beispiel gezeigt, rufen Sie die Funktion GetOperationQueue
auf, um Instanzen von laufenden Operationen abzurufen. Die Betriebsinstanz-GUID befindet sich an Index 4 der von der Funktion GetOperationQueue
zurückgegebenen Unterarrays. Siehe die Funktion GetOperationQueue
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
Deklaration
void CancelOperationChain(string message)
Syntax
CancelOperationChain(<message>)
Erforderliche Parameter
message
: Wenn es sich um eine nicht leere Zeichenfolge handelt, wird sie als Warnmeldung im Betriebsprotokoll protokolliert.
Beschreibung
Wenn die aktuelle Operation entweder Erfolgs- oder Fehlermeldungen hat, führt der Aufruf dieser Methode dazu, dass diese Operationen abgebrochen werden. Alle durch eine Bedingung verknüpften Operationen werden ebenfalls abgebrochen. Skripte in der aktuellen Operation werden jedoch abgeschlossen.
Dies kann nützlich sein, wenn eine Operation in einer Schleife ausgeführt wird und die Bedingung zum Stoppen der Schleife erreicht wurde.
Beispiele
CancelOperationChain("Die Erfolgsoperation muss nicht ausgeführt werden.");
Eval
Deklaration
string Eval(type expToEvaluate, type defaultResult)
Syntax
Eval(<expToEvaluate>, <defaultResult>)
Erforderliche Parameter
expToEvaluate
: Ein Ausdruck, der ausgewertet werden soll; wenn gültig, wird das Ergebnis zurückgegebendefaultResult
: Standardergebnis, das ausgewertet und zurückgegeben wird, wennexpToEvaluate
nicht gültig ist
Beschreibung
Bewertet das erste Argument; wenn gültig, wird das Ergebnis als Zeichenfolge zurückgegeben. Andernfalls wird der Standardwert ausgewertet und dessen Ergebnisse werden 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 mit RunOperation
zu verwenden, da sie immer ein gültiges Ergebnis zurückgibt, nachdem die Operation ausgeführt wurde, es sei denn, der Aufruf der Operation selbst ist fehlerhaft oder ungültig. Stattdessen können Funktionen wie If
und GetLastError
verwendet werden, um ähnliche Funktionalitäten zu erreichen. Weitere Informationen finden Sie im Abschnitt Scripting in den 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 einem Unter-Array angeben
Beschreibung
Gibt den Wert einer globalen Variablen mit einem bestimmten Namen zurück. Wenn ein Array oder der Name einer globalen Variablen, die ein Array ist, übergeben wird, gibt es ein Element des Arrays zurück. Siehe auch die ergänzende Set
-Funktion.
Wenn das erste Argument entweder ein Array oder der Name einer globalen Variablen ist, die ein Array ist, ruft die Funktion ein bestimmtes Element anhand seines Index (oder Indizes für ein mehrdimensionales Array wie ein Datensatz) unter Verwendung der verbleibenden Argumente ab.
Arrays sind nullbasiert; das erste Element befindet sich an Index 0 und das letzte Element (des Arrays $array
) befindet sich an Index [Length($array)-1]
.
Der Versuch, ein Element über das Ende des Arrays hinaus 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
Deklaration
type GetChunkDataElement(string name)
Syntax
GetChunkDataElement(<name>)
Erforderliche Parameter
name
: Der Name der Chunk-Variablen
Beschreibung
Gibt den Wert der Chunk-Variablen mit einem bestimmten Namen zurück. Eine Chunk-Variable wird ausgewertet, während jeder Chunk von Daten verarbeitet wird. 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 in einen Hostnamen auf.
Beispiele
GetHostByIP("127.0.0.1");
GetInputString
Deklaration
string GetInputString(type arg)
Syntax
GetInputString(<arg>)
Erforderliche Parameter
arg
: Eine globale Variable
Beschreibung
Gibt den unformatierten Input als String zurück, basierend auf einer Quell-Globalvariable.
Dies ist nützlich, wenn die Standard-Jitterbit-Darstellung eines Datentyps (wie ein Datum oder Double) nicht geeignet ist und der "rohe" Input erforderlich ist. Wenn diese Methode auf ein Objekt aufgerufen wird, das keine Quell-Globalvariable ist, wird ein leerer String zurückgegeben.
Beispiele
// Der Input ist zu groß für ein Jitterbit Double
// gebe stattdessen den rohen Input zurück
$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 Uhrzeit zurück, zu der die angegebene Operation ausgeführt wurde. Der Rückgabewert ist ein Datum (das Datum und Uhrzeit umfasst). 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 spezifische Zeitzone). Verwenden Sie die Funktion ConvertTimeZone
, um in eine lokale Zeit zu konvertieren, wie im folgenden Beispiel gezeigt.
Warnung
Diese Funktion darf nur mit einem einzelnen 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>");
// Konvertierung in eine lokale Zeitzone
$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 Array globaler Variablen zurück; wenn definiert, ruft diese Funktion den Namen des Wertes 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
: Eine Operation im aktuellen Projekt; andernfalls werden alle Operationen im aktuellen Projekt verwendet
Beschreibung
Gibt den Inhalt der Operationswarteschlange als Array zurück. Es werden nur Operationen zurückgegeben, für die der aktuelle Benutzer Lesezugriff hat. Nur für einen einzelnen Agenten zu verwenden.
Das Ergebnis wird als Array von Arrays zurückgegeben, mit diesen Elementen in jedem Unter-Array:
- 0: Operation GUID (String)
- 1: Das
IsExecuting
-Flag (Boolean) - 2: Zeitstempel (Datum), wann die Operation zur Warteschlange hinzugefügt wurde
- 3: Sekunden im aktuellen Status (Integer)
- 4: Operation Instanz GUID (String)
- 5: Operationsname (String)
Das Argument operationTag ist optional. Wenn das Argument operationTag vorhanden ist, werden nur Warteschlangeneinträge für diese spezielle Operation zurückgegeben. Siehe die Anweisungen zum Einfügen von Projektelementen.
Warnung
Diese Funktion darf nur mit einem einzelnen 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
Deklaration
string GetServerName()
Syntax
GetServerName()
Beschreibung
Gibt den Namen der Maschine zurück, auf der der Agent läuft.
Beispiele
GetServerName();
// Gibt den Servernamen zurück
GUID
Deklaration
string GUID()
Syntax
GUID()
Beschreibung
Gibt eine GUID-Zeichenfolge zurück (ein global eindeutiger Bezeichner, auch bekannt als universell eindeutiger Bezeichner 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 Zeichenfolge 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 bewertet wird, um zu prüfen, ob es null oder eine leere Zeichenfolge istdefault
: 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 Zeichenfolgenrepräsentation des Arguments eine leere Zeichenfolge 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,
// gibt das aktuelle Datum zurück, andernfalls "myDate"
result = IfEmpty(myDate, Now());
IfNull
Deklaration
type IfNull(type arg, type default)
Syntax
IfNull(<arg>, <default>)
Erforderliche Parameter
arg
: Ein Argument, das bewertet wird, um zu prüfen, ob es null istdefault
: 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 IsNull
- und IfEmpty
Funktionen.
Hinweis
Wenn jitterbit.target.xml.include_nil_attribute
auf true
gesetzt ist, bevor die IfNull
- oder IsNull
-Funktionen aufgerufen werden, bewerten die Funktionen einen leeren String als einen nicht-null Wert, wenn Agent-Versionen 11.43 oder höher verwendet werden.
Beispiele
// Wenn die Variable "myDate" null ist,
// gibt das aktuelle Datum zurück, andernfalls "myDate"
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 Anfangswert, auf den der Zähler gesetzt werden soll; Standard ist 0
Beschreibung
Initialisiert einen Zähler und übergibt optional einen Anfangswert. Soll nur mit einem einzelnen Agenten verwendet werden.
Wenn kein Anfangswert gesetzt ist, wird der Anfangswert auf 0 gesetzt. Das erste Argument ist entweder der Name einer Variablen oder ein Verweis auf eine Variable (siehe die Beispiele). Diese Methode muss nur in einem einheitlichen Kontext aufgerufen werden. Der Aufruf dieser Methode in einem mehrthreadigen Kontext führt zu einem Fehler. Siehe auch die Überlegungen beim Chunking.
Warnung
Diese Funktion darf nur mit einem einzelnen Agenten verwendet werden, da sie in einem Kontext mit mehreren Agenten 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 Übereinstimmung überprüft werden soll
Optionale Parameter
arg1...argN
: Eine Reihe von Argumenten, mit denenx
verglichen werden soll
Beschreibung
Überprüft, ob x
in der Liste der Argumente (arg1
bis argN
) enthalten ist. 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 wenn nur ein einzelnes Argument bereitgestellt wird.
Wichtig
Die Funktion InList
unterstützt mehrere Datentypen, indem sie diese vor der Auswertung implizit in Strings umwandelt. Zum Beispiel:
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 Element, das bewertet werden soll
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 Element, das bewertet werden soll
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 anstelle dieser Funktion verwendet werden können.
Hinweis
Wenn jitterbit.target.xml.include_nil_attribute
upstream der Funktionen IfNull
oder IsNull
auf true
gesetzt ist, wird die Funktion einen leeren String als nicht-null-Wert bewerten, wenn Agent-Versionen 11.43 oder höher verwendet werden.
Beispiele
// Wenn der "POHeader.Vendor_Code" null ist,
// gibt es den String "VC" zurück, andernfalls gibt es den Code zurück
If(IsNull(POHeader.Vendor_Code), POHeader.Vendor_Code, "VC")
IsValid
Deklaration
bool IsValid(type x)
Syntax
IsValid(<x>)
Erforderliche Parameter
x
: Ein Element, das bewertet werden soll
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
Länge
Deklaration
int Länge(type x)
Syntax
Länge(<x>)
Erforderliche Parameter
x
: Ein zu bewertendes 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äre Daten: die Anzahl der Bytes wird zurückgegeben
- Für alle anderen Typen wird versucht, das Argument in einen String zu konvertieren, und die Länge des resultierenden Strings wird zurückgegeben.
- Wenn das Argument nicht in einen String konvertiert werden kann oder das Argument null oder unbekannten Typs 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
Deklaration
null Null()
Syntax
Null()
Beschreibung
Gibt null zurück.
Beispiele
Diese Funktion kann verwendet werden, um einen Nullwert in bestimmte Spalten einer Datenbank einzufügen.
Zufällig
Deklaration
int Zufällig(int min, int max)
Syntax
Zufällig(<min>, <max>)
Erforderliche Parameter
min
: Ganzzahlwert der minimalen Zufallszahlmax
: Ganzzahlwert der maximalen Zufallszahl
Beschreibung
Generiert eine zufällige ganze Zahl zwischen und einschließlich der angegebenen minimalen und maximalen Werte. 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 des resultierenden zufälligen Strings
Optionale Parameter
chars
: String, der die Zeichen enthält, die im resultierenden zufälligen String verwendet werden
Beschreibung
Generiert einen zufälligen String der angegebenen Länge. Standardmäßig verwendet die Funktion alphanumerische Zeichen; die Menge umfasst a-z, A-Z und 0-9. Siehe auch die Random
Funktion.
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 String-Darstellung eines Arrays
Optionale Parameter
type
: Ein String, der den Typ beschreibt, den der Array-String darstellt, wie"string"
,"int"
,"double"
,"bool"
Beschreibung
Liest einen String, der ein einzelnes oder mehrdimensionales Array darstellt.
Das Array wird dargestellt, indem die Array-Elemente mit einem Paar geschweifter Klammern ({
und }
) umschlossen werden. Jedes Array-Element kann ein Array oder ein skalare Element sein, die durch ein Komma (,
) getrennt sind. Die Elemente in einem Array müssen entweder alle Skalarwerte oder alle Arrays sein.
Der skalare Wert kann durch einen CSV-String dargestellt werden. Doppelte Anführungszeichen zur Umschließung des Strings sind optional, es sei denn, der String enthält Sonderzeichen wie ",{}\n
(doppelte Anführungszeichen, Komma, geschweifte Klammern, Tabs, Zeilenumbrüche oder Wagenrückläufe). Innerhalb des doppelt angeführten Strings muss jedes doppelte Anführungszeichen durch zwei doppelte Anführungszeichen escaped werden. Das optionale zweite Argument dient dazu, den Datentyp des skalaren Wertes anzugeben. Der Typ wird als String angenommen, wenn er nicht ausdrücklich 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
Deklaration
int RecordCount()
Syntax
RecordCount()
Beschreibung
Gibt die Instanznummer der Zielschleife zurück, die derzeit generiert wird.
Wenn es in einer Bedingung aufgerufen wird, gibt es die Instanznummer der letzten generierten Instanz zurück. Beim ersten Aufruf dieser Methode in einer Schleife gibt es 0 (null) zurück, wenn es in einer Bedingung aufgerufen wird; andernfalls gibt es 1 (eins) zurück. Der Zähler wird jedes Mal auf 0 zurückgesetzt, wenn eine neue Schleife gestartet wird.
Hinweis
Diese Methode wurde als veraltet markiert und könnte 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 Zielschleifen-Knoten generiert wird.
ReRunOperation
Deklaration
bool ReRunOperation([bool runSynchronously])
Syntax
ReRunOperation([<runSynchronously>])
Optionale Parameter
runSynchronously
: Flag, um anzugeben, ob die Operation synchron (Standard) oder asynchron ausgeführt werden soll
Beschreibung
Führt die aktuelle Operation erneut aus.
Das Verhalten dieser Methode in Bezug auf Rückgabewert und globale Variablen ist identisch mit der Funktion RunOperation
. Siehe diese Funktion für eine Beschreibung, wie das erneute Ausführen der Operation synchron oder asynchron globale Variablen beeinflusst.
Warnung
Da dies ein rekursiver Aufruf ist, ist es wichtig, dass es eine Stoppbedingung gibt, die höchstwahrscheinlich die Funktion CancelOperation
umfasst. Andernfalls endet man in einer unendlichen Schleife von Operationsaufrufen.
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
operationId
: Eine Betriebs-ID im aktuellen Projekt. Siehe die Anweisungen zum Einfügen von Projektelementen.
Optionale Parameter
runSynchronously
: Flag, um anzugeben, ob die Operation synchron (Standard) oder asynchron ausgeführt werden soll.
Beschreibung
Führt eine Operation synchron oder asynchron aus, wobei synchron die Standardoption ist.
Synchronität
Wenn run_synchronously
true
ist, wird die aufgerufene (untergeordnete) Operation oder der Operationsablauf sequenziell von der aufrufenden (übergeordneten) Operation ausgeführt. Alle globalen Variablen werden von der untergeordneten Operation geerbt, und Änderungen an den globalen Variablen werden in der übergeordneten Operation widergespiegelt. Dies ist das Standardverhalten, wenn das zweite Argument nicht angegeben ist. Gibt false
zurück, wenn die aufgerufene Operation zu einem Fehler geführt hat.
Wenn run_synchronously
false
ist, wird die aufgerufene (untergeordnete) Operation oder der Operationsablauf gleichzeitig mit der aufrufenden (übergeordneten) Operation ausgeführt. Die aufgerufene Operation wird der Jitterbit-Verarbeitungsschlange hinzugefügt, um verarbeitet zu werden, sobald alle vorhergehenden Operationen verarbeitet wurden. Alle globalen Variablen werden von der untergeordneten Operation geerbt, aber Änderungen an diesen Variablen werden nicht in der übergeordneten Operation widergespiegelt. Die übergeordnete Operation wird unabhängig von der untergeordneten Operation weiter ausgeführt, und es gibt keine Garantie, welche Operation zuerst abgeschlossen wird. Gibt false
zurück, wenn die untergeordnete Operation nicht zur Warteschlange hinzugefügt werden konnte. Im asynchronen Modus werden diese globalen Variablen durch Wert und nicht durch Referenz an die aufgerufene Operation übergeben, was sicherstellt, dass Änderungen an den Variablen nicht in anderen Operationen widergespiegelt werden.
Für weitere Informationen siehe Synchronicity, wie im Integration Studio für das Invoke Operation (Beta) tool beschrieben. Dasselbe allgemeine Konzept gilt für das Design Studio.
Hinweis
Mit dieser Funktion aufgerufene Operationen sind verkettet und werden auf demselben Agenten wie die aufrufende Operation ausgeführt, 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.
Beispiele
// Führt die "MyOperation" aus
RunOperation("<TAG>MyProject/Operations/MyOperation</TAG>");
RunOperationFromProject
Deklaration
bool RunOperationFromProject(string operationId[, bool runSynchronously])
Syntax
RunOperationFromProject(<operationId>[, <runSynchronously>])
Erforderliche Parameter
operationId
: Eine Operation-ID in einem anderen Projekt, das in derselben Umgebung wie das aktuelle Projekt bereitgestellt ist.
Optionale Parameter
runSynchronously
: Flag, um anzugeben, ob die Operation synchron (Standard) oder asynchron ausgeführt werden soll.
Beschreibung
Führt eine Operation synchron oder asynchron aus, wobei synchron die Standardoption ist. Diese Funktion, die ab Version 8.22 verfügbar ist, ermöglicht es Ihnen, Operationen aus verschiedenen Projekten auszuführen, die sich in derselben Umgebung wie Ihr aktuelles Projekt befinden und bereits bereitgestellt sind. Diese Funktion funktioniert ähnlich wie die Funktion RunOperation
.
Abrufen der Operation-ID
Um die operationID der Operation im anderen Projekt (das als remote Projekt bezeichnet wird) zu erhalten, müssen Sie zunächst das Remote-Projekt in derselben Umgebung wie das aktuelle Projekt bereitstellen.
Dann fügen Sie mit dem Business Analyst -Modus des Design Studios diese Funktion in Ihr Skript ein. Der angezeigte Assistent fordert Sie auf, das Projekt auszuwählen, das Sie verwenden möchten, und ermöglicht Ihnen dann, eine der derzeit 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
Globale Variablen, die im Remote-Projekt festgelegt sind, können geerbt werden, abhängig davon, ob die Remote-Operation synchron oder nicht ausgeführt wird. Wie im nächsten Abschnitt beschrieben, werden bei synchroner Ausführung globale Variablen von der aufgerufenen Operationenkette geerbt, und alle Änderungen an den globalen Variablen werden in der aktuellen Operation widergespiegelt. Dies ermöglicht es einem Remote-Projekt, an die aufrufende Operation zurückzukommunizieren.
Im asynchronen Modus werden diese globalen Variablen durch Wertübergabe an die Remote-Operation übergeben, anstatt durch Referenz, was sicherstellt, dass Änderungen an den Variablen nicht in der aktuellen Operation widergespiegelt werden.
Synchron ausführen
Für runSynchronously=true
wird die Operation und alle Erfolgs- oder Fehleroperationen innerhalb der aktuellen Operation ausgeführt, und die aktuelle Operation wartet darauf, dass die gesamte aufgerufene Operationenkette abgeschlossen ist. Alle globalen Variablen werden von der aufgerufenen Operationenkette geerbt, und alle Änderungen an den globalen Variablen werden in der aktuellen Operation widergespiegelt. Dies ist das Standardverhalten, wenn das zweite Argument nicht angegeben ist. Gibt false
zurück, wenn die aufgerufene Operation zu einem Fehler geführt hat.
Für runSynchronously=false
wird diese Methode eine Operation in die Jitterbit-Verarbeitungsschlange einfügen, die verarbeitet wird, sobald alle vorhergehenden Operationen verarbeitet wurden. Alle globalen Variablen werden von der aufgerufenen Operationenkette geerbt, aber Änderungen an diesen Variablen werden nicht in der aktuellen Operation widergespiegelt. Die aktuelle Operation wird unabhängig von der aufgerufenen Operationenkette weiterlaufen, und es gibt keine Garantie dafür, welche Operation zuerst abgeschlossen wird. Gibt false
zurück, wenn die Operation nicht zur Warteschlange hinzugefügt werden konnte.
Wenn die Funktion false
zurückgibt, um einen Fehler anzuzeigen, oder wenn die Operation nicht in die Warteschlange gestellt werden konnte, rufen Sie GetLastError
auf, um die Fehlermeldung abzurufen.
Hinweis
Die Operation im externen Projekt muss bereits aus diesem Projekt bereitgestellt worden sein, um in einer RunOperationFromProject
-Funktion in Ihrem aktuellen Projekt verwendet zu werden.
Beispiele
// Führt die "MyOperation" im Standardmodus synchron aus
RunOperationFromProject("<TAG>Project/MyProject/Operations/MyOperation</TAG>");
RunPlugin
Deklaration
bool RunPlugin(string pluginId)
Syntax
RunPlugin(<pluginId>)
Erforderliche Parameter
pluginId
: Eine Plugin-ID im aktuellen Projekt. Siehe die Anweisungen zum Einfügen von Projektelementen.
Beschreibung
Führt ein angegebenes Plugin aus und setzt dann die Ausführung des aktuellen Skripts fort. Wenn mehrere Versionen eines Plugins auf einem Agenten installiert sind, wird die höchste verfügbare Version verwendet.
Im Design Studio UI werden nur die Plugins angezeigt, die innerhalb eines Skripts ausgeführt werden können; Plugins, die auf Quellen, Zielen und Webdienstaufrufen ausgeführt werden, sind ausgeblendet. Siehe die 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ückgab. Rufen Sie GetLastError
auf, um die Fehlermeldung abzurufen.
Beispiele
// Führt das Jitterbit HMACSHA256Generator-Plugin aus
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
scriptId
: Eine Skript-ID im aktuellen Projekt. Siehe die Anweisungen zum Einfügen von Projektelementen.
Optionale Parameter
var1...varN
: Zusätzliche Variablen, die an das aufgerufene Skript übergeben werden
Beschreibung
Führt das angegebene Skript aus und setzt dann die Ausführung des aktuellen Skripts fort. Diese Methode gibt im Erfolgsfall den Rückgabewert des aufgerufenen Skripts als Zeichenfolge zurück.
Eine Liste von Werten kann als Eingangsvariablen an eine RunScript
Funktion übergeben werden. Das Skript erstellt lokale Variablen mit diesen Werten unter Standardnamen wie _1, _2 ...
.
Wenn umfassende Namen bevorzugt werden, kann die Funktion ArgumentList
verwendet werden, um eine Liste von lokalen Variablennamen der Liste von _1, _2 ...
zuzuordnen. Siehe die Funktion ArgumentList
für Beispiele.
Warnung
Der Rückgabewert ist eine string
. Alle anderen Typen werden in ihren entsprechenden String umgewandelt. Nullwerte werden als leere string
zurückgegeben. Arrays werden als string
zurückgegeben; wenn sie skalare Werte enthalten, können sie mit der Funktion ReadArrayString
in ein Array umgewandelt werden. (Ein mehrdimensionales Array kann ebenfalls mit ReadArrayString
umgewandelt werden.)
Warnung
Wenn das aufgerufene Skript ein JavaScript-Skript ist, werden keine Argumente übergeben. Alle Argumente, die im Aufruf der RunScript
Funktion enthalten sind, werden im JavaScript-Skript nicht deklariert oder verfügbar sein. Die einzige Methode, um Informationen in ein JavaScript-Skript zu übergeben, besteht darin, globale Variablen zu verwenden; das sind Variablen, die mit einem $
-Symbol versehen sind. Diese Werte können im JavaScript-Skript mit der Funktion Jitterbit.GetVar
verfügbar gemacht werden.
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 Arrayvalue
: Ein Wert, der der globalen Variablen zugewiesen werden soll
Optionale Parameter
index1...indexN
: Index oder Indizes, die verwendet werden, um die Position eines Elements zu beschreiben, wenn ein Element in einem Array gesetzt wird
Beschreibung
Setzt den Wert einer globalen Variablen mit einem gegebenen 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 String-Name einer globalen Variablen unter Verwendung des angegebenen Namens und Wertes gesetzt.
(Obwohl eine *lokale* Variable als Referenz übergeben werden kann, wird dies nicht empfohlen, da die Ergebnisse inkonsistent sein können. Lokale Variablen sind nicht dafür gedacht, über 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 (oder der Name einer globalen Variablen, die ein Array ist) ist, können Sie den Wert eines Array-Elements festlegen, indem Sie seinen Index (oder Indizes für mehrdimensionale Arrays) als zusätzliche Argumente angeben.
Um Daten zu einem Array hinzuzufügen, übergeben Sie entweder einen negativen Indexwert oder die Größe des Arrays. Die Größe kann mit der Length
-Funktion als Length($array)
bestimmt werden.
Arrays sind nullbasiert; das erste Element befindet sich am Index 0 und das letzte Element (des Arrays $array
) befindet sich am Index [Length($array)-1]
. Arrays können entweder mit den Funktionen Array
oder ReadArrayString
erstellt werden.
Der Versuch, ein Element über das Ende des Arrays hinaus festzulegen, führt dazu, dass zusätzliche Nullwert-Elemente zum Array hinzugefügt werden, um das Array auf die richtige Größe zu polstern.
SCOPE_CHUNK-Präfixsyntax
Das Festlegen eines Variablennamens, der mit dem Ausdruck SCOPE_CHUNK
beginnt, erstellt eine globale Variable, die ausgewertet wird, während jeder Datenchunk verarbeitet wird. Dies kann bei der Erstellung globaler Variablen verwendet werden, deren Wert einzigartig für einen bestimmten Chunk ist, und kann dann diesen Chunk identifizieren, wenn ein Dateiname oder ein Datensatz an 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äfixsyntax wird in Operationen mit einer Transformation, die bedingte Zuordnung 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
Deklaration
type SetChunkDataElement(string name, type value)
Syntax
SetChunkDataElement(<name>, <value>)
Erforderliche Parameter
name
: Der Name der Chunk-Variablevalue
: Der Wert, auf den die Chunk-Variable gesetzt werden soll
Beschreibung
Setzt den Wert einer angegebenen Chunk-Variable und gibt den Wert zurück. Eine Chunk-Variable wird ausgewertet, während jeder Datenchunk verarbeitet wird. Eine alternative Methode besteht darin, die SCOPE_CHUNK
-Syntax der Set
-Funktion zu verwenden.
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 Ganzzahlanzahl von Sekunden, um die aktuelle Operation zu pausieren
Beschreibung
Verursacht, dass die Ausführung für eine bestimmte Anzahl von Sekunden pausiert wird.
Beispiele
// Pausiert die aktuelle Operation für 1 Minute
Sleep(60);
SourceInstanceCount
Deklaration
int SourceInstanceCount()
Syntax
SourceInstanceCount()
Beschreibung
Gibt die Instanzanzahl des zuletzt verwendeten 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 Mapping-Skript 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 zuletzt verwendeten Generators zurück
currentSourceInstance = SourceInstanceCount();
TargetInstanceCount
Deklaration
int TargetInstanceCount()
Syntax
TargetInstanceCount()
Beschreibung
Gibt die Instanzanzahl eines generierenden Zielschleifen-Knotens zurück.
Wenn sie in einer Bedingung aufgerufen wird, gibt sie die Anzahl der Zielinstanzen zurück, die bisher für den aktuellen Schleifenknoten generiert wurden. Die Anzahl, die von dieser Methode zurückgegeben wird, 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 sie in einer Bedingung aufgerufen wird, ist die Sequenz stattdessen 0, 1 und so weiter.
Siehe auch die SourceInstanceCount
-Funktion.
Beispiele
// Gibt die Instanzanzahl des zuletzt erstellten Zielgenerators zurück
currentTargetInstance = TargetInstanceCount();
WaitForOperation
Deklaration
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 VariablepollIntervalSec
: Eine lokale Variable
Beschreibung
Stoppt die Ausführung eines Skripts oder einer Zuordnung, bis alle Instanzen der angegebenen Operation, die sich derzeit in der Warteschlange befinden, die Verarbeitung abgeschlossen haben. Diese Methode ist nützlich, wenn Sie viele Instanzen einer Operation zur Warteschlange für die parallele Verarbeitung hinzufügen und dann warten möchten, bis alle abgeschlossen sind.
Die in diesem Funktionsaufruf verwendete Operation muss als Operation im aktuellen Projekt definiert sein. Siehe die Anweisungen zum Einfügen von Projektelementen.
Hinweis:
- Für jede Operation (identifiziert durch ihre
operationID
), auf die gewartet werden soll, muss ein Aufruf dieser Methode erfolgen. - Operationen, die (durch Aufrufe der
RunOperation
-Funktion) nach diesem Aufruf hinzugefügt werden, werden nicht abgewartet. - Der aktuelle Benutzer muss Lesezugriff auf die Operation haben, auf die gewartet wird.
Das zweite (optionale) Argument ist das Timeout in Sekunden. Das Standard-Timeout beträgt 1 Stunde (3600 Sekunden), und wenn alle Operationen innerhalb dieser Zeit nicht abgeschlossen sind, wird ein Fehler ausgelöst. 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 der Eval
-Funktion behandeln.
Das dritte (optionale) Argument ist das Abfrageintervall in Sekunden. Das Abfrageintervall ist die Zeit zwischen den Überprüfungen der Betriebswarteschlange. Das Standard-Abfrageintervall beträgt 10 Sekunden. Der Standard wird keine signifikante Leistungseinbuße verursachen, aber wenn Ihre Operationen voraussichtlich sehr lange laufen, möchten Sie das Abfrageintervall möglicherweise 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>");