Zum Inhalt springen

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:

Operation Quellinstanzanzahl

  1. 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).

  2. 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 (ersetzt assigned_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.

  3. Während das Script die Datensätze durchläuft, wird die Operation In Einzeldatensatzdateien aufteilen wiederholt ausgeführt. Dies sind die Schritte der Operation:

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

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

      in einzelne Datensätze aufgeteilt

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