Divida um Arquivo em Registros Individuais Usando SourceInstanceCount
Introdução
Esse padrão de design pode ser usado para dividir um pequeno conjunto de dados de origem em um arquivo JSON ou XML com vários registros em vários arquivos, cada um contendo um único registro, usando o SourceInstanceCount
função.
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 simples (não hierárquicos), consulte Dividir um arquivo em registros individuais usando SCOPE_CHUNK. Esse padrão não é recomendado para grandes conjuntos de dados porque a payload 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 vários registros, e o endpoint de destino exige que os registros sejam processados individualmente.
Padrão de Design e Exemplo
Este exemplo de cadeia de operação é usado para ilustrar o padrão de projeto, cujas principais características são descritas abaixo:
-
A operação Get File with Multiple Records recupera o arquivo JSON de vários registros da origem e grava o conteúdo em uma variável (chamada
Variable
). -
No sucesso dessa operação, a operação Control executa um script do 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>
-
O
CountSubString
a função é usada para contar o número de registros da origem (substituindoassigned_location
com qualquer campo que apareça apenas uma vez para cada registro nos dados de origem). -
A variável global] (
gv_record_no
) é inicializado em1
e será usado para incrementar o número de registros. -
O
While
é usada 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. Estas são as etapas da operação:
- O conteúdo do arquivo JSON multi-registro contido em
Variable
são usados como fonte para a transformação. -
Na transformação, um script de condição é definido no nó do item para iterar em cada registro:
If(SourceInstanceCount() == $gv_record_no, true, false)
-
Em cada operação executada, a transformação gerará um único registro JSON, que pode ser gravado no destino desejado.
- O conteúdo do arquivo JSON multi-registro contido em