Ejemplo de combinación de datos posicionales y delimitados
Acerca de esta tarea
En este ejemplo se muestra cómo crear un esquema de archivo sin formato para analizar una combinación de datos de posición y delimitados. Para crear un esquema de archivo sin formato, debe analizar primero los datos de archivo sin formato para determinar qué campos y nodos se añadirán al esquema de archivo sin formato. En este ejemplo, creará un esquema de archivo sin formato para las dos líneas de datos siguientes:
BuyRight Pharmacy;USACAMVI334;!389!22;34980;
Taylor Drugs;USANJWLB128;!778!23!523;5667;
Utilice un enfoque descendente para definir los registros y los campos del esquema de archivo sin formato, como se muestra en los siguientes pasos:
Procedimiento
- Cree un nodo raíz:
- En el separador Proyecto, pulse con el botón derecho del ratón sobre la carpeta Esquemas de archivo sin formato y seleccione Nuevo esquema de archivo sin formato. Se abrirá el recuadro de diálogo Asistente básico.
- Especifique Order en el campo Nombre.
- Pulse Aceptar. Se abrirá el Editor de esquema de archivo sin formato y se mostrará el esquema de archivo sin formato bajo la carpeta Esquemas de archivo sin formato en la pestaña Projecto. Además, se mostrará un nodo raíz con el mismo nombre en el separador Diseño de esquema.
- Determine el nivel más alto de estructura de los datos. En
este ejemplo, la estructura más grande son las dos líneas que
representan un registro cada una. Los dos registros de estos datos de archivo sin formato están delimitados por un fin de línea entre los dos registros, como se muestra en la Figura 1: Figura 1. Ejemplo 1 de combinación: los registros del archivo están delimitados por el fin de la línea que está situado entre los caracteres que conforman el registro.
- Configure el nodo raíz denominado Pedido para
analizar los registros hijo repetitivos con los siguientes criterios:
- Separe los datos en registros mediante un delimitador.
- Espere que el documento finalice con un EOS (End of Stream, fin de secuencia) porque el último registro no termina con un delimitador.
- Utilice el delimitador de fin de la línea para delimitar cualquier registro hijo.
- Espere el delimitador entre los datos.
- Espere registros hijo repetitivos.
- Utilice el delimitador de fin de la línea para delimitar los registros hijo repetitivos.
Con estos criterios, especifique los siguientes valores para los paneles Propiedades básicas y Delimitadores del nodo Order como se muestra en la Figura 2:
Figura 2. Ejemplo 1 de panel combinado donde la estructura está delimitada y el documento finaliza con el recuadro EOS marcado. La opción Fin de la línea está seleccionada y la posición Delimitador hijo está establecida como Entre. - Añada un nodo hijo al nodo raíz para representar los registros. En el separador Diseño de esquema, pulse sobre el nodo Pedido. En el menú, seleccione Nuevo hijo > Registro, escriba purchaseOrder, y pulse Aceptar.
- Determine el siguiente nivel de estructura de los datos. En este ejemplo, el siguiente nivel de estructura son los campos delimitados por un punto y coma, como se muestra en la Figura 3: Figura 3. Ejemplo 2 de combinación: los campos individuales del registro están delimitados por un punto y coma.
- Configure el nodo purchaseOrder para
analizar estos campos, como se describe en los siguientes criterios:
- El nodo purchaseOrder puede tener una o varias apariciones.
- Analice los datos del registro en campos hijo mediante un delimitador.
- Utilice el punto y coma como delimitador entre los datos.
- Espere el delimitador después de los datos.
Con estos criterios, especifique los siguientes valores para los paneles Propiedades básicas y Delimitadores del nodo purchaseOrder, como se muestra en la Figura 4:
Figura 4. Ejemplo 2 de panel de combinación: la estructura está establecida como Delimitada y las opciones Máximo ilimitado y Carácter están seleccionadas. La posición del delimitador hijo está establecida como Después. - Añada los campos al nodo purchaseOrder pulsando con el botón derecho del ratón sobre el nodo purchaseOrder en el separador Diseño de esquema y seleccionando la opción Nuevos hijos en la lista. Se mostrará el recuadro de diálogo Adición masiva.
- En el recuadro de diálogo Adición masiva, añada todos los registros hijo y los
campos del nodo purchaseOrder:
- Pulse Añadir y cambie field1 a storeName. Deje el Tipo de nodo establecido en Campo.
- Pulse Añadir y cambie field2 a originCode. Cambie el Tipo de nodo a Registro.
- Pulse Añadir y cambie field3 a items. Cambie el Tipo de nodo a Registro.
- Pulse Añadir y cambie field4 a OrderID. Deje el Tipo de nodo establecido en Campo.
- Pulse Aceptar.
- Determine el siguiente nivel de estructura de los datos. En este
ejemplo, el siguiente nivel de estructura es un conjunto de datos posicionales
incluido en el registro originCode, como se muestra en la Figura 5: Figura 5. Ejemplo 3 de combinación: originCode es una sección de datos posicionales en el registro delimitado.
- Configure el registro originCode como
posicional:
- En el separador Diseño de esquema, seleccione nodo originCode. Se mostrará Propiedades básicas.
- En la lista Estructura, seleccione Posicional.
- Añada los campos posicionales del nodo originCode pulsando con el botón derecho del ratón sobre el nodo originCode en el separador Diseño de esquema y seleccionando la opción Nuevos hijos en la lista. Se abre el recuadro de diálogo Adición masiva.
- En el recuadro de diálogo Adición masiva, añada todos los registros hijo y los
campos del nodo originCode:
- Pulse Añadir y cambie field1 a countryCode. Deje el Tipo de nodo establecido en Campo.
- Pulse Añadir y cambie field2 a stateCode. Deje el Tipo de nodo establecido en Campo.
- Pulse Añadir y cambie field3 a cityCode. Deje el Tipo de nodo establecido en Campo.
- Pulse Añadir y cambie field4 a storeCode. Deje el Tipo de nodo establecido en Campo.
- Pulse Aceptar.
- Configure las Propiedades posicionales de
cada campo posicional. Para cada nodo hijo del nodo originCode,
pulse en el nodo en el separador Diseño de esquema y, al final del panel de propiedades, establezca los valores de Desplazamiento de campo y Longitud de campo como se muestra en la siguiente lista:
- countryCode -
- stateCode -
- cityCode -
- storeCode -
El Desplazamiento de campo se calibra desde la ubicación del carácter actual según se procesa la serie originCode y no desde el comienzo de la serie originCode para cada campo. En este ejemplo, el countryCode se procesa y los tres primeros caracteres de originString se asignan a countryCode. Cuando se procesa el stateCode, la ubicación del carácter actual ya es la posición de carácter 3; por lo tanto, el Desplazamiento de campo de 1 de stateCode se añade a la posición del carácter actual para obtener el punto inicial para el proceso de la serie stateCode, como se muestra en la Figura 6:
Figura 6. Ejemplo 4 de combinación que muestra la posición actual del cursor y el desplazamiento de campo. - countryCode -
- Determine el siguiente nivel de estructura de los datos. En este ejemplo, el siguiente nivel de estructura son los campos repetitivos delimitados por
signos de exclamación, como se muestra en Figura 7: Figura 7. Ejemplo 5 de combinación donde los datos delimitados están indicados por signos de exclamación.
- Configure el nodo items para
analizar registros hijo repetitivos con los siguientes criterios:
- Separe los datos en campos mediante un delimitador.
- Utilice signos de exclamación como delimitadores para delimitar los campos hijo.
- Espere el delimitador antes de los datos.
- Espere uno o varios campos hijo repetitivos.
- Utilice signos de exclamación como delimitadores para delimitar los campos hijo repetitivos.
Con estos criterios, especifique los siguientes valores para los paneles Propiedades básicas y Delimitadores del nodo items, como se muestra en la Figura 8:
Figura 8. Ejemplo 3 de panel de combinación donde la posición del delimitador hijo está establecida como Antes. - Añada el campo hijo repetitivo del nodo items pulsando con el botón derecho del ratón sobre el nodo items en el separador Diseño de esquema y seleccionando la opción Nuevos hijos > Campo en la lista. Se abre el recuadro de diálogo Nuevo campo.
- En Nuevo campo escriba item y pulse Aceptar.
- Configure el nodo item para que incluya una o más apariciones, como se muestra en la Figura 9: Figura 9. Ejemplo 4 de panel de combinación donde Máximo de repeticiones está establecido como Ilimitado.El esquema de archivo sin formato está completo y preparado para probar.
- Copie el siguiente texto en el subpanel izquierdo del panel de
prueba:
BuyRight Pharmacy;USACAMVI334;!389!22;34980;
Taylor Drugs;USANJWLB128;!778!23!523;5667;
Estos datos también se encuentran en el archivo mixedData.txt. Si ha aceptado los valores predeterminados durante la instalación de Studio, este archivo se encuentra en el siguiente directorio: C:\Archivos de programa\IBM\WebSphere Cast Iron Studio 3.X\Samples\FlatFileSchemaAtención: No añada ningún retorno de carro después de la última línea. - Pulse el icono Probar. Se abre el recuadro de diálogo Confirmación de guardado.
- Pulse Sí. La siguiente representación XML de los datos se muestra dentro del panel de prueba:
<?xml version="1.0" encoding="UTF-8"?> <Order> <purchaseOrder> <storeName>BuyRight Pharmacy</storeName> <originCode> <countryCode>USA</countryCode> <stateCode>CA</stateCode <cityCode>MVI</cityCode> <storeCode>334</storeCode> </originCode> <items> <item>389</item> <item>22</item> </items> <orderId>34980</orderId> </purchaseOrder> <purchaseOrder> <storeName>Taylor Drugs</storeName> <originCode> <countryCode>USA</countryCode> <stateCode>NJ</stateCode> <cityCode>WLB</cityCode> <storeCode>128</storeCode> </originCode> <items> <item>778</item> <item>23</item> <item>523</item> </items> <orderId>5667</orderId> </purchaseOrder> </Order>
- En el separador Diseño de esquema, pulse sobre el nodo item. En el subpanel derecho del panel de prueba, los datos analizados en el nodo item están resaltados como se muestra en Figura 10: Figura 10. El nodo item está resaltado
- Pulse sobre el nodo state para ver los datos asignados a ese nodo. Nota: En el proyecto FlatFileSchemasExample se suministra una implementación de referencia del esquema de archivo sin formato Order. Para ver y abrir el proyecto FlatFileSchemasExample, siga los pasos 1 y 2 del Ejemplo de agrupación y pulse dos veces sobre el esquema de archivo sin formato Order. Los nodos del esquema de archivo sin formato se muestran en el separador Diseño de esquema y las propiedades del nodo raíz Order se muestran en el panel derecho.