Altova MapForce 2024 Enterprise Edition

Débogueur

Accueil Préc Haut Suivant

MapForce comprend un débogueur de mappage disponible pour le langage de transformation BUILT-IN de MapForce. Le débogueur de mappage vous aide à obtenir les objectifs suivants :

 

Consulter et analyser les valeurs produites par le mappage à tout niveau de connecteur individuel.

Marquer dans le mappage le contexte (jeu de nœuds) responsables pour la production d'une valeur particulière.

Exécuter un mappage étape par étape, afin de voir comment MapForce traite ou calcule chaque valeur en temps réel et consulter la sortie de mappage telle qu'elle est générée.

Définit des points d'étape (points d'arrêt) auxquels l'exécution de mappage doit s'arrêter et afficher les valeurs actuellement en cours de traitement.

Afficher l’historique des valeurs traitées par un connecteur depuis le début de l’exécution de mappage jusqu’à la position d’exécution actuelle.

 

Le débogage d'un mappage est disponible lorsque le langage de transformation est en BUILT-IN. Si vous commencez à déboguer un mappage conçu pour un langage différent, vous serez invité à changer le langage de mappage à BUILT-IN. Vous pouvez aussi convertir un mappage en BUILT-IN en sélectionnant la commande de menu Sortie | Moteur d’exécution Built-in. Dans les deux cas, la conversion en BUILT-IN sera réussie si le mappage ne doit pas inclure les composants qui ne sont pas disponibles dans le langage BUILT-IN (par exemple, les fonctions XSLT).

 

Le débogueur de MapForce, contrairement à un débogueur traditionnel, est un débogueur qui ne traverse pas la ligne de code du programme ligne par ligne (puisque vous n’écrivez aucun code avec MapForce). Au lieu de cela, le débogueur expose les résultats du code généré par MapForce produits depuis les mappages que vous concevez. Plus spécifiquement, le débogueur archive les valeurs qui sont transmises de et vers les composants de mappage par le biais de leurs connecteurs entrée et de sortie. Les valeurs archivées sont ensuite disponibles pour votre analyse directement dans le mappage ou par le biais de fenêtres dédiées.

 

Les sections suivantes marquent les différents moyens vous permettant d'utiliser le débogueur de mappage.

 

Les paramètres de débogueur sont disponibles dans la boîte de dialogue Options. La liste de commandes de débogage disponibles est disponible dans Déboger.

 

Déboguer avec des points d'arrêt

Lorsque vous devez stopper l'exécution de débogage à un endroit particulier du mappage, vous pouvez définir des points d'arrêt, comme vous le feriez dans un environnement de développement traditionnel. La différence est que les points d'arrêt sont ajoutés non pas à une ligne de code mais à un connecteur d'entrée ou de sortie d'un composant de mappage. Vous pouvez aussi ajouter des conditions aux points d’arrêt (ceci peut être utile si vous voulez interrompre l’exécution uniquement si la condition définie est satisfaite).

diagram_debugging_breakpoints

Vous pouvez définir des points d’arrêt sur les connecteurs désirés et exécutez le mappage jusqu’au premier point d’arrêt rencontré, ensuite passez au prochain, etc. De cette manière, vous pouvez analyser le contexte de mappage et les valeurs associées avec les connecteurs choisis. Vous pouvez aussi accélérer ou ralentir l'exécution avec les commandes Pas à pas détaillé, Pas à pas sortant, Pas à pas principal, et Étape Minimale fournies par le débogueur. Ces commandes vous permettent de sauter des portions du mappage, ou, au contraire, d'exécuter des portions du mappage d'une manière plus granulaire, si nécessaire.

 

Déboguer étape par étape

Vous pouvez débogueur un mappage étape par étape et analyser le contexte et les valeurs de mappage associés avec chaque étape. Ce scénario est semblable au scénario précédent, car vous pouvez accélérer ou ralentir l'exécution avec les commandes Step Into, Step Out, Step Over et Minimal Step commands.

diagram_debugging_steps

 

Analyser le journal des valeurs

Vous pouvez configurer MapForce pour se souvenir du journal de toutes les valeurs (historique de traçage) qui ont été traitées par tous les connecteurs alors que vous déboguez un mappage. Il n'est pas forcément pertinent de garder l'historique complet de traçage pour les mappages qui demandent beaucoup de données, cette option peut donc être désactivée, le cas échéant. Lorsque l'option est activée, vous pouvez analyser le journal complet des valeurs traitées par chaque connecteur jusqu'à la position d'exécution actuelle. Vous pouvez aussi demander à MapForce de recréer le contexte de mappage associé avec une valeur particulière, ce qui peut vous aider à comprendre pourquoi cette valeur a été produite.

diagram_debugging_standard

 

Définir le contexte à une valeur liée à la position d'exécution actuelle

Lorsque le débogueur se trouve dans une position d'exécution particulière dans le mappage, il est possible d'analyser le contexte d'une valeur passée relativement à la position d'exécution actuelle (cela est comparable à un petit saut en arrière dans le temps) :

diagram_debugging_step_back

Un contexte a pour but d'expliquer pourquoi une valeur est calculée ; en d'autres termes, il décrit comment une valeur particulière dans le mappage a pu être générée. Le contexte est généralement la position d'exécution actuelle, bien que MapForce peut aussi vous permettre de définir un contexte dans le passé récent. Lorsque le contexte est défini sur une valeur particulière, MapForce marque directement sur le mappage les nœuds pertinents, propose des astuces à côté des connecteurs de mappage, et expose des informations supplémentaires dans les fenêtres ayant trait au débogueur (les fenêtres Valeurs, Contexte, et Points d'arrêt).

 

Une fois avoir inspecté un contexte de mappage qui n'est pas le même que celui de la position d'exécution actuelle, vous pouvez réinitialiser le contexte à la position d'exécution actuelle :

diagram_debugging_reset

 

Limitations

Lorsque MapForce exécute un mappage, il peut optimiser du code en interne (par exemple, en cachant des données ou en calculant des résultats intermédiaires au niveau de points arbitraires). Cela peut provoquer l'inaccessibilité de certains connecteurs (et donc de points d'arrêt) pour le débogage, dans quel cas, MapForce affiche une notification. Veuillez noter que les optimisations de code MapForce (et, par conséquent, le comportement exposé par le débogueur) peut différer d'une release MapForce à une autre, même si l'outil de mappage est le même pour un mappage donné.

Le débogueur peut déboguer la génération de sortie pour un composant cible à la fois. S'il existe plusieurs composants cible dans le mappage, vous devrez choisir lequel doit être exécuté par le débogueur.

Actuellement, le débogage n’est pas pris en charge pour les actions de table de la base de données (telles que "Insert All", "Update If", etc.) des composants de base de données.

Les points d'arrêt ne peuvent pas être ajoutés sur une des entités suivantes : constantes, la fonction core | position, les items descendants des connexions "Copier-tout", les paramètres des fonctions définies par l'utilisateur "inline".

© 2018-2024 Altova GmbH