Mapeo de bases de datos con manejo de excepciones de la base de datos
Los procesos empresariales críticos dependen de datos fiables, y los administradores de bases de datos, así como otros analistas de datos, desean tener la certeza de la integridad de la información almacenada en las tablas de la base de datos. Durante las operaciones automatizadas de ETL (extracción, transformación y carga) u otras tareas de importación de bases de datos, es posible que se encuentren datos inválidos que puedan comprometer el éxito del proceso. Altova MapForce incluye mecanismos de manejo de excepciones de bases de datos para revertir los datos afectados cuando se produce un error, y opcionalmente, continuar con el resto del mapeo de la base de datos.
Por ejemplo, un error en un único registro no necesariamente debe impedir que un proceso de transformación de datos continúe. Esto puede ocurrir, por ejemplo, cuando ciertas restricciones de la base de datos impiden que el proceso inserte o actualice datos inválidos.

La habilitación del manejo de excepciones en la base de datos implica que todos los cambios realizados en el componente de la base de datos se incluyen dentro de transacciones que pueden ser revertidas en caso de error. Los usuarios pueden optar por continuar con el resto del proceso o detener la ejecución. Las transacciones se pueden habilitar a nivel del componente de la base de datos, a nivel de tabla o para procedimientos almacenados.
El manejo de excepciones puede combinarse incluso con el registro (seguimiento) de la salida de la base de datos para crear un registro de los errores que se producen durante el procesamiento automatizado.
Veamos cómo funciona.
La carpeta de ejemplos de MapForce incluye un mapeo de base de datos y una base de datos SQLite que ilustran el manejo de transacciones y la reversión de operaciones. Por supuesto, estas funciones son compatibles con todas las bases de datos relacionales populares, para tareas comunes como la transformación de PostgreSQL a SQLite, el mapeo de XML a SQL Server, la conversión de JSON a Access, y así sucesivamente.

Esta transformación de datos copia información de dos tablas de la base de datos en nuevas tablas con una estructura similar, a excepción de una diferencia importante. En la tabla "new_addresses" de la base de datos de destino, los campos "is_shipping" e "is_billing" no pueden contener valores nulos, mientras que en la tabla "addresses" de la base de datos de origen sí se permitían valores nulos. Esto significa que se producirán errores durante la ejecución de la transformación si se encuentran valores faltantes.
Analizaremos tres situaciones, utilizando las opciones de manejo de excepciones de la base de datos para gestionar los errores de diferentes maneras
En caso de producirse el primer error, deshacer todas las modificaciones y detener la ejecución del proceso
Deshacer únicamente la transacción que generó el error y continuar
Deshacer la última transacción y continuar
Deshacer todos los cambios
En la primera situación, queremos aplicar el manejo de excepciones de la base de datos para dejar la base de datos de destino completamente inalterada en caso de que se produzca algún error durante la ejecución del mapeo. Para implementar esta opción, podemos abrir el cuadro de diálogo de propiedades del componente de la base de datos de destino y habilitar el manejo de transacciones:

Ahora podemos ejecutar la configuración haciendo clic en el botón "Salida" que se encuentra en la parte inferior del panel de configuración. Esto generará el script de ejecución SQL. A continuación, seleccione la opción "Ejecutar script SQL" en el menú "Salida" que se encuentra encima de la ventana del script

Cuando ocurre el primer error durante la ejecución, se muestra un diálogo que nos permite confirmar o modificar los parámetros de la transacción que seleccionamos anteriormente

Simplemente haremos clic en "Aceptar" para confirmar la configuración original. La ejecución del mapeo se detiene y la ventana de "Mensajes" describe el error:

Podemos utilizar la ventana de consulta de bases de datos integrada de MapForce para seleccionar y examinar las tablas "new_users" y "new_addresses". Esperamos que ambas estén vacías:

Esto confirma que cualquier dato introducido antes del error se ha revertido, es decir, se ha eliminado de la base de datos.
Durante la ejecución automatizada, bajo el control de MapForce Server, la configuración de las transacciones del componente se utilizaría sin ninguna interrupción.
Deshacer la última transacción y continuar
Imagine una situación en la que se necesita importar un archivo de datos externo muy grande a una base de datos, por ejemplo, diez mil registros o más. Esperamos que el archivo externo sea válido, pero si algunos registros contienen datos incorrectos, queremos importar todos los registros correctos y documentar los errores. Esta es una situación de manejo de excepciones en la base de datos, la número 2 de la lista anterior, combinada con el seguimiento de la base de datos descrito en una publicación anterior.
Para implementar esta opción de manejo de excepciones de la base de datos para la tabla "nuevas_direcciones", hacemos clic en el botón de acciones de la tabla y seleccionamos las siguientes propiedades:

Ahora podemos generar un nuevo script SQL y ejecutarlo utilizando el mismo comando "Ejecutar script SQL" que se mostró anteriormente. La ventana de "Mensajes" registrará varios errores. Podemos volver a ejecutar la consulta SQL en la ventana "Consulta de base de datos" para ver los datos que se hayan mapeado correctamente:

Además, generamos un archivo de registro en formato XML. La imagen que se muestra a continuación presenta una vista parcial en la ventana del editor XML de XMLSpy para un error específico, resaltado en la línea 54:

Un archivo de registro como este facilita la identificación y corrección de algunos registros incorrectos entre diez mil.
Deshacer la última transacción y continuar
La situación 3 en el manejo de excepciones de la base de datos cumple con este requisito empresarial: si no se puede insertar una dirección, tampoco se debe insertar el registro de usuario principal, pero el resto del proceso de mapeo debe continuar.
Este ejemplo se describe en detalle en la ayuda en línea de MapForce, que se instala automáticamente con el programa, así como en todos los archivos de demostración que se muestran aquí. Le invitamos a descargar una versión de prueba gratuita y explorar ese escenario, o bien, ¡comience directamente a implementar el manejo de excepciones de bases de datos en sus propios mapeos de bases de datos!