Stream File Reader Pattern
Descubra mais sobre o componente Stream File Reader Pattern e saiba como utilizá-lo na Digibee Integration Platform.
O Stream File Reader Pattern lê um arquivo de texto local em blocos de linha conforme o pattern configurado e dispara subpipelines para processar cada mensagem. Esse recurso deve ser utilizado para arquivos grandes.
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)
.
File Name (DB)
Nome ou full file path (ex.: tmp/processed/file.txt) do arquivo local.
N/A
String
Tokenizer
XML, PAIR e REGEX. Utilizando a opção XML, é possível informar o nome da tag XML para que o componente envie o bloco que a contenha. Utilizando a opção PAIR, é possível configurar um token de início e um token de término para que o componente retorne ao subfluxo todas as linhas entre ambos os tokens. Utilizando a opção REGEX, é necessário informar uma expressão regular para que o componente retorne o bloco entre as expressões regulares.
XML
String
Token
Token que será utilizado para buscar o padrão no arquivo informado.
N/A
String
End Token
Token de término. Este parâmetro fica disponível apenas quando o Tokenizer PAIR é selecionado.
N/A
String
Include Tokens
Para a inclusão de tokens de início e término. Este parâmetro fica disponível apenas quando o Tokenizer PAIR é selecionado.
False
Booleano
Group
Valor inteiro que determina o valor de agrupamento retornado pelo componente ao encontrar um match com o padrão definido.
N/A
String
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.
False
Booleano
Fail On Error
A habilitaçã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).
False
Booleano
Fluxo de Mensagens
Entrada
File Name substitui o arquivo local padrão.
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.
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 File Reader Pattern realiza processamento em lote. Para entender melhor o conceito, leia a documentação.
Stream File Reader Pattern em Ação
Veja abaixo como o componente se comporta em determinada situação e a sua respectiva configuração.
Utilizando o Tokenizer XML e buscando informações de tags que podem estar em várias linhas
Dado que se deseja ler o seguinte arquivo XML:
file.xml
Configurando o componente para apenas retornar o bloco XML da tag order
:
File Name: file.xml
Tokenizer: XML
Token: order
O resultado será 2 subfluxos contendo os valores que estão dentro da tag order
:
Primeiro:
Segundo:
Utilizando o Tokenizer PAIR para ler um arquivo onde tenha um token de início e término para cada bloco
file.txt
File Name: file.txt
Tokenizer: PAIR
Token: ###
End Token: --###
Include Tokens: desativado
O resultado será 3 subfluxos contendo os valores que estão dentro dos tokens de início (###
) e término (--###
):
Primeiro:
Segundo:
Terceiro:
Usando o Tokenizer REGEX para buscar todos as linhas entre padrões
file.txt
Então deseja-se buscar o padrão:
ID-\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
File Name: file.txt
Tokenizer: REGEX
Token: ID-\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
O resultado será 2 subfluxos contendo os valores que casam com o padrão REGEX informado.
Primeiro:
Segundo:
Usando o Tokenizer REGEX para buscar todas as linhas entre padrões e agrupando os resultados de 2 em 2
file.txt
Então deseja-se buscar o padrão:
ID-\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
File Name: file.txt
Tokenizer: REGEX
Token: ID-\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
Group: 2
O resultado será 1 subfluxo contendo os valores que casam com o padrão REGEX informado.
Quando o Tokenizer REGEX é utilizado no agrupamento, o padrão encontrado como saída é exibido.
Caso o padrão informado no arquivo não seja encontrado, então o retorno será uma execução com todo o arquivo. Atente-se ao especificar o REGEX.
Atualizado