Zum Inhalt springen

Eine Datei in einzelne Datensätze aufteilen mit SourceInstanceCount im Jitterbit Integration Studio

Einführung

Dieses Entwurfsmuster kann verwendet werden, um eine kleine Menge von Quelldaten in einer Multi-Datensatz-JSON- oder XML-Datei in mehrere Dateien aufzuteilen, wobei jede Datei einen einzelnen Datensatz enthält, unter Verwendung der SourceInstanceCount Funktion.

Hinweis

Dieses Muster wird empfohlen, nur mit einer kleinen Menge von Quelldatensätzen verwendet zu werden, wenn die Quelldaten komplex (hierarchisch) sind. Für flache (nicht-hierarchische) Quelldaten siehe Eine Datei in einzelne Datensätze aufteilen mit SCOPE_CHUNK. Dieses Muster wird nicht für große Datenmengen empfohlen, da die Nutzlast für jeden Quelldatensatz wiederholt verarbeitet werden muss.

Anwendungsfall

In diesem Szenario sind die Quelldaten eine komplexe JSON-Datei, die eine kleine Anzahl von mehreren Datensätzen enthält, und der Zielendpunkt erfordert, dass die Datensätze einzeln verarbeitet werden.

Entwurfsmuster und Beispiel

Diese Beispiel Operationenkette wird verwendet, um das Entwurfsmuster zu veranschaulichen, dessen Hauptmerkmale unten beschrieben sind:

operation chain sourceinstancecount

  1. Die Operation Datei mit mehreren Datensätzen abrufen ruft die Multi-Datensatz-JSON-Datei aus der Quelle ab und schreibt den Inhalt in eine Variable (genannt Variable).

  2. Bei Erfolg dieser Operation führt die Operation Steuerung ein Steuerungsskript aus, dessen Teile unten beschrieben sind:

    <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>
    
    • Die CountSubString Funktion wird verwendet, um die Anzahl der Datensätze aus der Quelle zu zählen (ersetzen Sie assigned_location durch ein beliebiges Feld, das in den Quelldaten nur einmal für jeden Datensatz erscheint).

    • Eine globale Variable (gv_record_no) wird auf 1 initialisiert und wird verwendet, um die Anzahl der Datensätze zu erhöhen.

    • Die While Funktion wird verwendet, um durch die Datensatzanzahl zu iterieren und die nächste Operation für jeden Datensatz auszuführen.

  3. Während das Skript durch die Datensätze läuft, wird die Operation In Einzel-Datensatzdateien aufteilen wiederholt ausgeführt. Dies sind die Schritte der Operation:

    1. Der Inhalt der Multi-Datensatz-JSON-Datei, die in Variable enthalten ist, wird als Quelle für die Transformation verwendet.
    2. In der Transformation wird ein Bedingungsskript auf dem Elementknoten definiert, um durch jeden Datensatz zu iterieren:

      If(SourceInstanceCount() == $gv_record_no, true, false)
      

      In Einzel-Datensätze aufteilen

    3. Bei jedem Ausführen der Operation gibt die Transformation einen einzelnen JSON-Datensatz aus, der in das gewünschte Ziel geschrieben werden kann.