Saltar al contenido

Dividir un Archivo en Registros Individuales Usando SourceInstanceCount

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 varios registros en varios archivos, cada uno de los cuales contiene un único registro, mediante la función SourceInstanceCount función.

Consejo

Se recomienda utilizar este patrón solo con un pequeño conjunto de registros fuente cuando los datos fuente 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 procesarse repetidamente para cada registro de origen.

Caso de Uso

En este escenario, los datos de origen son un archivo JSON complejo que contiene una pequeña cantidad de registros múltiples y el extremo de destino requiere que los registros se procesen individualmente.

Patrón de Diseño y Ejemplo

Esta cadena de operación de ejemplo 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. Si esa operación tiene éxito, la operación Control ejecuta un secuencia de comandos del 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>
    
    • El CountSubString La función se utiliza para contar el número de registros de la fuente (reemplazando assigned_location con cualquier campo que aparezca sólo 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.

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

  3. A medida que el secuencia de comandos recorre los registros, la operación Dividir en archivos de un solo registro se ejecuta repetidamente. Estos son los pasos de la operación:

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

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

      dividido en registros individuales

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