Ejemplo: redistribuir cadena (de texto de longitud fija a Excel)
Este ejemplo explica paso a paso cómo crear un diseño de asignación que redistribuye datos de cadena. El ejemplo viene con un archivo de muestra. Si prefiere consultar el archivo de muestra antes de empezar con el ejemplo, puede hacerlo en esta ubicación: <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial\ParseString.mfd.
Imaginemos que tenemos datos de texto heredados y guardados en un solo campo de BD. Los datos de texto son una lista de empleados, almacenados en la columna RESOURCE y con formato de campo de longitud fija:
Como los datos de texto están guardados en un solo campo de BD, no es fácil acceder a los registros de cada empleado y manipularlos. Es decir, no es fácil añadir ni quitar empleados en la lista ni ordenar los datos. En este ejemplo, nuestro objetivo es extraer los datos de texto del campo de BD RESOURCE y dividirlos en una estructura para poder procesar todos los registros con facilidad.
Esto se consigue con un componente de redistribución/serialización de cadenas. Lo primero que hará este componente será tomar los datos de texto como entradas. Después los analizará y los convertirá en una estructura. Por último, escribirá la estructura en un formato de destino. En este ejemplo, el formato de destino es una hoja de cálculo Excel (pero recuerde que podría ser cualquier formato de salida compatible con MapForce).
En resumen, la asignación de datos de este ejemplo convertirá el contenido del campo de BD RESOURCE en una tabla. Una vez ejecutada la asignación, cada fila de la tabla corresponderá a un empleado y cada columna corresponderá a uno de estos campos de longitud fija: ID, Apellido, Nombre, Extensión, Puesto, Correo electrónico.
Resultado esperado de la redistribución de cadenas
Ahora veamos las instrucciones paso a paso:
1.Añada la base de datos de origen al área de asignación. La base de datos es un archivo de BD SQLite independiente ubicado en esta ruta de acceso: <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial\\dbresources.db. (Para añadir el componente de base de datos haga clic en el comando Insertar | Base de datos y consulte el apartado Conectarse a una base de datos).
2.Cuando MapForce solicite los objetos de la BD, seleccione la tabla resources.
3.Añada un componente de texto al área de asignación (con el comando de menú Insertar | Archivo de texto). Como los datos de origen son texto delimitado por campos, elija la opción Utilizar procesamiento básico.
4.Configure la estructura del componente de texto para asignarla a la estructura de los datos de texto de origen almacenados en la BD. Como puede ver, en este ejemplo, el texto de origen está compuesto por 6 campos de longitud fija de tamaño fijo:
Tamaño en caracteres | Campo |
---|---|
6 | ID |
15 | Surname |
15 | First Name |
3 | Extension |
25 | Job Title |
25 |
Primero declaramos el componente Texto como De longitud fija y le añadimos seis campos que se correspondan con la tabla anterior. (Para abrir el cuadro de diálogo "Configuración del componente" haga clic con el botón derecho en el componente y elija el comando Propiedades en el menú contextual).
Observe que el Campo4 utiliza el tipo de datos integer. Aunque declarar el Campo4 como tipo numérico es opcional en este ejemplo, así nos aseguramos de que la extensión de teléfono (Campo4) que se extrae del texto de origen sea un valor numérico válido.
5.Haga clic en el botón y seleccione el comando Redistribuir cadenas en FLF del menú contextual. Esto sirve para indicar que este componente redistribuirá una cadena al formato FLF (de longitud fija).
6.Ahora añada el componente Excel 2007+ de destino al área de asignación. Cuando MapForce solicite un archivo de muestra, haga clic en Omitir. (Puede añadir el componente Excel con el comando de menú Insertar | Excel 2007+ y consultar el apartado Agregar archivos Excel 2007+ como componentes de la asignación).
7.Haga clic en el botón situado junto al nodo Filas 1, n=dyn y configure el componente Excel para que escriba una fila por cada campo de texto, empezando por la primera fila (ver configuración en la imagen siguiente). Para más información sobre componentes Excel 2007+ y su configuración consulte el apartado Información sobre componentes Excel 2007+.
8.Dibuje las conexiones entre componentes que aparecen a continuación:
En el lado izquierdo de la asignación, el contenido de la columna de BD resource pasa de ser (se redistribuye) un valor de cadena a una estructura MapForce. En el lado derecho de la asignación, los elementos del componente parse (FLF) se conectan con las diferentes columnas Excel para dividir la cadena de origen en celdas separadas.
El diseño de asignación de datos de MapForce ya está terminado: los datos de cadena se redistribuyen y se crea una estructura a partir de ellos. Si ahora hacemos clic en el panel Resultados, los datos de texto heredados pasan a ser filas y columnas de la hoja de cálculo Excel.