Zum Inhalt springen

Logische Funktionen in Jitterbit Design Studio

Verwenden Sie die logischen Funktionen, um den Ablauf von Jitterbit-Skripten zu steuern.

Hinweis

  • Die maximale Anzahl von Schleifeniterationen in Harmony beträgt 50.000.
  • Die maximale Anzahl von Schleifeniterationen in Jitterbit Script Language gilt für jede einzelne Schleife. Um die zulässige Anzahl von Iterationen pro Schleife in einem Jitterbit Script Language-Skript zu erhöhen, siehe Jitterbit.scripting.while.max_iterations in Scripting Jitterbit variables.
  • Die maximale Anzahl von Schleifeniterationen in JavaScript gilt pro Skript (Summe aller Schleifen innerhalb eines Skripts). Um die maximale Anzahl von Schleifeniterationen in JavaScript zu erhöhen, siehe Java script loop in JavaScript.

Case

Deklaration

typeN Case(bool b1, type1 arg1[, bool b2, type2 arg2,... bool bN, typeN argN])

Syntax

Case(<b1>, <arg1>[, <b2>, <arg2>,... <bN>, <argN>])

Erforderliche Parameter

  • b1: Ein Ausdruck, der auf sein boolesches Ergebnis ausgewertet wird
  • arg1: Ein Argument, das zurückgegeben wird, wenn b1 den Wert true hat

Optionale Parameter

  • b2... bN: Zusätzliche Ausdrücke, die auf Wahrheitswert ausgewertet werden
  • arg2... argN: Zusätzliche Argumente, die zurückgegeben werden, wenn der entsprechende Parameter true ist

Beschreibung

Diese Funktion wertet Argumentpaare aus: Wenn die Auswertung des Ausdrucks im ersten Argument eines Paares true ergibt, stoppt sie die Überprüfung und gibt das zweite Argument mit beibehaltener Typ zurück. Andernfalls prüft sie das nächste Paar und so weiter. Wenn keines der Paare zu true ausgewertet wird, wird null zurückgegeben.

Um einen Standard- oder Fallthrough-Fall zu erstellen, verwenden Sie true und den gewünschten Rückgabewert als letztes Paar. Siehe das Beispiel.

Beispiele

Dieses Beispiel gibt "Very Expensive" zurück, wenn price 1000 oder höher ist. Das true im letzten Argumentpaar dient als Standard- oder Fallthrough-Fall.

$label = Case(price < 10, "Cheap",
              price < 100, "Not Cheap",
              price < 1000, "Expensive",
              true, "Very Expensive");

Equal

Deklaration

bool Equal(type1 array1, type2 array2)

bool Equal(type1 arg1, type2 arg2)

Syntax

Equal(<array1>, <array2>)

Equal(<arg1>, <arg2>)

Erforderliche Parameter

  • array1, array2: (Erste Form) Zwei Arrays mit gleicher Länge und Dimension; wenn nicht, gibt die Funktion false zurück

  • arg1, arg2: (Zweite Form) Zwei einfache Typen oder Ausdrücke

Beschreibung

Führt einen rekursiven Vergleich zweier Arrays durch. Gibt true zurück, wenn alle entsprechenden Elemente der Arrays gleich sind, andernfalls gibt sie false zurück. Sie kann auch mit einfachen Typen verwendet werden und folgt Konvertierungsregeln, um verschiedene Typen zum Vergleich zu fördern.

Das Aufrufen dieser Funktion zum Vergleich zweier Arrays unterscheidet sich von der Verwendung des Operators == auf zwei Arrays. Die Verwendung des Operators == auf zwei Arrays gibt ein Array von booleschen Werten zurück, das das Ergebnis eines Vergleichs jedes Array-Elements enthält. Diese Funktion vergleicht nacheinander jedes entsprechende Element.

Die Funktion Equal() gibt immer false zurück, wenn die beiden Array-Argumente unterschiedliche Größen haben.

Typkonvertierung und -förderung werden durchgeführt, wenn die verglichenen Argumente oder Elemente unterschiedliche Typen haben.

Beispiele

x = {1, 2.0, 3};
y = {1, 5, 3};

// Returns false since 2.0 != 5
Equal(x, y);

// Returns true because both arrays contain only non-zero numbers.
// Comparison is made as booleans
Equal(Bool(x), y);

If

Deklaration

typeN If(bool condition, type1 trueResult[, type2 falseResult])

Syntax

If(<condition>, <trueResult>[, <falseResult>])

Erforderliche Parameter

  • condition: Ein Ausdruck, der auf sein boolesches Ergebnis ausgewertet wird
  • trueResult: Ein Ausdruck, der ausgewertet wird und sein Ergebnis zurückgegeben wird, wenn condition den Wert true hat

Optionale Parameter

  • falseResult: Ein Ausdruck, der ausgewertet wird und sein Ergebnis zurückgegeben wird, wenn condition den Wert false hat

Beschreibung

Gibt trueResult zurück, wenn die Bedingung erfüllt ist, andernfalls wird falseResult zurückgegeben.

Wenn das erste Argument (condition) kein boolescher Datentyp ist, wird es vor der Auswertung in einen booleschen Wert konvertiert. Wenn das optionale dritte Argument nicht angegeben ist und condition den Wert false hat, wird ein null-Wert zurückgegeben.

Beispiele

//  Returns "Diane"
If(false, "Jack", "Diane");

// Returns "Spoon"
If(7>4, "Spoon", "Knife");

// Adds a trailing comma to s if s is not empty
If(Length(s)>0,
    s = s + ",";
    );

While

Deklaration

null While(bool condition, type expression)

Syntax

While(<condition>, <expression>)

Erforderliche Parameter

  • condition: Ein Ausdruck, der auf sein boolesches Ergebnis ausgewertet wird
  • expression: Ein Ausdruck, der wiederholt ausgewertet wird, solange condition den Wert true hat

Beschreibung

Führt einen Ausdruck wiederholt aus, solange eine Bedingung erfüllt ist.

Die Jitterbit-Variable jitterbit.scripting.while.max_iterations begrenzt die Anzahl der Iterationen. Ein Fehler wird gemeldet, wenn die maximale Anzahl von Iterationen erreicht wird.

Hinweis

Diese Grenze ist unabhängig von der Grenze auf Agent-Ebene für synchrone RunOperation-Aufrufe, die innerhalb einer While-Schleife ausgeführt werden (standardmäßig 50). jitterbit.scripting.while.max_iterations begrenzt die Gesamtzahl der Schleifeniterationen, unabhängig davon, was die Schleife bei jedem Durchlauf tut. Die RunOperation-Grenze begrenzt dagegen nur die Anzahl der synchronen untergeordneten Operationsaufrufe, die innerhalb der Schleife ausgeführt werden. Weitere Informationen finden Sie in der Anmerkung unter RunOperation.

Beispiele

$jitterbit.scripting.while.max_iterations = 2000;
i = 0;
arr = {"a@example.com", "b@example.com", "c@example.com"};
s = "";
// Concatenates the elements of the array arr
// with commas separating each element
While(i < Length(arr),
    s = s + Get(arr,i) + ",";
    i++;
    );