Exemple : Journalisation des erreurs de base de données
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.

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 à côté de la table new_users, cochez la case Utiliser les transactions et choisir annuler cette transaction et continuer.

2.Cliquer sur la touche à 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.

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 :

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 pour chacune de ces tables, les paramètres illustrent ce fait :

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.

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 |
Étape 4 : Exécuter le mappage
Pour exécuter ce mappage avec MapForce :
1.Cliquer sur la touche Aperçu 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.

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 :

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 dans le composant "result".
2.Cliquer sur l'onglet Sortie et observer le résultat.

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