Controlando como os Arquivos São Separados em Registros

Configure a Detecção de registro e outras propriedades nas guias Registros e Elementos do nó para ler arquivos em formatos diferentes.

Os exemplos a seguir são baseados nos exemplos descritos em Usando um arquivo local como entrada para seu fluxo de mensagens e em Lendo um arquivo em um diretório FTP, FTPS ou SFTP remoto Em cada caso, o arquivo de entrada a utilizar, as configurações das propriedades e os resultados esperados são descritos.
Os exemplos, que descrevem usando o nó FileInput , podem ser aplicados no nó FTEInput , com as seguintes provisos:
  • O nó FTEInput não possui guia Basic.
  • O FTP e o SFTP não são usados para transmitir arquivos para um nó FTEInput .
Os exemplos também podem ser aplicados no nó FileRead , com as seguintes provisos:
  • O nó FileRead propaga apenas um registro a partir do arquivo e, por padrão, este registro é o primeiro registro no arquivo. O nó FileRead pode ser configurado para propagar um registro específico. Para obter mais informações, consulte Roteamento ou enriquecimento de uma mensagem com base no conteúdo de um arquivo
  • O FTP e o SFTP não são usados para transmitir arquivos para um nó FileRead .

Exemplo 1. Os registros são separados por um final de linha DOS ou UNIX

Este exemplo é idêntico ao descrito em Usando um arquivo local como entrada para seu fluxo de mensagens ou Lendo um arquivo em um diretório remoto de FTP, FTPS ou SFTP Crie um arquivo de entrada chamado test_input1.xml com o seguinte conteúdo:
<Message>test1</Message>
<Message>testtwo</Message>
<Message>testthree</Message>
Cada linha termina com um terminador de linha.
As propriedades a configurar são:
Guia Propriedade Valor
Registros e Elementos Detecção de registro Delimitado
Delimitador Final de linha do DOS ou do UNIX
Tipo de Delimitador Postfix
O nó FileInput detecta registros que terminam com um final de linha DOS ou UNIX e cria uma mensagem para cada um que ele localiza.
O resultado é a propagação de três mensagens, da seguinte forma:
  • Mensagem 1:
    <Message>test1</Message>
  • Mensagem 2:
    <Message>testtwo</Message>
  • Mensagem 3:
    <Message>testthree</Message>
A extremidade de linha DOS ou UNIX não faz parte de qualquer mensagem propagada.

Exemplo 2. Os registros são separados por um delimitador personalizado

Crie um arquivo e entrada chamado test_input2.xml com o seguinte conteúdo:
<Message>test01</Message>,<Message>test001</Message>,<Message>test0001</Message>
Não deve haver nenhum terminador de linha no final desses dados do arquivo; o analisador XMLNSC ignora o terminador de linha quando ele está presente.
Além das configurações de propriedade descritas em Usando um arquivo local como entrada para seu fluxo de mensagens ou Lendo um arquivo em um diretório FTP, FTPS ou SFTP remoto, configure estas propriedades:
Guia Propriedade Valor
Básica Nome ou padrão de arquivo test_input2.xml
Registros e Elementos Detecção de registro Delimitado
Delimitador Delimitador customizado
Delimitador customizado 2C
Tipo de Delimitador Infix
O X'2C' hexadecimal representa uma vírgula em ASCII. Em outros sistemas, deve-se usar um código hexadecimal diferente.

O nó FileInput detecta o caractere de vírgula e usa-o para separar registros. Como o valor da propriedade Tipo de Delimitador é Infix, uma vírgula não é necessária no final do arquivo.

O resultado é a propagação de três mensagens, da seguinte forma:
  • Mensagem 1:
    <Message>test01</Message>
  • Mensagem 2:
    <Message>test001</Message>
  • Mensagem 3:
    <Message>test0001</Message>
O caractere vírgula não faz parte de nenhuma mensagem propagada. Não há vírgulas nos corpos da mensagem neste exemplo; se os corpos da mensagem continham vírgulas, os registros serão divididos nesses pontos resultantes nas mensagens formadas incorretamente que estão sendo propagadas para o restante do fluxo.

Exemplo 3. Os registros são separados por um número fixo de bytes

