Teilen Sie eine Datei mit SourceInstanceCount in Jitterbit Integration Studio in einzelne Datensätze auf
Einführung
Mit diesem Entwurfsmuster können Sie einen kleinen Satz Quelldaten in einer JSON- oder XML-Datei mit mehreren Datensätzen mithilfe von in mehrere Dateien aufteilen, die jeweils einen einzelnen Datensatz enthalten SourceInstanceCount
Funktion.
Tipp
Es wird empfohlen, dieses Muster nur bei einer kleinen Menge von Quelldatensätzen zu verwenden, wenn die Quelldaten komplex (hierarchisch) sind. Informationen zu flachen (nicht hierarchischen) Quelldaten finden Sie unter Aufteilen einer Datei in einzelne Datensätze mit SCOPE_CHUNK. Dieses Muster wird für große Datensätze nicht empfohlen, da die Payload für jeden Quelldatensatz wiederholt verarbeitet werden muss.
Anwendungsfall
In diesem Szenario sind die Quelldaten eine komplexe JSON-Datei, die eine kleine Anzahl mehrerer Datensätze enthält, und der Endpoint erfordert, dass die Datensätze einzeln verarbeitet werden.
Entwurfsmuster und Beispiel
Diese beispielhafte Operation dient zur Veranschaulichung des Entwurfsmusters, dessen Hauptmerkmale im Folgenden beschrieben werden:
-
Die Operation Get File with Multiple Records ruft die JSON-Datei mit mehreren Datensätzen aus der Quelle ab und schreibt den Inhalt in eine Variable (mit dem Namen
Variable
). -
Bei erfolgreichem Abschluss dieser Operation führt die Operation Control ein Controller-Script aus, dessen Teile im Folgenden beschrieben werden:
<trans> ordercount = CountSubString($Variable, '"assigned_location":'); $gv_record_no=1; While($gv_record_no<=ordercount, RunOperation("<TAG>operation:Split into Single-record Files</TAG>"); $gv_record_no++; ) </trans>
-
Das
CountSubString
wird verwendet, um die Anzahl der Datensätze aus der Quelle zu zählen (ersetztassigned_location
mit jedem Feld, das in den Quelldaten nur einmal für jeden Datensatz vorkommt). -
Eine globale Variable](gv_record_no) wird initialisiert bei
1
und wird verwendet, um die Anzahl der Datensätze zu erhöhen. -
Das
While
wird verwendet, um die Datensatzanzahl durchzugehen und für jeden Datensatz die nächste Operation auszuführen.
-
-
Während das Script die Datensätze durchläuft, wird die Operation In Einzeldatensatzdateien aufteilen wiederholt ausgeführt. Dies sind die Schritte der Operation:
- Der Inhalt der Multi-Record-JSON-Datei in
Variable
werden als Quelle für die Transformation verwendet. -
In der Transformation wird ein Script ist auf dem Elementknoten definiert, um jeden Datensatz zu durchlaufen:
If(SourceInstanceCount() == $gv_record_no, true, false)
-
Bei jedem Operation Vorgang gibt die Transformation einen einzelnen JSON-Datensatz aus, der in das gewünschte Ziel geschrieben werden kann.
- Der Inhalt der Multi-Record-JSON-Datei in