Asignar varios orígenes de datos a un destino

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Tutoriales >

Asignar varios orígenes de datos a un destino

En el tutorial anterior pasamos datos de un archivo de origen (books.xml) a un archivo de destino (library.xml). El archivo de destino no existía antes de ejecutar la asignación, es decir, se generó al transformar la asignación. Imaginemos ahora que ya tuviéramos un archivo llamado library.xml y que deseáramos combinar sus datos con los datos convertidos de books.xml.

 

En este tutorial el objetivo es diseñar una asignación de datos que genere un archivo llamado merged_library.xml. El archivo de resultados generado incluirá los datos de ambos archivos books.xml y library.xml. Recuerde que los archivos utilizados como fuente (books.xml y library.xml) tienen esquemas diferentes. Si los archivos fuente tuvieran el mismo esquema, también podría combinar sus datos usando una técnica diferente (consulte el tutorial Procesar y generar archivos de forma dinámica).

Tutorial_Merge_Multiple_Sources_to_One_Target

Modelo abstracto de la transformación de datos

Para conseguir nuestro objetivo debemos seguir estos pasos:

 

Paso nº1: preparar el archivo de diseño de asignación

Para este tutorial usamos como punto de partida la asignación BooksToLibrary.mfd de la carpeta <Documentos>\Altova\MapForce2019\MapForceExamples\Tutorial\. Esta asignación es la que diseñamos en el primer tutorial (Pasar datos XML a un esquema nuevo). Para empezar abrimos el archivo BooksToLibrary.mfd en MapForce y lo guardamos con otro nombre.

 

Asegúrese de guardar la asignación nueva en la carpeta <Documentos>\Altova\MapForce2019\MapForceExamples\Tutorial\ porque hace referencia a varios archivos que están en esa carpeta.

mfdBooksToLibrary-BAS

BooksToLibrary.mfd

 

Paso nº2: crear otro componente de origen

Primero seleccionamos el componente de destino, lo copiamos (Ctrl+C) y lo pegamos (Ctrl+V) en el panel de asignación. Haga clic en el título de este nuevo componente y colóquelo debajo del componente books.

tut-03-01-BAS

 

Ahora la asignación tiene dos componentes de origen (books y library) y un componente de destino (library).

 

Los componentes de asignación se pueden mover en cualquier dirección (izquierda, derecha, abajo, arriba). Sin embargo, las tareas de asignación serán más fáciles si coloca los componentes de origen a la izquierda de los componentes de destino. Esta es la convención utilizada en esta documentación y en los archivos de ejemplo que vienen con MapForce.

 

Paso nº3: verificar y configurar los archivos de entrada y salida

En el paso anterior tomamos el componente de destino y lo pegamos como componente de origen. Esto significa que el nuevo componente de origen hereda la configuración del componente de destino. Ahora debemos modificar el nombre de los archivos de instancia de entrada y salida para que sean correctos. Haga doble clic en el título de cada componente y, en el cuadro de diálogo "Configuración del componente", verifique y corrija el nombre de los archivos de entrada y salida de cada uno de ellos.

tut-03-03-BAS

Configuración del primer componente de origen (books)

tut-03-04-BAS

Configuración del segundo componente de origen (library)

tut-03-05-BAS

Configuración del componente de destino (merged_library)

Como puede ver en las imágenes el primer componente de origen lee datos del archivo books.xml, mientras que el segundo lee datos de library.xml. Por su parte, el componente de destino genera datos en un archivo llamado merged_library.xml.

 

 

Paso nº4: crear las conexiones

El siguiente paso es dar la orden de escribir datos del segundo componente de origen en el componente de destino. Haga clic en el conector de salida del elemento publication del componente de origen library y arrástrelo hasta el conector de entrada del elemento publication del componente de destino library. Como el conector de entrada del destino ya está conectado, aparece esta notificación:

tut-03-02-BAS

En este ejemplo concreto no queremos reemplazar la conexión porque nuestro objetivo es asignar datos procedentes de dos fuentes distintas. Por tanto, en este ejemplo elegimos la opción Duplicar la  entrada. El resultado es que el componente de destino también aceptará datos del nuevo componente de origen. Este es el aspecto que tiene ahora el diseño de asignación:

tut-03-06-BAS

Observe que el elemento publication del componente de destino está duplicado. El nodo publication(2) nuevo aceptará datos del componente de origen library. Y, lo que es más importante, aunque el nombre de este nodo aparezca como publication(2) en la asignación, en el archivo XML resultante se llamará publication.

 

Ahora puede hacer clic en el botón Resultados situado en la parte inferior del panel de asignación para ver el resultado. Observe que tanto los datos de library.xml como los de books.xml se incluyeron en el archivo de salida merged_library.xml.

 


© 2019 Altova GmbH