Altova MapForce 2023 Enterprise Edition

Una asignación de datos puede insertar datos en una tabla de BD desde cualquier tipo de componente de origen compatible con MapForce, incluidas otras bases de datos. Además puede configurar cómo se crea la clave principal de registros nuevos recién insertados. Por ejemplo, la clave principal se puede tomar de la asignación, generada por la base de datos, o se puede calcular a partir de valores de clave ya existentes en la tabla de BD.

 

A continuación explicamos cómo insertar registros nuevos en una tabla de BD desde un archivo XML. También explicamos cómo se configura la generación de claves principales. 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 utilizado 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 insertar compañías que se encuentran en el archivo Altova-cmpy.xml como registros nuevos en la tabla "Altova" dela base de datos altova.mdb. Si abre el archivo XML de origen, observará que solamente contiene una compañía llamada "Microtech OrgChart". Por tanto, la asignación de datos debe insertar un registro nuevo en la tabla "Altova" que se llamará "Microtech OrgChart". Además será necesario generar su clave principal.

 

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 a continuación.

mf_db_insert_01

Nota:si se dibujan conexiones no deseadas automáticamente para los elementos descendientes, esto significa que está activa la opción Conectar automáticamente los secundarios equivalentes. Si esto as así, para deshacer la última acción, debe seleccionar el comando Edición | Deshacer. Para deshabilitar la opción de conexión automática de secundarios, haga clic en el comando Conexión | Conectar automáticamente los secundarios equivalentes.

 

Paso nº4: configurar la acción Insertar

1.Observe que el componente de destino tiene un botón Acción: Insertar ( tbl-act-icon ). Este botón aparece junto a cada tabla que tiene una conexión con el componente de origen (en este caso, la tabla "Altova"). Haga clic en este botón para configurar más detalladamente la acción de base de datos que se debe ejecutar (en este caso, la acción de inserción). Aparece el cuadro de diálogo "Acciones de tabla de la base de datos".

2.En el cuadro de diálogo, debajo del campo Insertar todo y junto a PrimaryKey, seleccione la opción max() + 1.

mf_db_insert_03

Las opciones que ofrecen estas listas desplegables son:

Opción

Descripción

valor asignado

Permite asignar los datos de origen al campo de base de datos directamente y se trata de la opción estándar para todos los campos de BD. También se puede usar un procedimiento almacenado para suministrar un valor de clave definiendo una relación (véase Usar procedimientos almacenados para generar claves principales).

max() + 1

Genera los valores de clave a partir de las claves que ya existen en la base de datos. Por ejemplo, si la tabla tiene tres registros con calves principales 1, 2 y 3, entonces max() + 1 es 4.

 

En este ejemplo, la tabla "Altova" solo tiene un registro con clave principal 1, así que max() + 1 es 2, que es el valor esperado de la nueva clave principal.

generada por la BD

La base de datos usa la función de identidad para generar valores de clave.

La opción valor asignada elegida para Name significa que esta columna recibirá el valor de la asignación directamente. Para más información sobre las demás opciones consulte Configurar acciones de tabla de BD.

 

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. Para ejecutar el script en la base de datos:

mf_db_insert_04

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).

 

Para ver el resultado abra la base de datos Altova.sqlite en DatabaseSpy o Access y observe que se añadió el registro "Microtech OrgChart" a la tabla "Altova" con la nueva clave principal 2. Los datos de este registro proceden de la instancia XML de entrada.

mf_db_insert_05

 

Hemos conseguido crear una asignación de datos que inserta datos en una tabla de base de datos. Para ver un ejemplo de asignación que inserte datos tanto en la tabla actual como en una tabla secundaria dependiente puede consultar el apartado Insertar datos en tablas vinculadas.

© 2017-2023 Altova GmbH