Bedingte Zuordnung in Transformationen im Jitterbit Integration Studio
Einführung
Das Erstellen einer Bedingung für einen Zielknoten wird als bedingte Zuordnung bezeichnet. Die bedingte Zuordnung ermöglicht es Ihnen, anzugeben, ob ein verarbeiteten 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 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 zu Zielknoten mit einer Kardinalität von
[0+]
,[0, 1]
oder[1+]
auf jeder Strukturebene hinzufügen. Wenn ein Knoten erforderlich ist ([1+]
) und die Bedingung auffalse
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 sich auf derselben Ebene befinden, werden sie in der Reihenfolge von oben nach unten ausgewertet.
Eine Bedingung hinzufügen
Sie können Bedingungen als Skripte auf Zielknoten mit einer Kardinalität von [0+]
, [0, 1]
oder [1+]
hinzufügen. Wählen Sie entweder im Zuordnungsmodus oder im Skriptmodus den Knoten aus, fahren Sie mit der Maus über den Knotennamen und klicken Sie auf das Aktionsmenü-Symbol, um das Aktionsmenü zu öffnen. Wählen Sie im Menü Bedingung zum Knoten hinzufügen:
Wenn Sie diese Option auswählen, werden Sie, falls Sie sich nicht bereits im Skriptmodus befinden, in den Skriptmodus versetzt, um eine Bedingung zu erstellen, indem Sie ein Skript im ausgewählten Knoten eingeben.
Der Inhalt des Skripts gibt die Bedingung für die Erstellung des Datensatzes an. Eine Bedingung muss einen true
(1) oder false
(0) Wert zurückgeben. Sie kann andere Logik enthalten, und eine Nebenwirkung dieser Logik kann sein, den Wert anderer Knoten in der Transformation zu setzen.
Wenn Sie sich im Mapping-Modus befinden und ein bedingtes Skript vorhanden ist, wird ein Bedingungssymbol auf dem 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:
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:
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:
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;
Eine Bedingung bearbeiten
Sie können eine Bedingung entweder im Mapping-Modus oder im Skriptmodus bearbeiten, indem Sie auf das Bedingungssymbol klicken, das rechts vom Zielknoten angezeigt wird. Sie können auch über den Knotennamen fahren und auf das Aktionsmenü-Symbol klicken, um das Aktionsmenü zu öffnen. Wählen Sie im Menü Bedingung bearbeiten:
Wenn Sie sich nicht bereits im Skriptmodus befinden, werden Sie in den Skriptmodus gebracht, um die Bedingung zu bearbeiten, indem Sie das Skript im ausgewählten Knoten bearbeiten.
Eine Bedingung entfernen
Im Mapping-Modus oder im Skriptmodus fahren Sie über den Knotennamen und klicken auf das Aktionsmenü-Symbol, um das Aktionsmenü zu öffnen. Wählen Sie im Menü Bedingung entfernen:
Der Inhalt des Skripts wird gelöscht, wodurch die Bedingung entfernt wird.
Sie können eine Bedingung auch entfernen, indem Sie das Bedingungsskript manuell bearbeiten, um den Inhalt des Skripts zu löschen.