Altova MapForce 2023 Professional Edition

Cet exemple vous montre comment configurer le traçage de base de donnée et la journalisation d'erreurs pour un mappage qui insère des données dans une base de données SQLite. Les instructions sont semblables à tous les types de base de données pris en charge par MapForce, ainsi que pour d'autres types d'action de base de données (comme "update", "ignore", "delete", etc.).

 

Vous pouvez trouver le mappage de démonstration référencé par cet exemple sous le chemin suivant : <Documents>\Altova\MapForce2023\MapForceExamples\Tutorial\DatabaseExceptions.mfd. Ce mappage insert les données depuis deux tables d’une base de données en une nouvelle paire de tables de la même base de données, il est décrit plus en détail dans l’exemple : Rollback de transaction. Veuillez noter que certains des enregistrements contenus dans la base de données sont délibérément null afin de générer des exceptions de base de données.

mf_rollback_ex_01

DatabaseExceptions.mfd

Dans cet exemple, l'exigence est de permettre le traçage pour le composant cible de la base de données afin de pouvoir déterminer combien d'erreurs ont été générées, et où exactement les erreurs se sont produites. Les étapes ci-dessous illustrent comment atteindre cet objectif.

 

Étape 1 : Activer le rollback de transaction

Ce mappage de démonstration est configuré de manière à utiliser le rollback de transaction au niveau de composant de base de données. Ceci signifie que lorsque la première exception est rencontrée, le mappage arrêtera l’exécution et activera le rollback de toutes les données vers leur état initial. Modifions d’abord les options de rollback de transaction de sorte à ce que l’exécution de mappage continue, même si des exceptions sont rencontrées pour certains des enregistrements :

 

1.Cliquer sur la touche mf_ic_del_a_in à côté de la table new_users, cochez la case Utiliser les transactions et choisir annuler cette transaction et continuer.

mf_db_trace_05

2.Cliquer sur la touche mf_ic_del_a_in à côté de la table new_addresses, cocher la case Utiliser les transactions et choisir annuler cette transaction et continuer.

 

Vous pouvez également désactiver entièrement le rollback de transaction ; néanmoins, cela interrompra l'exécution de mappage à la première erreur rencontrée et n'annulera pas les changements, cela n'est donc pas recommandé. Dans ce cas particulier, un traçage et une journalisation ne reflèteront une exécution que jusqu'à la première exception rencontrée. Pour plus d'informations concernant le rollback de transaction, voir Gérer les exceptions de base de données.

 

Étape 2 : Configurer la journalisation d'erreur

Pour activer le traçage, procéder comme suit :

 

1.Cliquer avec la touche de droite sur le composant de base de données, et choisissez Propriétés depuis le menu contextuel (en alternative, double-cliquer sur la barre de titre du composant de base de données). Le dialogue Paramètres de composant de la base de données s'ouvre.

2.Sélectionner Erreurs en tant que niveau de traçage.

3.À côté de Tracer le fichier, tapez le nom du fichier de traçage (dans cet exemple, Errors.xml). Ne pas saisir un chemin absolu si vous avez l'intention d'exécuter le mappage avec MapForce Server sur d'autres appareils ou sur d'autres systèmes d'exploitation.

mf_db_trace_05a

Le composant de base de données cible a maintenant changé sa structure et affiche un compartiment supplémentaire avec la structure de fichier de traçage :

mf_db_trace_06

Jusqu'à présent, vous avez activé le traçage au niveau du composant de la base de données. Par conséquent, les paramètres de traçage seront hérités par toutes les actions de table sur ce composant de la base de données. Dans cet exemple, ils sont hérités par les actions "Insert" des deux tables new_users et new_addresses. Si vous cliquez sur le bouton d'action mf_ic_a_in pour chacune de ces tables, les paramètres illustrent ce fait :

mf_db_trace_07

En option, cliquer sur la touche Fields pour configurer quels champs doivent être inclus ou dissimulés dans le fichier de traçage. Dans cet exemple, tous les champs sont inclus.

 

Étape 3 : Configurer la sortie de mappage

Cette étape vous montre comment mapper les valeurs provenant du fichier de traçage vers un autre type de composant (dans ce cas, un simple composant de sortie). Veuillez noter que cette étape est optionnelle ; un fichier de journal d'erreur est produit même si vous ne mappez pas le fichier de traçage vers un autre composant. Dans cet exemple, néanmoins, nous aimerions configurer explicitement le mappage pour qu'il retourne le nombre total d'erreurs rencontrées dans la sortie. Pour ce faire, suivre les étapes suivantes :

 

1.Ajouter un simple composant de sortie en sélectionnant la commande de menu Insérer | Insérer sortie. Pour plus d'informations concernant les composants d'entrée simples, voir Retourner des valeurs de string depuis un mappage.

2.Ajouter une constante, en sélectionnant la commande de menu Insérer | Constante. La constante apportera le texte statique "Total erreurs : " pour rendre le texte de sortie de mappage plus clair.

3.Glisser la fonction concat depuis la fenêtre Bibliothèques dans le mappage. Pour plus d'informations concernant les fonctions, voir Ajouter une fonction au mappage.

 

Comme illustré ci-dessous, la fonction concat concatène le texte de la constante avec la valeur errors fournie par le fichier de traçage.

mf_db_trace_08

Avec la configuration ci-dessus, lorsque le mappage est exécuté avec MapForce Server, la sortie affichera le texte : "Total erreurs : {value}", où value représente le nombre d'erreurs rencontrées au moment de l'exécution.

 

À ce niveau, l'exécution du mappage dans MapForce en maintenant la touche Aperçu btn_component_preview_pressed appuyée dans le composant "result" n'est pas possible et résultera en une erreur. Un fichier de traçage doit exister tout d'abord, parce que la sortie simple lit des données depuis le fichier de traçage. L'étape suivante vous montre comment produire le fichier de traçage.

 

Étape 4 : Exécuter le mappage

Pour exécuter ce mappage avec MapForce :

 

1.Cliquer sur la touche Aperçu btn_component_preview_pressed dans le composant de base de données.

2.Cliquer l'onglet Sortie.

3.Dans le menu Sortie, cliquer sur Exécuter Script SQL. À ce niveau, le mappage rencontre la première exception ; cela est tout à fait intentionnel. Le dialogue Exception de transaction de base de données apparaît.

mf_db_trace_09

4.Sélectionner les options de rollback comme illustré ci-dessus, et cliquer sur OK.

 

Note :Si un mappage est exécuté par MapForce Server, donc aucun dialogue n'apparaît et les transactions erronées sont annulées automatiquement, conformément aux paramètres de rollback configurés dans MapForce.

 

Dans cet exemple, une fois que le mappage termine l'exécution, toutes les transactions échouées sont annulées, et seules les transactions réussies sont archivées dans la base de données. Les erreurs rencontrées sont rédigées dans le fichier Errors.xml, un petit fragment est illustré ci-dessous :

mf_db_trace_10

Une fois que le fichier de journal a été produit, vous pouvez apercevoir la sortie qui retourne le nombre total d'erreurs dans l'exécution de MapForce, comme suit :

 

1.De retour dans le mappage, cliquer sur la touche Aperçu btn_component_preview_pressed dans le composant "result".

2.Cliquer sur l'onglet Sortie et observer le résultat.

mf_db_trace_11

Cette partie du mappage lit des données depuis le fichier de journal produit précédemment. Si le fichier journal n'existe pas, une erreur sera générée.

© 2017-2023 Altova GmbH