Bedingtes Mapping im Jitterbit Design Studio
Einführung
Mit der bedingten Zuordnung können Sie angeben, dass ein Datensatz in einer Transformation basierend auf einer definierten Bedingung zugeordnet wird. Die Bedingung bestimmt (ja oder nein), ob der Datensatz zugeordnet wird. Als Teil dieser Bestimmung können Sie eine Logik einschließen, 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 angegebenes Maximum ist.
Die bedingte Zuordnung erfolgt durch Hinzufügen eines speziellen Datenelements, eines sogenannten Bedingungsknotens, zu einem Zielordner. Der Inhalt des Bedingungsknotens 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.
In einem Zielordner kann es nur einen Bedingungsknoten geben. Daher muss die gesamte Logik für die Bedingung in dieser Bedingung enthalten sein.
Der Bedingungsknoten wird immer ausgewertet, bevor Zielfelder ausgewertet werden. Dies bedeutet, dass die gesamte Logik zum Erstellen oder Bestimmen der Werte für diese Zielfelder im Bedingungsknoten enthalten sein muss, wenn der Bedingungsknoten diese Werte benötigt, um seine Bestimmung abzuschließen.
Wenn mehrere Bedingungen vorhanden sind, werden sie in der Reihenfolge vom äußeren Knoten zum inneren Knoten ausgewertet, wenn sie auf der gleichen Ebene liegen, werden sie in der Reihenfolge von oben nach unten ausgewertet.
Hinweis
Bedingungsknoten gelten nur für optionale oder Loop-Zielordner (auch als Target Loop Nodes oder TLNs bezeichnet).
Erstellen eines Bedingungsknotens
So definieren Sie eine Bedingung:
-
Wählen Sie den Ordner aus, für den die Bedingung gelten soll:
-
Klicken Sie unter der Transformation auf das Symbol für mehrere Ordner , um das Dialogfeld Mapping-Optionen anzuzeigen. Informationen zu allen verfügbaren Optionen finden Sie unter Zusätzliche Ordner hinzufügen unter Abbildung flacher auf hierarchische Strukturen.
-
Wählen Sie Bedingung für aktuellen Ordner aktivieren und klicken Sie auf OK.
-
Der von Ihnen ausgewählte Ordner zeigt nun ein neues Bedingungsdatenelement unter dem Knoten an, auf den Sie die Bedingung angewendet haben:
Anwenden einer Formel auf den Bedingungsknoten
Sie haben jetzt eine Bedingung auf Ihr Ziel angewendet. Damit diese funktioniert, müssen Sie eine Formel anwenden:
-
Doppelklicken Sie auf die Bedingung im Zielbaum:
-
Der Formel-Generator wird geöffnet. Geben Sie im Script oben links einen Ausdruck ein, der für Ihre Bedingung geeignet ist. Verwenden Sie dazu eine Kombination aus Formeln, Werten von Quelldatenelementen und mathematischen Operatoren.
-
Die Formel muss entweder
true
(1
) oderfalse
(0
), um zu bestimmen, ob die Zuordnung für den angegebenen Datensatz erfolgt.
Beispiele
Um eine Bedingung festzulegen, sodass ein Datensatz nur verwendet wird, wenn sein Flag zum Veröffentlichen gesetzt ist, können Sie eine Bedingung wie die folgende verwenden:
<trans>
bool(Publish_To_Community__c) == true
</trans>
Eine Bedingung festlegen, sodass ein Datensatz nur verwendet wird, wenn er kleiner als eine Maximalgröße ist, vorausgesetzt, dass sich der Artikeltext im Element befindet json$results$item.body$view$value$
:
<trans>
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;
</trans>
Eine Bedingungsformel kann auch Werte festlegen, die in anderen Knoten verwendet werden. Im obigen Beispiel kann der Bedingungsknoten als Teil seiner Logik den beabsichtigten Inhalt eines Felds auf eine globale Variable festlegen:
<trans>
...
$articleDetails = Replace(json$results$item.body$view$value$,
'href="/','href="https://example.com/');
...
</trans>
Die globale Variable wird dann verwendet, um den Wert im gewünschten Zielfeld festzulegen Article_Details__c
:
<trans>
$articleDetails;
</trans>