Stream XML File Reader
O Portal de Documentação oferece guias para todas as opções de componentes na Digibee Integration Platform. Este artigo aborda o Stream XML File Reader.
O Stream XML File Reader realiza a leitura de um arquivo XML local e, com base na configuração de um nó desejado e campos de contexto, faz a entrega de uma estrutura XML e de propriedades de contexto para cada nó encontrado e dispara subpipelines para processar cada mensagem. O componente deve ser utilizado para arquivos grandes quando há a necessidade de ler partes do todo de forma eficiente.
Parâmetros
Dê uma olhada nos parâmetros de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB)
.
Parâmetro | Descrição | Valor padrão | Tipo de dado |
---|---|---|---|
File name | Nome ou caminho completo (full file path, ex: tmp/processed/file.txt) do arquivo XML local. | N/A | String |
Charset | Nome do código de caracteres para a leitura do arquivo (padrão UTF-8). | UTF-8 | String |
Node Path | Caminho do nó desejado do arquivo XML a ser transmitido. Ex.: //root/level1/level2/desirednode. | N/A | String |
Context Paths | Defina aqui caminhos de tag pai que representam campos que adicionam contexto ao nó desejado. Caso haja mais de um, separe-os por vírgula. Ex.: //root/node1/code,//root/node2/description. | N/A | String |
Ignore Paths | Defina aqui os caminhos que serão ignorados e não retornarão ao nó desejado. Ex.: //root/node1/email,//root/node2/city. | N/A | String |
Ignore Nested Child Nodes | Se a opção estiver ativada, os nós filhos aninhados (nós que não são filhos diretos do nó desejado) serão ignorados. Nesse caso, o nó de mesmo nível do nó desejado será retornado, mas os nós abaixo do mesmo serão ignorados. | N/A | Boolean |
Element Identifier | Atributo que será enviado em caso de erros. | N/A | String |
Parallel Execution Of Each Iteration | Ocorre em paralelo com a execução do loop. | N/A | Booleano |
Fail On Error | A ativação desse parâmetro suspende a execução do pipeline apenas quando há uma ocorrência grave na estrutura da iteração, impedindo a sua conclusão por completo. A ativação do parâmetro Fail On Error não tem ligação com erros ocorridos nos componentes utilizados para a construção dos subpipelines (onProcess e onException). | N/A | Booleano |
Remove whitespaces | Se a opção estiver ativada, whitespaces ao início/fim de todos os valores de caracteres XML são removidos. | N/A | Booleano |
Coalesce | Se a opção estiver ativada, valores de caracteres XML são lidos como strings únicas. | N/A | Booleano |
Uso recomendado para Remove withespaces e Coalesce
Tenha cuidado para não comprometer a integridadedos dados quando ativar a opção Remove whitespaces. Ao transmitir arquivos com grandes valores de caracteres, o componente processa esses valores durante vários passos antes de consolidá-los em um valor único, e a remoção dos whitespaces é aplicada durante cada um desses passos.
Uma forma segura de usar Remove whitespaces é combiná-la com a opção Coalesce. Isso garante que os valores de caracteres dentro das tags XML serão lidos de uma só vez, sem quebrá-los em vários partes primeiro. No entanto, lembre-se que quando a opção Coalesce é habilitada, ela pode demandar mais recursos do pipeline ao ler grandes blocos de dados de uma vez.
Fluxo de mensagens
Entrada
Não se espera nenhuma mensagem de entrada específica e sim apenas a existência de um arquivo XML no diretório local do pipeline e o preenchimento dos campos obrigatórios File Name e Node Path para o processamento do arquivo.
Saída
total: número total de linhas processadas.
success: número total de linhas processadas com sucesso.
failed: número total de linhas cujo processamento falhou.
Importante: para saber se uma linha foi processada corretamente, deve haver o retorno { "success": true } para cada linha processada.
O componente joga uma exceção se o File Name não existir ou não puder ser lido.
A manipulação de arquivos dentro de um pipeline ocorre de forma protegida. Todos os arquivos podem ser acessados apenas por um diretório temporário, no qual cada pipeline key dá acesso ao seu próprio conjunto de arquivos.
O Stream XML File Reader realiza processamento em lote. Para entender melhor o conceito, leia o artigo sobre Processamento em lote.
Stream XML File Reader em Ação
Os cenários a seguir estão utilizando como base o seguinte arquivo XML:
File name: file.xml
Conteúdo:
Realizando o stream do arquivo informando o nó desejado
Entrada
File Name: file.xml
Node Path: //root/products/product
Saída
Cada elemento identificado pelo caminho do nó desejado será processado de forma independente:
Primeiro subfluxo:
Segundo subfluxo:
Terceiro subfluxo:
Quarto subfluxo:
Realizando o stream do arquivo informando o nó desejado e campos de contexto
Entrada
File Name: file.xml
Node Path: //root/products/product
Context Paths: //root/list-info
Saída
Cada elemento identificado pelo caminho do nó desejado será processado de forma independente:
Primeiro subfluxo:
Segundo subfluxo:
Terceiro subfluxo:
Quarto subfluxo:
Realizando o stream do arquivo informando o nó desejado, campos de contexto e nós à serem ignorados
Entrada
File Name: file.xml
Node Path: //root/products/product
Context Paths: //root/list-info
Ignore Paths: //root/products/product/tags
Saída
Cada elemento identificado pelo caminho do nó desejado será processado de forma independente:
Primeiro subfluxo:
Segundo subfluxo:
Terceiro subfluxo:
Quarto subfluxo:
Realizando o stream do arquivo informando o nó desejado e ignorando nós filhos aninhados
Entrada
File Name: file.xml
Node Path: //root/products/product
Ignore Nested Child Nodes: ativado
Saída
Cada elemento identificado pelo caminho do nó desejado será processado de forma independente:
Primeiro subfluxo:
Segundo subfluxo:
Terceiro subfluxo:
Quarto subfluxo:
Informações adicionais
O Stream XML File Reader utiliza um mecanismo de leitura por eventos, por meio do qual cada tipo de dado presente no arquivo é um evento a ser processado. Com isso, existem alguns tipos de evento que não estão contemplados durante o stream do arquivo. São eles:
PROCESSING INSTRUCTION
START DOCUMENT
END DOCUMENT
SPACE
ENTITY REFERENCE
ENTITY DECLARATION
DTD
NOTATION DECLARATION
Atualizado