Establezca la
Detección de registros y otras
propiedades en los separadores Registros y Elementos
del nodo para leer archivos en formatos diferentes.
Los ejemplos siguientes se basan en los ejemplos descritos en
Utilización de un archivo local como entrada del flujo de mensajes y
Lectura de un archivo en un directorio FTP o SFTP remoto.
En cada caso, se describe el archivo de entrada que se debe utilizar, los
valores de propiedades y los resultados previstos.
Los ejemplos, que describen el uso del nodo
FileInput, se pueden aplicar al nodo
FTEInput, con las siguientes
condiciones:
- El nodo FTEInput no tiene
ningún separador Básicas.
- FTP y SFTP no se utilizan para transmitir archivos a un nodo
FTEInput.
Los
ejemplos también se pueden aplicar al nodo
FileRead, con las siguientes condiciones:
Ejemplo 1. Los registros se separan mediante un fin de
línea de DOS o UNIX
Las
propiedades a establecer son:
Separador |
Propiedad |
Valor |
Registros y elementos |
Detección de registros |
Delimitados |
Delimitador |
Fin de línea de DOS o UNIX |
Tipo de delimitador |
Posfijo |
El
nodo
FileInput detecta registros que terminan con un fin de línea de DOS o
UNIX y crea un mensaje para cada uno
que encuentra.
El
resultado es la propagación de tres mensajes, como se indica a continuación:
El
fin de línea de DOS o UNIX no forma
parte de ningún mensaje propagado.
Ejemplo 2. Los registros se separan mediante un delimitador personalizado
Cree
un archivo de entrada llamado
test_input2.xml con el
siguiente contenido:
<Message>test01</Message>,<Message>test001</Message>,<Message>test0001</Message>
No
debe haber ningún terminador de línea al final de estos datos de archivo; el
analizador XMLNSC ignora el terminador de línea si está presente.
El
hexadecimal X'2C' representa una coma en ASCII. En otros sistemas, debe
utilizar un código hexadecimal distinto.
El nodo FileInput detecta el carácter
de coma y lo utiliza para separar registros. Puesto que el valor de la
propiedad Tipo de delimitador es
Infijo, no es necesario que
haya ninguna coma al final del archivo.
El resultado es la propagación de tres mensajes, como se indica a continuación:
- Mensaje 1:
<Message>test01</Message>
- Mensaje 2:
<Message>test001</Message>
- Mensaje 3:
<Message>test0001</Message>
El
carácter de coma no forma parte de ningún mensaje propagado. No hay
ninguna coma en los cuerpos de los mensajes de este ejemplo; si los cuerpos
de mensajes contuvieran comas, los registros se partirían en esos puntos,
lo que provocaría que se propagaran mensajes mal formados al resto del
flujo.
Ejemplo 3. Los registros se separan mediante un número fijo de bytes
Cree
un archivo de entrada llamado
test_input3.xml con el siguiente contenido:
<Message>123456789</Message><Message>abcdefghi</Message><Message>rstuvwxyz</Message>
No
debe haber ningún terminador de línea al final de este archivo.
El
nodo
FileInput segmenta el
archivo de entrada en registros de 28 bytes de longitud.
El
resultado es la propagación de tres mensajes, como se indica a continuación:
- Mensaje 1:
<Message>123456789</Message>
- Mensaje 2:
<Message>abcdefghi</Message>
- Mensaje 3:
<Message>rstuvwxyz</Message>
Cada
mensaje tiene una longitud de 28 bytes. Si el archivo contiene bytes
finales, por ejemplo un par de retorno de carro-salto de línea, se
propaga otro mensaje que contiene estos bytes; los bytes finales pueden
o no ser reconocidos por el dominio de mensajes, el conjunto de mensajes y el
tipo de mensaje asignados para analizar el mensaje.
Ejemplo 4. Los registros son archivos enteros
Cree
un archivo de entrada llamado
test_input4.xml con el siguiente contenido:
<Message>Serie de texto de una longitud decidida por el usuario, que incluye
terminadores de línea, siempre que sólo contenga este código al final.</Message>
No
debe haber ningún terminador de línea al final de este archivo; si hay
alguno, no tiene ningún efecto.
El
nodo
FileInput no parte el
archivo; propaga todo el contenido del archivo como un solo registro para
que lo analice el dominio de mensajes, el conjunto de mensajes y el tipo
de mensaje tal como se especifica en el nodo. En este ejemplo, se utiliza
el analizador XMLNSC y el conjunto de mensajes
xml1, por
lo que el mensaje se reconoce.
El resultado es la propagación de un mensaje, como se indica a continuación:
Los
bytes finales (por ejemplo, terminadores de línea) están incluidos.
Ejemplo 5. Los registros los reconoce el analizador especificado en la propiedad Dominio de mensajes como mensajes independientes
Cree
un archivo de entrada llamado
test_input5.xml con el
siguiente contenido:
<Message>Serie de texto de una longitud decidida por el usuario</Message><Message>y otra</Message>
<Message>y otra en una nueva línea</Message>
Los
terminadores de línea al final de este archivo, o al final de las líneas, son aceptables.
El
nodo
FileInput se remite al
analizador para que determine los límites de registro. En este ejemplo, el
conjunto de mensajes
xml1 del dominio XMLNSC debe
reconocer el formato XML
<Message> completo. XMLNSC
absorbe el espacio en blanco final (por ejemplo, los terminadores de línea).
El
resultado es la propagación de tres mensajes, como se indica a continuación:
- Mensaje 1:
<Message>Serie de texto de una longitud decidida por el usuario</Message>
- Mensaje 2:
<Message>y otra</Message>
- Mensaje 3:
<Message>y otra en una nueva línea</Message>
Los
espacios en blanco finales (por ejemplo, los terminadores de línea) se incluyen en los mensajes.