Flat Files complejos


Cuando se trabaja con BTS 2004 es muy común tener que generar esquemas (schemas) para representar archivos de texto (flat files) que ingresan al proceso de integración como message object que posteriormente es utilizan en mapeos u otras operaciones.  Bien, en ocasiones los archivos de texto pueden ser representados por schemas sencillos de construir, pero en otras ocasiones los archivos de texto se tornan un poco complejos de representar debido a sus características lo son los registros opcionales; a continuación se presenta un ejemplo de cómo representar estos archivos con un schema.


Especificación Archivo Texto


La información almacenada en el archivo representa un pedido realizado con una información básica acerca del mismo, en forma adicional un pedido puede tener asociados uno o mas clientes a los cuales se les debe de distribuir el pedido y para cada uno de los clientes se debe especificar que pertenecen a los mismos.  Por ultimo, se debe especificar la persona que entrega el pedido, y si existe alguna falla en alguna entrega se deberá de dar una descripción.


No toda la información en el archivo es obligatoria, por lo que algunos registros pueden o no existir; adicionalmente los registros estarán separados por retornos de línea.  El siguiente cuadro expresa mejor el requerimiento:


Registro                 IdentificaciónRegistro   Requerido
NumeroPedido                 0100                              X
DescripcionPedido           0101                                       
DatosCliente                   0200                               X
DomicilioCliente              0201                               X      
DescripcionCliente           0202                               
DomicilioAuxiliar              0203                                     
NombreArticulo                0300                               X
DescripcionArticulo          0300                                     
EntregadoPor                  0400                               X
EntregaFallida                 0500                                     


Creación del esquema


De acuerdo a la especificación inicial, nos podremos hacer una referencia en la cabeza con un XML estructurado (ver XML)

Crear el esquema inicial para lograr esta representación no es complicado, pero centremos la atención en dos aspectos importantes: como identificar los registros y como realizar excepción de registros opcionales.


Identificar registros


En la definición de los esquemas utilizaremos nodos padres y nodos que representaran los registros del archivo.  Los nodos que representan los registros se declararan como una estructura basada en posiciones y en forma adicional se establecerá que el identificador del nodo será el indicado en la especificación inicial.


Esto es, por ejemplo, para el registro NumeroPedido así quedaran las propiedades:


Propiedad       Valor
Structure        Positional
Tag Identifier   0100


En forma adicional, en el primer elemento de cada uno de estos registros (elementos o atributos)  se debe de especificar la propiedad Positional Offset igual a 4.  Esto se realiza asi para establecer el inicio del contenido del registro.


Registros Opcionales


Al detallar la especificación se puede observar que algunos registros son opcionales y por lo tanto pueden no existir en los archivos ingresados, en este caso se pueden utilizar Choice Group y agrupar en estos los registros que deseamos sea opcional.


Dentro de la especificación del esquema de XML (XML Schema), este tipo de agrupación permite que el elemento sea opcional y pueda estar presente o no en una instancia de un mensaje.  Al finalizar, el esquema resultara así con los elementos de agrupación previamente mencionados (ver imagen)

Se adjunta el xsd y un txt de ejemplo.


Autor: Carlos Medina


Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho

Comments (0)

Skip to main content