Saltar al contenido

Dividir un archivo en registros individuales usando SourceInstanceCount en Jitterbit Integration Studio

Introducción

Este patrón de diseño se puede utilizar para dividir un pequeño conjunto de datos de origen en un archivo JSON o XML de múltiples registros en múltiples archivos, cada uno conteniendo un solo registro, utilizando la función SourceInstanceCount.

Consejo

Este patrón se recomienda utilizar solo con un pequeño conjunto de registros de origen cuando los datos de origen son complejos (jerárquicos). Para datos de origen planos (no jerárquicos), consulte Dividir un archivo en registros individuales usando SCOPE_CHUNK. Este patrón no se recomienda para grandes conjuntos de datos porque la carga útil debe ser procesada repetidamente para cada registro de origen.

Caso de uso

En este escenario, los datos de origen son un archivo JSON complejo que contiene un pequeño número de múltiples registros, y el punto final de destino requiere que los registros sean procesados individualmente.

Patrón de diseño y ejemplo

Esta cadena de operación se utiliza para ilustrar el patrón de diseño, cuyas características clave se describen a continuación:

cadena de operación sourceinstancecount

  1. La operación Obtener archivo con múltiples registros recupera el archivo JSON de múltiples registros del origen y escribe el contenido en una variable (llamada Variable).

  2. Al tener éxito esa operación, la operación Control ejecuta un script de controlador, cuyas partes se describen a continuación:

    <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>
    
    • La función CountSubString se utiliza para contar el número de registros del origen (reemplazando assigned_location con cualquier campo que aparezca solo una vez para cada registro en los datos de origen).

    • Una variable global (gv_record_no) se inicializa en 1 y se utilizará para incrementar el número de registros.

    • La función While se utiliza para recorrer el conteo de registros y ejecutar la siguiente operación para cada registro.

  3. A medida que el script recorre los registros, la operación Dividir en Archivos de Registro Único se ejecuta repetidamente. Estos son los pasos de la operación:

    1. El contenido del archivo JSON de múltiples registros contenido en Variable se utiliza como fuente para la transformación.
    2. En la transformación, se define un script de condición en el nodo de ítem para iterar a través de cada registro:

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

      dividir en registros únicos

    3. En cada ejecución de la operación, la transformación generará un único registro JSON, que se puede escribir en el destino deseado.