Zum Inhalt springen

Bedingte Logik in Transformationen im Jitterbit Integration Studio

Einführung

Das Erstellen einer Bedingung für einen Zielknoten wird als bedingte Zuordnung bezeichnet. Diese Funktion erweitert die grundlegenden Zuordnungskonzepte, indem sie Geschäftslogik hinzufügt, um zu steuern, wann Daten verarbeitet werden. Die bedingte Zuordnung ermöglicht es Ihnen, anzugeben, ob ein verarbeiteten Quell-Datensatz basierend auf einer definierten Bedingung an das Ziel ausgegeben werden soll. Die Bedingung bestimmt (ja oder nein), ob der Datensatz zugeordnet wird. Im Rahmen dieser Bestimmung können Sie Logik einfügen, um festzulegen, welche Werte in der Zuordnung verwendet werden. Zum Beispiel könnten Sie einen Datensatz nur verwenden, wenn die Größe eines Textfelds kleiner als ein festgelegtes Maximum ist.

Wichtige Hinweise

Wenn Sie ein Bedingungsskript für einen Zielknoten verwenden, beachten Sie bitte die folgenden Punkte:

  • Sie können Bedingungen für Zielknoten mit einer Kardinalität von [0+], [0, 1] oder [1+] auf jeder Struktur-Ebene hinzufügen. Wenn ein Knoten erforderlich ist ([1+]) und die Bedingung auf false evaluiert, kann der Vorgang zur Laufzeit fehlschlagen.

  • Zielknoten, die eine Bedingung haben können, dürfen nur eine Bedingung für jeden Knoten haben. Alle Logik für die Bedingung muss in dieser Bedingung enthalten sein.

  • Das Bedingungsskript wird immer vor der Auswertung der Zielfelder ausgewertet. Das bedeutet, dass alle Logik zur Erstellung oder Bestimmung der Werte für diese Zielfelder im Bedingungsskript enthalten sein muss, wenn das Bedingungsskript diese Werte benötigt, um seine Bestimmung abzuschließen.

  • Wenn mehrere Bedingungen vorhanden sind, werden sie in der Reihenfolge von äußeren Knoten zu inneren Knoten ausgewertet. Wenn sie auf derselben Ebene sind, werden sie in der Reihenfolge von oben nach unten ausgewertet.

Eine Bedingung hinzufügen

Sie können Bedingungen als Skripte für Zielknoten mit einer Kardinalität von [0+], [0, 1] oder [1+] hinzufügen. Fahren Sie mit der Maus über den Knotennamen und klicken Sie auf , um das Aktionsmenü für den Knoten zu öffnen. Wählen Sie im Menü Bedingung zum Knoten hinzufügen.

Wenn Sie diese Option auswählen, öffnet sich der bearbeitbare Skriptbereich im Zielknoten.

Der Inhalt des Skripts gibt die Bedingung für die Erstellung des Datensatzes an. Eine Bedingung muss einen Wert von true (1) oder false (0) zurückgeben. Sie kann andere Logik enthalten, und eine Nebenwirkung dieser Logik kann sein, den Wert anderer Knoten in der Transformation festzulegen.

Wenn ein bedingtes Skript vorhanden ist, wird ein Bedingungssymbol im Zielknoten angezeigt. Wenn ein Quellobjekt oder eine Variable in einem bedingten Skript verwendet wird, sind Mapping-Linien mit dem Knoten verbunden, und die Anzahl der Zuordnungen umfasst Knoten, in denen das Quellfeld oder die Variable referenziert wird:

bedingte Mapping-Visualisierung

Hinweis

Wenn der Knoten erforderlich ist ([1+]) und die Bedingung zu false ausgewertet wird, kann der Vorgang zur Laufzeit fehlschlagen.

Beispiel 1

Das folgende Skript erfordert, dass das Quellobjekt code zu true ausgewertet wird, damit der Datensatz verarbeitet wird. Wenn code zu false ausgewertet wird, wird der Knoten übersprungen und dieser spezielle Datensatz wird nicht verarbeitet:

Bedingung wenn

Beispiel 2

Sie können auch den == Gleichheitsoperator als Kurzform verwenden, um Bedingungsskripte zu schreiben. Zum Beispiel könnten Sie die gleiche Bedingung, die in Beispiel 1 verwendet wird, so schreiben:

Bedingung Kurzform

Beispiel 3

Um eine Bedingung festzulegen, sodass ein Datensatz nur verwendet wird, wenn ein Flag zum Veröffentlichen gesetzt wurde, könnten Sie ein Skript wie dieses verwenden:

bool(Publish_To_Community__c) == true

Beispiel 4

Um eine Bedingung festzulegen, sodass ein Datensatz nur verwendet wird, wenn er kleiner als eine maximale Größe ist, vorausgesetzt, dass der Artikeltext im Element json$results$item.body$view$value$ enthalten ist, könnten Sie ein Skript wie dieses verwenden:

pass = true;

// Log article size
$articleDetailsSize = Length(json$results$item.body$view$value$);
WriteToOperationLog('Current article:' +
    json$start$ + ' articleDetailsSize:' + $articleDetailsSize);

// Checks if the article size > $MaxArticleDetailSize;
// if so, the article is ignored
if($articleDetailsSize > $MaxArticleDetailSize,
    WriteToOperationLog("Ignoring Id " + json$results$item.id$ +
        " as too large (" + $articleDetailsSize + ")");
    pass = false;
);

pass;

Beispiel 5

Ein Bedingungsskript kann auch Werte setzen, die in anderen Knoten verwendet werden. Aufbauend auf Beispiel 4 kann der Bedingungsknoten im Rahmen seiner Logik den beabsichtigten Inhalt eines Feldes auf eine globale Variable setzen:

...
$articleDetails = Replace(json$results$item.body$view$value$,
                          'href="/','href="https://example.com/');
...

Die globale Variable wird dann verwendet, um den Wert im gewünschten Ziel-Feld Article_Details__c zu setzen:

$articleDetails;

Bedingungen verwalten

Sie können eine Bedingung bearbeiten oder entfernen, indem Sie auf das Bedingungssymbol klicken, das rechts vom Zielknoten angezeigt wird. Sie können auch über den Knotennamen fahren und auf klicken, um das Knotenaktionsmenü zu öffnen.