Dividir um arquivo em registros individuais usando SourceInstanceCount no Jitterbit Integration Studio
Introdução
Este padrão de design pode ser usado para dividir um pequeno conjunto de dados de origem em um arquivo JSON ou XML de múltiplos registros em vários arquivos, cada um contendo um único registro, usando a função SourceInstanceCount
.
Dica
Este padrão é recomendado para ser usado apenas com um pequeno conjunto de registros de origem quando os dados de origem são complexos (hierárquicos). Para dados de origem planos (não hierárquicos), veja Dividir um arquivo em registros individuais usando SCOPE_CHUNK. Este padrão não é recomendado para grandes conjuntos de dados porque a carga útil deve ser processada repetidamente para cada registro de origem.
Caso de uso
Neste cenário, os dados de origem são um arquivo JSON complexo que contém um pequeno número de múltiplos registros, e o endpoint de destino requer que os registros sejam processados individualmente.
Padrão de design e exemplo
Este exemplo de cadeia de operações é usado para ilustrar o padrão de design, cujas características principais são descritas abaixo:
-
A operação Obter Arquivo com Múltiplos Registros recupera o arquivo JSON de múltiplos registros da origem e grava o conteúdo em uma variável (chamada
Variable
). -
Com o sucesso dessa operação, a operação Controle executa um script de controlador, cujas partes são descritas abaixo:
<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>
- A função
CountSubString
é usada para contar o número de registros da origem (substituindoassigned_location
por qualquer campo que apareça apenas uma vez para cada registro nos dados de origem).
- A função
-
Uma variável global (
gv_record_no
) é inicializada em1
e será usada para incrementar o número de registros. -
A função
While
é utilizada para percorrer a contagem de registros e executar a próxima operação para cada registro. -
À medida que o script percorre os registros, a operação Dividir em Arquivos de Registro Único é executada repetidamente. Estes são os passos da operação:
- O conteúdo do arquivo JSON de múltiplos registros contido em
Variable
é usado como fonte para a transformação. -
Na transformação, um script de condição é definido no nó do item para iterar através de cada registro:
If(SourceInstanceCount() == $gv_record_no, true, false)
-
Em cada execução da operação, a transformação irá gerar um único registro JSON, que pode ser escrito no destino desejado.
- O conteúdo do arquivo JSON de múltiplos registros contido em