---
title: Cartographie des données structurées avec des fonctions de nœud améliorées
date: 2024-05-03
categories:
  - data-integration
  - tools
tags:
  - data-integration
  - data-mapping
  - mapforce
  - software-tools
description: Des filtres spéciaux dans MapForce améliorent les fonctions des nœuds pour la transformation de données structurées
---
Status: #blog

Tags:  #data-integration #data-mapping #mapforce #software-tools

Categories: [data-integration](/blog/fr/category/data-integration.md) 
# Cartographie des données structurées avec des fonctions de nœud améliorées

Nous avions déjà signalé précédemment la fonctionnalité [de support des fonctions de nœud](https://www.altova.com/blog/node-functions-simplify-mapping-hierarchical-data-structures/) qui simplifie la transformation de données structurées en éliminant la nécessité de copier-coller une fonction plusieurs fois dans une transformation. La répétition inutile de la même fonction encombre la structure de la transformation et rend la compréhension ou la modification de la transformation de données plus difficiles.

MapForce propose également des filtres supplémentaires pour la définition des fonctions des nœuds. Ces paramètres permettent aux développeurs d'appliquer des fonctions et des valeurs par défaut à des nœuds spécifiques, en fonction de critères définis par l'utilisateur. Par exemple, vous pouvez appliquer une fonction à un nœud en fonction de ses métadonnées, telles que le nom du nœud, sa longueur, la précision du type de données du nœud, des annotations personnalisées, et bien plus encore.

Examinons une représentation avec des fonctions de nœuds améliorées.

![](/blog/images/mapping-structured-data-with-node-functions.jpg)

<!--more-->

La [correspondance de données](https://www.altova.com/fr/mapforce) présentée ci-dessous est un exemple de fonction de nœud PriceCalculation.mfd, installée avec MapForc. Cet exemple calcule le prix de vente final pour une liste d'articles, en se basant sur leur coût initial et un coefficient de marge. Les données sources sont un fichier texte au format CSV, et la sortie est un fichier XML.

[![Un exemple MapForce illustrant la transformation de données structurées à l'aide de fonctions de nœud](/blog/images/mapping-structured-data-example.png)](mapping-structured-data-example.png)

Dans cette configuration, une [fonction de nœud](https://www.altova.com/fr/mapforce#node-functions) est définie et appliquée à l'élément "Articles" dans le fichier de sortie, ainsi qu'à ses éléments enfants. Un double-clic sur l'icône de la fonction, en gras, située à gauche de l'élément "Articles", permet d'ouvrir la définition de cette fonction de nœud.

[![Visualisation d'une fonction de nœud dans une représentation structurée des données](/blog/images/open-node-function.png)](open-node-function.png)

Le menu déroulant "Appliquer à" situé en haut à gauche indique que cette fonction est conçue pour s'appliquer à tous les éléments enfants de l'élément "Article". La section "Description de la fonction" nous informe que cette fonction utilise l'élément de métadonnées du nœud, "node_fractionDigits", comme paramètre pour la fonction d'arrondi. Si "node_fractionDigits" n'est pas défini pour un élément enfant, la valeur zéro sera utilisée à la place.

Nous pouvons obtenir une perspective plus approfondie de la fonction de nœud en cliquant sur le bouton "Modifier" qui apparaît en haut au centre de l'image ci-dessus. Cela ouvre la fonction dans une fenêtre de mappage de données dédiée, dans une vue similaire à celle d'une fonction définie par l'utilisateur :

[![Définir une fonction de nœud pour la représentation de données structurées](/blog/images/node-function-definition.png)](node-function-definition.png)

L'élément de configuration "node_fractionDigits", situé en bas à gauche, fournit une valeur d'entrée à la fonction, en fonction de la structure des données cibles. Examinons plus en détail les métadonnées du nœud pour localiser "node_fractionDigits".

### Définition des métadonnées des nœuds

Les métadonnées disponibles pour tout fichier de données structurées proviennent de la définition même de la structure des données. Dans notre exemple, le composant de destination de la correspondance est un document XML. Par conséquent, les métadonnées disponibles pour chaque nœud sont définies dans le schéma XML.

L'image ci-dessous présente le schéma XML de calcul de prix dans l'interface graphique XMLSpy

![Vue graphique d'un schéma XML d'Altova, utilisée pour définir une cible de mappage de données structurées](/blog/images/altova-xml-schema-view.png)

L'élément XML "SalePrice" mis en évidence dans le diagramme est défini comme une instance du type "Amount", qui est lui-même un nombre décimal avec un maximum de 2 chiffres après la virgule, comme on peut le constater dans la fenêtre "Facets" en bas à droite. Par conséquent, la métadonnée "node_fractionDigits" pour le nœud "SalePrice" est de 2.

Les paramètres de la fonction de nœud disponibles pour tout fichier de données structurées dépendront toujours du type de données – XML, base de données relationnelle, PDF, fichier CSV, etc. – et du niveau de détail inclus dans la définition du schéma.

### Cartographier les données structurées à l'aide de paramètres de fonctions Node.js

Lorsque vous créez une nouvelle fonction de nœud, vous verrez d'abord une valeur brute et une valeur de résultat qui ne sont pas liées. Cliquez sur le bouton bleu "Ajouter les paramètres du nœud" pour insérer un paramètre de fonction de nœud. Cela ouvre la fenêtre "Paramètres du nœud", où vous pouvez sélectionner un paramètre de nœud :

![Ajouter un paramètre de fonction de type "node" pour la manipulation de données structurées](/blog/images/add-node-function-parameter.png)

Notez l'option disponible pour les cas où un nœud particulier ne prend pas en charge le type de métadonnées sélectionné. Dans la configuration du calcul des prix, ce comportement est géré directement dans la définition de la fonction du nœud. La fonction du nœud n'est appliquée qu'aux types de données numériques, et pour tout nœud où le paramètre fractionDigits n'est pas spécifié, la fonction substitute-missing fournit la valeur zéro à la place.

### Observer l'exécution de la fonction nœud

Nous pouvons définir un point d'arrêt à partir du menu contextuel qui s'affiche en faisant un clic droit sur n'importe quel nœud du composant de sortie, et utiliser le débogueur intégré de MapForce pour observer l'exécution de la fonction.

Dans la vue partielle ci-dessous, le point d'arrêt est défini sur le champ "SalePrice". Nous avons exécuté le mappage depuis le menu Débogage, et l'exécution s'est arrêtée au point d'arrêt, avec les valeurs intermédiaires affichées dans la fenêtre de mappage principale.

![Visualisation des résultats d'exécution de la fonction du nœud à l'aide du débogueur intégré de MapForce](/blog/images/node-function-debugging.png)

On peut constater que la dernière valeur de "SalePrice" calculée par la fonction de mappage était de 49,183323875. La fonction du nœud a arrondi cette valeur finale à 49,18.

L'exécution réelle de la fonction du nœud n'est pas affichée dans les résultats du débogage dans la fenêtre de mappage principale, mais en cliquant dans la fenêtre des messages, la fonction du nœud s'ouvre avec toutes les valeurs intermédiaires :

![Fenêtre des messages dans Altova MapForce, pour la transformation de données structurées](/blog/images/messages-window.png)

![Les détails de l'exécution des fonctions des nœuds sont visualisés dans le débogueur intégré de MapForce](/blog/images/node-function-debug-result.png)

Les exemples installés avec MapForce comprennent plusieurs autres exemples de mappages de données pour les fonctions de nœud. Le système d'aide intégré de MapForce inclut même un tutoriel étape par étape pour créer un mappage de fonction de nœud à partir de zéro.

Vous pouvez même modifier la correspondance d'exemple décrite ici pour constater par vous-même comment la sortie change. Par exemple, vous pourriez modifier le schéma XML pour autoriser trois chiffres après la virgule, ou modifier la correspondance pour permettre à la fonction de nœud de s'exécuter sur le nœud "Number", qui est le premier enfant de l'élément "Article", et examiner le nouveau résultat.

Pour voir les fonctions des nœuds en action, consultez cette vidéo de démonstration de MapForce.

![](https://www.youtube.com/watch?v=EvuwgaKOkjA)
