Altova MapForce 2023 Enterprise Edition

Este ejemplo explica cómo configurar el seguimiento de BD y el registro de errores para asignaciones que insertan datos en una base de datos SQLite. Las instrucciones son parecidas a las que se usan para otros tipos de BD compatibles con MapForce y para otros tipos de acciones de BD (como "actualizar", "omitir", "eliminar", etc).

 

Puede encontrar la asignación que usamos en este ejemplo en <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial\DatabaseExceptions.mfd. Esta asignación inserta los datos de dos tablas de una BD en dos tablas nuevas en la misma BD; encontrará una descripción más detallada de la misma en el apartado Ejemplo: revertir transacciones. Observe que algunos de los registros de la BD son null a propósito para que se generen excepciones de BD.

mf_rollback_ex_01

DatabaseExceptions.mfd

En este ejemplo el objetivo es habilitar el seguimiento para el componente de BD de destino para determinar cuántos errores se generaron y dónde ocurrieron exactamente. A continuación describimos los pasos que hay que seguir para alcanzar este objetivo.

 

Paso 1: habilitar la reversión de transacciones

Esta asignación de ejemplo está configurada para revertir transacciones a nivel de los componentes de BD. Esto significa que cuando aparece la primera excepción la asignación se detiene y revierte todos los datos de vuelta a su estado original. Primero vamos a cambiar las opciones de reversión de transacciones para que la asignación siga ejecutándose incluso aunque se encuentren excepciones para algunas de las entradas del registro:

 

1.Haga clic en el botón mf_ic_del_a_in junto a la tabls new_users, marque la casilla Usar transacciones y elija revertir transacción actual y continuar.

mf_db_trace_05

2.Haga clic en el botón mf_ic_a_in junto a la tabla new_addresses, marque la casilla Usar transacciones y elija revertir transacción actual y continuar.
 

También puede deshabilitar por completo la reversión de transacciones, pero entonces la asignación se detendría con el primer error que ocurriera y no se revertirían los cambios, por lo que no recomendamos esta opción. Con esta opción deshabilitada el seguimiento y el registro de errores solo reflejarían la ejecución de la asignación hasta ese primer error. Para más información sobre cómo revertir transacciones consulte el apartado Gestionar excepciones de BD.

 

Paso 2: configurar el registro de errores

Para habilitar el seguimiento, siga estos pasos:

 

1.Haga clic con el botón derecho en la barra del título del componente de BD y seleccione Propiedades en el menú contextual (también puede hacer doble clic en la barra del título del componente de BD). Se abre el cuadro de diálogo "Configuración del componente".

2.Seleccione Errores en el nivel de seguimiento.

3.Junto a Archivo de seguimiento, teclee el nombre que quiere darle al archivo de seguimiento (en este ejemplo, Errors.xml). No introduzca una ruta absoluta si quiere ejecutar la asignación con MapForce Server en otros equipos o sistemas operativos.

mf_db_trace_05a

Ahora la estructura del componente de BD de destino ha cambiado y muestra un compartimento más que contiene la estructura del archivo de seguimiento:

mf_db_trace_06

Hasta ahora hemos habilitado el seguimiento a nivel de los componentes de BD. En consecuencia, la configuración del seguimiento la heredarán todas las acciones de tabla de ese componente de BD. En este ejemplo la configuración la heredan las acciones "Insertar" de las tablas new_users y new_addresses. Si hace clic en el botón mf_ic_a_in de esas dos tablas, la configuración lo reflejará:

mf_db_trace_07

También puede hacer clic en el botón Campos para configurar qué campos se deben incluir u ocultar en el archivo de seguimiento. En este ejemplo se han incluido todos los campos.

 

Paso 3: configurar los resultados de la asignación

Este paso muestra cómo asignar los valores del archivo de seguimiento a otro tipo de componente (en este caso, un componente simple de salida). Tenga en cuenta que este paso es opcional; se crea un archivo de registro de errores aunque no asigne el archivo de seguimiento a otro componente. Sin embargo, en este ejemplo queremos configurar la asignación explícitamente para que devuelva el número total de errores encontrados en los resultados. Para ello vamos a seguir estos pasos:

 

1.Añada un componente simple de salida con el comando de menú Insertar | Insertar componente de salida. Para más información sobre componentes de salida consulte el apartado Obtener valores de cadena de una asignación.

2.Añada una constante con el comando de menú Insertar | Constante. La constante muestra el texto "Errores totales: " para que el texto de los resultados de la asignación resulte más claro.

3.Arrastre la función concat desde la ventana Bibliotecas a la asignación. Para más información sobre funciones integradas consulte el apartado Agregar una función integrada a una asignación de datos.

 

Como se muestra más arriba, la función concat concatena el texto de la constante con el valor errors suministrado por el archivo de seguimiento.

mf_db_trace_08

Con la configuración de la imagen anterior, cuando se ejecuta la asignación con MapForce los resultados mostrarán el texto "Errores totales: {value}", donde value representa el número de errores encontrados en el momento de la ejecución.

 

En este momento no se puede ejecutar la asignación con el botón de vista previa btn_component_preview_pressed activado en el componente "result" y hacerlo provocaría un error. Primero debe existir un archivo de seguimiento, ya que el componente simple de salida lee los datos de ese archivo de seguimiento. En el siguiente paso explicamos cómo crear uno.

 

Paso 4: ejecutar la asignación

Para ejecurtar esta asignación con MapForce:

 

1.Haga clic en el botón de vista previa btn_component_preview_pressed del componente de BD.

2.Haga clic en la pestaña Resultados.

3.En el menú Resultados, haga clic en Ejecutar script SQL. En este momento la asignación se encuentra la primera excepción, que hemos incluido a propósito. Aparece el cuadro de diálogo "Excepción de transacción de BD".

mf_db_trace_09

4.Seleccione Revertir esta transacción y continuar y haga clic en Aceptar.

 

Nota:si se ejecuta una asignación con MapForce Server no aparece ningún cuadro de diálogo y las transacciones con errores se revierten automáticamente de acuerdo a las opciones configuradas en MapForce.

 

En este ejemplo, una vez se ha completado la ejecución de la asignación se revierten todas las transacciones y solo se envían a la base de datos aquellas que no hayan tenido errores. Los errores encontrados se escriben en el archivo Errors.xml; a continuación mostramos un breve extracto del mismo:

mf_db_trace_10

Ahora que tenemos un archivo de registro se puede acceder a la vista previa que devuelve el número total de errores durante la ejecución en MapForce. Para ello:
 

1.En la asignación, haga clic en el botón de vista previa btn_component_preview_pressed junto al componente "result".

2.Haga clic en la pestaña Resultados y observe los resultados.

mf_db_trace_11

Esta parte de la asignación lee datos del archivo de registro que creamos previamente. Si este archivo no existe se generará un error.

© 2017-2023 Altova GmbH