Altova MapForce 2023 Enterprise Edition

Con este ejemplo explicamos cómo actualizar datos de una tabla de base de datos con datos procedentes de un XML de origen. Para ello nos serviremos de estos archivos:

 

altova-cmpy.xml, que contiene los datos de origen que se deben insertar en la base de datos.

Altova_Hierarchical.xsd, el esquema que se utilizará para validar el archivo de instancia anterior.

Altova.sqlite, la base de datos de destino que se debe actualizar.

 

Todos estos archivos están en la carpeta <Documentos>\Altova\MapForce2023\MapForceExamples\ y, para simplificar, en las instrucciones omitimos su ruta de acceso.

 

La asignación de este ejemplo modifica un archivo de base de datos de ejemplo. Lo más recomendable es crear una copia de seguridad de la base de datos original y empezar con una copia nueva antes de seguir las instrucciones que aparecen más abajo. Así se evitarán posibles modificaciones en los ejemplos originales y obtendrá el mismo resultado que en este ejemplo. Para más información consulte Ejecutar asignaciones que modifican bases de datos.

 

 

El objetivo de la asignación de datos que nos ocupa es actualizar todos los registros de la tabla "Person" con instancias de "Person" del documento XML. Cada persona del archivo XML tiene un elemento secundario llamado PrimaryKey. Cada persona de la tabla "Person" tiene una columna llamada PrimaryKey. Solamente se deben actualizar los registros que correspondan a personas del archivo XML con un secundario PrimaryKey que coincida con la columna PrimaryKey de una persona de la base de datos.

 

Para conseguir este objetivo debemos seguir estos pasos:

 

Paso nº1: insertar el componente XML de origen

En el menú Insertar haga clic en el comando Archivo o esquema XML y navegue hasta el esquema Altova_Hierarchical.xsd. Cuando la aplicación solicite un archivo de instancia, navegue hasta el archivo altova-cmpy.xml.

 

Paso nº2: insertar la base de datos de destino

En el menú Insertar haga clic en el comando Base de datos y siga los pasos del asistente para conectarse a Altova.sqlite (véase Agregar, editar y quitar objetos de BD).

 

Paso nº3: dibujar las conexiones

Dibuje las conexiones de asignación de datos que aparecen en la imagen.

mf_db_update_01

 

Paso nº4: configurar la acción Actualizar

1.En el componente de destino haga clic en el botón Acción: Insertar tbl-act-icon situado junto a la tabla "Person".

2.Junto al campo Acción para el registro seleccione la opción Actualizar si..., que cambiará la acción de tabla de base de datos a una acción de actualización condicional. Es decir, el registro actual solamente se actualizará si se cumple determinada condición (ver paso siguiente).

3.Junto al campo PrimaryKey, seleccione el valor es igual (imagen siguiente). Esto define la condición de actualización: es decir, el registro de la base de datos solamente se actualizará cuando el valor de su PrimaryKey sea igual al valor de PrimaryKey que procede de la asignación.

mf_db_update_02

En este ejemplo el operador de igualdad se aplica al campo PrimaryKey, que suele ser el caso en tareas de actualización de bases de datos. Tenga en cuenta que también se pueden definir condiciones en otros campos y no solo en claves principales. Por ejemplo, si selecciona el valor es igual de los campos First y Last, podría actualizar los registros cuyo nombre y apellido coincida con los del XML de origen.

 

Puede optar por marcar la casilla Null equal. En este ejemplo esta casilla es irrelevante, ya que ni el campo ClavePrimaria del XML de origen ni el campo ClavePrimaria de la BD contienen valores null. Sin embargo, debería marcar eta casilla si sus datos contienen valores null y quiere que estos sean tratados como iguales; de lo contrario puede que no obtenga los resultados deseados. Para más información consulte el apartado Gestionar valores null en acciones de tabla de BD.

 

4.Haga clic en Aceptar para cerrar el cuadro de diálogo. Observe que en la asignación el botón Acción: Insertar tbl-act-icon ahora se ha transformado en el botón Acción: Actualizar mf_db_ic_action_update para indicar que se definió una acción de actualización para esta tabla.

 

Paso nº5: vista previa de la asignación y actualizar la base de datos

Abra el panel Resultados para consultar una vista previa de los resultados de la asignación. La asignación genera un script SQL que contiene las acciones que se deben ejecutar en la base de datos. El script no ha modificado todavía la base de datos. Solamente se trata de una vista previa.

 

mf_db_update_03

 

Para ejecutar el script en la base de datos:

 

En el menú Resultados haga clic en Ejecutar script SQL.

 

Nota:el script SQL se puede ejecutar desde MapForce directamente pero hay otras maneras de actualizar la base de datos (véase Ejecutar asignaciones que modifican bases de datos).

© 2017-2023 Altova GmbH