Crie um arquivo e entrada chamado test_input3.xml com o seguinte conteúdo:
<Message>123456789</Message><Message>abcdefghi</Message><Message>rstuvwxyz</Message>
Não deve haver terminador de linha no final desse arquivo.
Além das configurações de propriedade descritas em Usando um arquivo local como entrada para seu fluxo de mensagens ou Lendo um arquivo em um diretório FTP, FTPS ou SFTP remoto, configure estas propriedades:
Guia Propriedade Valor
Básica Nome ou padrão de arquivo test_input3.xml
Registros e Elementos Detecção de registro Comprimento fixo
Comprimento 28
O nó FileInput divide o arquivo de entrada em registros a cada 28 bytes de comprimento.
O resultado é a propagação de três mensagens, da seguinte forma:
  • Mensagem 1:
    <Message>123456789</Message>
  • Mensagem 2:
    <Message>abcdefghi</Message>
  • Mensagem 3:
    <Message>rstuvwxyz</Message>
Cada mensagem tem 28 bytes de comprimento. Se o arquivo contiver bytes de trilha, por exemplo um par de feed de linha com retorno de linha, uma mensagem adicional contendo esses bytes será propagada; os bytes de trilha poderão ou não ser reconhecidos pelo domínio de mensagem, modelo de mensagem e tipo de mensagem designados para analisar a mensagem.

Exemplo 4. Registros são arquivos inteiros

Crie um arquivo e entrada chamado test_input4.xml com o seguinte conteúdo:
<Message>Text string of a length decided by you, even including line 
terminators, as long as it only contains this tag at the end.</Message>
Não deve haver terminador de linha no final desse arquivo; se houver um, ele não terá efeito.
Além das configurações de propriedade descritas em Usando um arquivo local como entrada para seu fluxo de mensagens ou Lendo um arquivo em um diretório FTP, FTPS ou SFTP remoto, configure estas propriedades:
Guia Propriedade Valor
Básica Nome ou padrão de arquivo test_input4.xml
Registros e Elementos Detecção de registro Arquivo Inteiro
O nó FileInput não divide o arquivo; ele propaga todo o conteúdo do arquivo como um registro único a ser analisado pelo domínio da mensagem, modelo de mensagem e tipo de mensagem conforme especificado no nó. Nesse exemplo, você está usando o analisador XMLNSC e o conjunto de mensagens xml1; portanto, a mensagem é reconhecida.
O resultado é a propagação de uma mensagem, da seguinte forma:
  • Mensagem 1:
    <Message>Text string of a length decided by you, even including line terminators, as long as
    it only contains this tag at the end.</Message>
Os bytes finais (por exemplo, terminadores de linha) são incluídos.

Exemplo 5. Os registros são reconhecidos como mensagens separadas pelo analisador especificado na propriedade Domínio da mensagem

Crie um arquivo e entrada chamado test_input5.xml com o seguinte conteúdo:
<Message>Text string of a length decided by you  </Message><Message>and another</Message>
<Message>and another on a new line</Message>
Terminadores de linha no final desse arquivo ou no final das linhas são aceitáveis.
Além das configurações de propriedade descritas em Usando um arquivo local como entrada para seu fluxo de mensagens ou Lendo um arquivo em um diretório FTP, FTPS ou SFTP remoto, configure estas propriedades:
Tabela 1.
Guia Propriedade Valor
Básica Nome ou padrão de arquivo test_input5.xml
Registros e Elementos Detecção de registro Sequência de Registro Analisado
O nó FileInput defere-se ao analisador para determinar os limites de registro. Nesse exemplo, o conjunto de mensagens xml1 no domínio XMLNSC deve reconhecer o formato XML completo de <Message>. XMLNSC absorve o espaço em branco à direita (por exemplo, terminadores de linha).
O resultado é a propagação de três mensagens, da seguinte forma:
  • Mensagem 1:
    <Message>Text string of a length decided by you  </Message>
  • Mensagem 2:
    <Message>and another</Message>
  • Mensagem 3:
    <Message>and another on a new line</Message>
Espaço em branco final (por exemplo, terminadores de linha) são incluídos nas mensagens.