Zum Inhalt springen

Bedingtes Mapping in Transformations im Jitterbit Integration Studio

Einführung

Durch das Erstellen einer Bedingung für einen Zielknoten (bedingte Zuordnung) können Sie festlegen, ob ein verarbeiteter Quelldatensatz 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 eine Logik integrieren, um festzulegen, welche Werte in der Zuordnung verwendet werden. Beispielsweise kann ein Datensatz nur verwendet werden, wenn die Größe eines Textfelds kleiner als ein festgelegtes Maximum ist.

Wichtige Hinweise

Beachten Sie beim Verwenden eines Script auf einem Zielknoten die folgenden Hinweise:

  • Bedingungen können zu Zielknoten mit einer Kardinalität von hinzugefügt werden [0+], [0, 1], oder [1+] auf jeder Strukturebene. Wenn ein Knoten erforderlich ist ([1+]) und die Bedingung wird ausgewertet zu false, kann der Operation zur Laufzeit fehlschlagen.
  • Zielknoten, die eine Bedingung haben können, können nur eine Bedingung pro Knoten haben. Daher muss die gesamte Logik für die Bedingung in dieser Bedingung enthalten sein.
  • Das Script wird immer vor der Auswertung der Zielfelder ausgewertet. Das bedeutet, dass die gesamte Logik zum Erstellen oder Bestimmen der Werte für diese Zielfelder im Script enthalten sein muss, wenn das Script diese Werte zur vollständigen Bestimmung benötigt.
  • Wenn mehrere Bedingungen vorhanden sind, werden sie in der Reihenfolge vom äußeren Knoten zum inneren Knoten ausgewertet. Wenn sie auf derselben Ebene liegen, werden sie in der Reihenfolge von oben nach unten ausgewertet.

Hinzufügen einer Bedingung

Sie können Bedingungen als Scripts auf Zielknoten mit einer Kardinalität von hinzufügen [0+], [0, 1], oder [1+]. Entweder aus dem Mapping-Modus oder Script, bewegen Sie den Mauszeiger über den Knotennamen und klicken Sie auf das Klicken Sie auf das Symbol „Aktionsmenü“, um das Aktionsmenü zu öffnen. Wählen Sie im Menü Bedingung zum Knoten hinzufügen aus:

Zielknoten-Hinzufügungsbedingung

Wenn Sie diese Option auswählen und sich nicht bereits im Script befinden, werden Sie in den Script versetzt, um eine Bedingung zu erstellen, indem Sie auf dem ausgewählten Knoten ein Script eingeben:

Bedingung leer

Der Inhalt des Script gibt die Bedingung für die Generierung des Datensatzes an. Eine Bedingung muss Folgendes zurückgeben: true(1) oder false (0) Wert. Er kann andere Logik enthalten und ein Nebeneffekt dieser Logik kann darin bestehen, den Wert anderer Knoten in der Transformation festzulegen.

Wenn Sie sich im Mapping-Modus befinden und ein bedingtes Script vorhanden ist, wird ein Das Bedingungssymbol wird auf dem Zielknoten angezeigt. Wenn ein Quellobjekt oder eine Variable in einem bedingten Script verwendet wird, werden Mapping-Zeilen sind mit dem Knoten verbunden, und die Anzahl der Zuordnungen umfasst Knoten, in denen das Quellfeld oder die Quellvariable referenziert wird:

Visuelles bedingtes Mapping

Hinweis

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

Beispiel 1

Das folgende Script erfordert, dass das Quellobjekt code wertet aus zu true damit der Datensatz verarbeitet werden kann. Wenn code wertet aus zu false, dann wird der Knoten übersprungen und dieser Datensatz nicht verarbeitet:

Bedingung wenn

Beispiel 2

Sie können auch die == Der Gleichheitsoperator dient als Abkürzung für Scripts. Die gleiche Bedingung wie in Beispiel 1 könnte beispielsweise wie folgt geschrieben werden:

Bedingungskurzschrift

Beispiel 3

Um eine Bedingung festzulegen, sodass ein Datensatz nur verwendet wird, wenn ein Flag zum Veröffentlichen gesetzt wurde, können Sie ein Script wie das folgende verwenden:

bool(Publish_To_Community__c) == true

Beispiel 4

Um eine Bedingung festzulegen, die sicherstellt, dass ein Datensatz nur dann verwendet wird, wenn er kleiner als die maximale Größe ist und der Artikeltext im Element enthalten ist. json$results$item.body$view$value$, könnten Sie ein Script 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 Script kann auch Werte festlegen, die in anderen Knoten verwendet werden. Aufbauend auf Beispiel 4 kann der Bedingungsknoten als Teil seiner Logik den gewünschten Inhalt eines Felds 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 Zielfeld festzulegen. Article_Details__c:

$articleDetails;

Bearbeiten einer Bedingung

Vom Mapping-Modus oder Script, klicken Sie auf das orange Das Bedingungssymbol rechts neben dem Zielknoten:

Zielknoten-Bedingungssymbol

Oder bewegen Sie den Mauszeiger über den Knotennamen und klicken Sie auf Klicken Sie auf das Symbol „Aktionsmenü“, um das Aktionsmenü zu öffnen. Wählen Sie im Menü „Bedingung bearbeiten“ aus:

Zielknoten-Bearbeitungsbedingung

Wenn Sie sich noch nicht im Script befinden, werden Sie in den Script versetzt, um die Bedingung zu bearbeiten, indem Sie das Script auf dem ausgewählten Knoten bearbeiten.

Entfernen einer Bedingung

Vom Mapping-Modus oder Script, bewegen Sie den Mauszeiger über den Knotennamen und klicken Sie auf das Klicken Sie auf das Symbol „Aktionsmenü“, um das Aktionsmenü zu öffnen. Wählen Sie im Menü die Option „Bedingung entfernen“ aus:

Bedingung zum Entfernen des Zielknotens

Der Inhalt des Script wird gelöscht, wodurch die Bedingung entfernt wird.

Sie können eine Bedingung auch entfernen, indem Sie das Script manuell bearbeiten, um den Inhalt des Script zu löschen.