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 Fluxo de Mensagens e
Lendo um Arquivo em um Diretório FTP 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 o uso do nó
FileInput, podem ser aplicados
no nó
FTEInput, com
as seguintes disposições:
- O nó FTEInput não possui
a guia Básico.
- FTP e SFTP não são usados para transmitir arquivos para um nó FTEInput.
Os
exemplos também podem ser aplicados ao nó
FileRead, com as seguintes provisões:
- O nó FileRead propaga apenas um registro
do arquivo e, por padrão, esse registro é o primeiro registro no arquivo. O nó
FileRead pode ser configurado para propagar um
registro específico. Para obter informações adicionais,
consulte Roteando ou Enriquecendo uma Mensagem com Base no Conteúdo de um Arquivo.
- FTP e SFTP não são usados para transmitir arquivos para um nó FileRead.
Exemplo 1. Os Registros são Separados por um Fim da Linha do DOS
ou UNIX
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 os registros que terminam com um fim de linha de DOS ou UNIX e cria uma mensagem para cada um localizado.
O resultado é a propagação de três mensagens,
da seguinte forma:
O
fim de linha do DOS ou do UNIX não faz parte de
nenhuma mensagem propagada.
Exemplo 2. Os Registros são Separados por um Delimitador Customizado
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.
O X'2C' hexadecimal representa uma vírgula em ASCII. Em
outros sistemas, você deve usar um código hexadecimal diferente.
O nó do FileInput detecta o
caractere de vírgula e o usa 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 de 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.
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 finais, por exemplo, um par de retorno de linha/avanço de linha,
uma mensagem adicional contendo esses bytes será propagada; os bytes finais podem ou não
ser reconhecidos pelo domínio de mensagem, conjunto de mensagens e tipo de mensagem
designados para analisar a mensagem.
Exemplo 4. Os 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.
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 de
mensagem, conjunto de mensagens 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:
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
de Mensagem
Crie um arquivo de 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.
O nó
FileInput transfere para o analisador a determinação dos limites do 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.