Créer des mappages pour transformer des données dans les flux de travail d’application logique à l’aide de Visual Studio Code
S’applique à : Azure Logic Apps (Standard)
Lorsque vous échangez des messages qui utilisent différents formats XML ou JSON dans un flux de travail d’application logique, vous devez spécifier comment transformer ou convertir les données du format source au format cible, par exemple entre des documents XML ou entre des documents JSON. Cette tâche est particulièrement importante lorsqu'il existe des écarts entre les structures de données des schémas source et cible. Un schéma décrit les éléments de données, les attributs et les types de données dans un document XML ou JSON.
Pour définir les transformations entre les structures de données et combler les lacunes, vous pouvez créer une carte (fichier .xslt) qui spécifie les relations entre les éléments de données dans les schémas source et cible. Vous pouvez créer ou modifier visuellement un mappage, en utilisant Visual Studio Code avec l’extension Azure Logic Apps (Standard) dans le contexte d’un projet d’application logique Standard. L’outil Mappeur de données fournit une expérience unifiée pour le mappage et la transformation en utilisant des mouvements de glisser-déplacer, des fonctions prédéfinies pour la création d’expressions, et un moyen de tester manuellement les mappages avant que vous ne les utilisiez dans vos workflows.
Après avoir créé votre mappage, vous pouvez l’appeler directement à partir d’un workflow dans votre projet d’application logique ou d’un workflow d’application logique Standard dans le portail Azure. Pour cette tâche, vous pouvez utiliser l’action Opérations du mappeur de données nommée Transformer en utilisant le mappeur de données XSLT dans votre workflow.
Ce guide pratique montre comment créer une carte de données vide, choisir vos schémas source et cible, créer différents types de mappages entre les éléments du schéma, enregistrer et tester votre carte, enfin appeler le mappage à partir d’un workflow dans votre projet d’application logique.
Limitations et problèmes connus
L’outil Mappeur de données fonctionne actuellement uniquement dans Visual Studio Code s’exécutant sur des systèmes d’exploitation Windows.
Mappeur de données est actuellement disponible uniquement dans Visual Studio Code, pas dans le Portail Azure. Il est disponible uniquement dans des projets d’application logique Standard, pas des projets d’application logique Consommation.
Mappeur de données ne prend pas en charge actuellement les schémas qui utilisent le format de fichier (.csv) de valeurs séparées par des virgules.
Le volet Code dans Mappeur de données est actuellement en lecture seule.
La disposition du et les positions des éléments dans Mappeur de données sont actuellement automatiques et en lecture seule.
La fonction Filtre traite correctement les conditions numériques placées entre guillemets doubles, par exemple « >=10 ». Toutefois, cette fonction ne se comporte actuellement pas de manière cohérente pour les comparaisons de chaînes telles qu’une vérification indiquant si un nom d’élément est « = « Pen » ».
Lorsque vous créez une correspondance entre les éléments du tableau parent dans les schémas source et cible, le mappeur ajoute automatiquement une boucle pour itérer à travers les éléments du tableau. Cependant, vous devez toujours créer explicitement des correspondances entre les éléments des tableaux source et cible.
Pour appeler des mappages créés avec Mappeur de données, vous pouvez uniquement utiliser l’action Opérations du mappeur de données nommée Transformer en utilisant le mappeur de données XSLT. Pour les mappages créés par un autre outil, utilisez l’action Opérations XML nommée Transformer XML.
Pour utiliser les mappages créés avec Mappeur de données avec des flux de travail dans le Portail Azure, vous devez les ajouter directement à la ressource de votre application logique Standard.
Les fonctions personnalisées ne sont pas prises en charge dans cette version.
Prérequis
Visual Studio Code et l’extension Azure Logic Apps (Standard) pour créer des workflows d’application logique Standard.
Remarque
L’extension Mappeur de données précédemment distincte est désormais fusionnée avec l’extension Azure Logic Apps (Standard). Pour éviter les conflits, toute version existante de l’extension Mappeur de données est supprimée lorsque vous installez ou mettez à jour l’extension Azure Logic Apps (Standard). Après l’installation ou la mise à jour de l’extension, veuillez redémarrer Visual Studio Code.
Fichiers de schéma source et cible qui décrivent les types de données à transformer. Ces fichiers peuvent avoir les formats suivants :
- Un fichier de définition de schéma XML avec l’extension de fichier .xsd
- Un fichier JSON (JavaScript Object Notation) avec l’extension de fichier .json
Un projet d’application logique Standard qui inclut un workflow avec ou sans état, avec au minimum un déclencheur. Si vous n’avez pas de projet, suivez ces étapes dans Visual Studio Code :
Connectez-vous à votre compte Azure si ce n’est pas déjà fait.
Créez un dossier local, un projet d’application logique Standard local, et un workflow avec ou sans état. Pendant la création du workflow, sélectionnez Ouvrir dans la fenêtre actuelle.
Échantillonnez les données d’entrée si vous voulez tester le mappage et vérifier que la transformation fonctionne comme prévu.
Pour utiliser la fonction Run XSLT, vos extraits XSLT doivent exister dans des fichiers qui utilisent l’extension de nom de fichier .xml ou .xslt. Vous devez placer vos extraits XSLT dans le dossier InlineXslt de la structure de dossier de votre projet local : Artefacts>DataMapper>Extensions>InlineXslt. Si cette structure de dossier n’existe pas, créez les dossiers manquants.
Créer un mappage de données
Dans Visual Studio Code, ouvrez le dossier pour votre projet d’application logique Standard.
Dans le menu de gauche de Visual Studio Code, sélectionnez l’icône Azure.
Dans la fenêtre Azure, sous Data Mapper, sélectionnez Créer un mappage de données.
Dans la barre de titre de Visual Studio Code, une fenêtre d'invite s'ouvre pour vous permettre de donner un nom à votre carte.
Dans la boîte d'invite, saisissez un nom de carte de données.
Pour ce guide, ces étapes utilisent le nom Example-data-map.
Le Data Mapper crée et ouvre une carte de données vierge.
Choisissez vos schémas source et cible en suivant ces étapes :
Dans le volet Source, sélectionnez Ajouter un nouveau>Parcourir pour rechercher et charger votre schéma source.
Après avoir ajouté votre schéma source, le volet Source remplit l’élément XML « nœuds » pour les types de données du schéma source, par exemple :
Dans le volet Destination, sélectionnez Ajouter un nouveau>Parcourir pour rechercher et charger votre schéma cible.
Après avoir ajouté votre schéma cible, le volet Destination remplit l’élément XML « nœuds » pour les types de données du schéma cible, par exemple :
Conseil
Si vous rencontrez des problèmes de chargement de vos schémas, vous pouvez ajouter localement vos fichiers de schéma source et cible au dossier Artifacts/Schémas de votre projet d’application logique. Dans ce scénario, pour spécifier votre schéma source et cible dans Mappeur de données, dans les volets Source et Destination, ouvrez la liste Sélectionner existant, plutôt que d’utiliser Ajouter un nouveau, puis sélectionnez votre schéma.
Types de données de schéma
Le tableau suivant décrit les types de données possibles qui peuvent s’afficher dans un schéma :
Symbole | Type | Plus d’informations |
---|---|---|
![]() |
Complexe (tableau) | Contient des éléments ou des nœuds d’élément répétitifs. Un élément de tableau affiche également le point de connexion suivant : ![]() |
![]() |
Bool | True ou False uniquement |
![]() |
Complex | Objet XML avec des propriétés enfants, similaire au type d’objet JSON |
![]() |
DateTime | |
![]() |
Decimal | |
![]() |
Integer | Nombres entiers uniquement |
![]() |
Chaîne |
Créer un mappage direct entre les éléments
Pour spécifier une transformation simple entre des éléments qui ont le même type dans les schémas source et cible, suivez ces étapes :
Pour afficher ce qui se passe dans le code quand vous créez un mappage, en haut à droite du mappeur, sélectionnez Afficher le code.
Sur l’aire du mappeur, dans le volet Source, recherchez l’élément source que vous souhaitez mapper.
Par défaut, les éléments parents sont automatiquement développés pour afficher leurs enfants.
Cet exemple démarre le mappage à partir de l'élément source, mais vous pouvez choisir de démarrer le mappage à partir de l'élément cible.
Déplacez le pointeur de la souris sur le cercle en regard du nom de l’élément source jusqu’à ce que le pointeur passe à un signe plus (+).
Cet exemple crée un mappage à partir de l’élément source Identification de l’employé.
Faites glisser et dessinez une ligne pour que l’élément source se connecte au cercle de l’élément cible dans le volet Destination.
Cet exemple montre comment terminer le mappage avec l’élément cible Identification, qui a le même type de données que l’élément source.
Vous avez maintenant créé un mappage direct entre les deux éléments qui ont les mêmes types de données.
Le volet Code affiche la relation de mappage que vous avez créée :
Conseil
Pour vérifier si vos mappages présentent des problèmes, sélectionnez Afficher les problèmes. Par exemple, un avertissement apparaît dans la liste Problèmes sous l’onglet Avertissements si vous créez un mappage entre des éléments qui ont des types de données incompatibles :
Créer un mappage complexe entre les éléments
Pour spécifier une transformation plus compliquée entre des éléments dans les schémas source et cible, par exemple, des éléments que vous souhaitez associer ou qui ont différents types de données, vous pouvez utiliser une ou plusieurs fonctions qui effectuent la transformation que vous souhaitez dans votre mappage.
Sur la surface de mappage, l'étiquette de fonction est codée par couleur en fonction du groupe de fonctions. Le symbole de la fonction apparaît à côté du nom de la fonction, par exemple :
Le tableau suivant liste les groupes de fonctions et des quelques exemples de fonctions que vous pouvez utiliser. Pour obtenir la liste complète, consultez la liste Fonctions dans Data Mapper.
Groupe | Exemples de fonctions |
---|---|
Collection | Moyenne, Nombre, Accès direct, Valeurs distinctes, Filtrer, Index, Jointure, Maximum, Minimum, Inverser, Trier, Sous-séquence, Somme |
Conversion | En date, En entier, En nombre, En chaîne |
Date et heure | Ajouter des jours, la date du jour, l'heure du jour, la date égale |
Comparaison logique | Égal à, Existe, Supérieur à, Supérieur ou égal à, Si, Sinon si, Est nul, Est null, Est un nombre, Est une chaîne, Inférieur à, Inférieur ou égal à, AND logique, NOT logique, OR logique, Est différent de |
Mathématique | Absolu, Ajouter, Arc tangente, Plafond, Cosinus, Diviser, Exponentiel, Exponentiel (base 10), Plancher, Diviser par entier, Log, Log (base 10), Module, Multiplier, Puissance, Arrondi, Sinus, Racine carrée, Soustraire, Tangente |
Chaîne | Points de code vers chaîne, Concaténer, Contient, Se termine par, Longueur, Minuscules, Nom, Correspondances d’expressions régulières, Remplacement d’expression régulière, Remplacer, Commence par, Chaîne vers points de code, Sous-chaîne, Sous-chaîne après, Sous-chaîne avant, Tronquer, Tronquer à gauche, Tronquer à droite, Majuscules |
Utility | Copier, Erreur, Exécuter XPath, Format Date/Heure, Format Nombre, Exécuter XSLT |
Ajouter une fonction sans mappage
L’exemple de cette section transforme des données dans l’élément source Chaîne en Date/Heure, qui est le type d’élément cible. L’exemple commence sans créer de mappage et utilise la fonction To Date, qui accepte une seule entrée.
Pour afficher ce qui se passe dans le code quand vous créez un mappage, en haut à droite du mappeur, sélectionnez Afficher le code.
Dans la liste Fonctions, recherchez et sélectionnez la fonction que vous souhaitez utiliser, ce qui ajoute la fonction à la surface de mappage. Si la liste Fonctions est réduite, dans le coin supérieur gauche du mappeur, sélectionnez l’icône de fonction (
).
Cet exemple montre comment sélectionner la fonction To Date, qui se trouve dans le groupe de fonctions Conversion.
Remarque
Si aucune mappage n’existe sur la carte ou si un mappage n’est sélectionné quand vous ajoutez une fonction au mappage, la fonction s’affiche, mais n’est pas connectée aux éléments ou à toute autre fonction, par exemple :
Connectez la fonction aux éléments source et cible.
Faites glisser le curseur de la souris et dessinez une ligne entre l’élément source et le cercle sur le bord gauche de la fonction. Vous pouvez partir de l'élément source ou de la fonction.
Faites glisser le curseur de la souris et dessinez une ligne entre le bord droit de la fonction et l’élément cible. Vous pouvez commencer à partir de l’élément cible ou de la fonction.
Le volet Code affiche la relation de mappage que vous avez créée :
Sur la surface du cartographe, sélectionnez la forme de la fonction pour afficher les détails de la fonction.
Sous l’onglet Entrée, confirmez ou modifiez l’entrée à utiliser.
Certains scénarios nécessitent de définir une transformation au-delà de la paire immédiate d'éléments source et cible. Par exemple, pour définir une transformation entre une paire de tableaux et leurs éléments, vous devez créer une boucle entre les tableaux. Ou, pour effectuer une tâche quand la valeur d’un élément répond à une condition, vous devez ajouter une condition entre des éléments.
Ajouter une fonction qui utilise plusieurs entrées
L’exemple de cette section concatène plusieurs types d’éléments sources en tant qu’entrées et mappe une seule sortie à l’élément cible. L’exemple utilise la fonction Concaténer, qui accepte plusieurs entrées.
Pour afficher ce qui se passe dans le code quand vous créez un mappage, en haut à droite du mappeur, sélectionnez Afficher le code.
Dans la liste Fonctions, recherchez et sélectionnez la fonction que vous souhaitez utiliser, ce qui ajoute la fonction à la surface de mappage.
Si la liste Fonctions est réduite, dans le coin supérieur gauche du mappeur, sélectionnez l’icône de fonction (
).
Cet exemple montre comment sélectionner la fonction Concat, qui se trouve dans le groupe de fonctions Chaîne.
Remarque
Si aucune mappage n’existe sur la carte ou si un mappage n’est sélectionné quand vous ajoutez une fonction au mappage, la fonction s’affiche, mais n’est pas connectée aux éléments ou à toute autre fonction, par exemple :
Sur la surface du cartographe, sélectionnez la forme de la fonction pour afficher les détails de la fonction.
Sous l’onglet Entrée, sélectionnez les éléments de schéma source à utiliser comme entrées.
Cet exemple montre comment sélectionner les éléments de schéma source FirstName et LastName comme entrées de fonction. Le mappeur ajoute automatiquement les correspondances respectives entre les éléments sources et la fonction.
Pour effectuer le mappage, faites glisser le curseur de la souris et dessinez une ligne entre le bord droit de la fonction et l’élément cible. Vous pouvez commencer à partir de l’élément cible ou de la fonction.
Le volet Code affiche les relations de mappage que vous avez créées :
Parcourir les tableaux
Si vos schémas source et cible contiennent des tableaux, vous pouvez créer une boucle pour parcourir les éléments des tableaux. L’exemple de cette section crée une boucle dans un tableau source Employé et un tableau cible Personne, ainsi que des mappages entre les éléments des tableaux.
Pour afficher ce qui se passe dans le code quand vous créez un mappage, en haut à droite du mappeur, sélectionnez Afficher le code.
Sur l’aire du mappeur, dans les volets Source et Destination, recherchez les tableaux que vous souhaitez mapper.
Faites glisser et tracez une ligne entre les deux éléments du tableau. Vous pouvez commencer à partir du volet Source ou du volet Destination.
L’exemple suivant commence à partir du volet Source et mappe les éléments Nom dans le tableau source Employé et le tableau cible Personne :
Une fois que vous avez terminé le mappage de la première paire d’éléments de tableau, le mappeur ajoute automatiquement une boucle entre les éléments parents du tableau source et cible, qui ont le type de point de connexion suivant :
L’exemple suivant met en évidence la boucle ajoutée automatiquement entre les tableaux parents source Employé et cible Personne :
Le volet Code affiche la boucle de mappage que vous avez créée :
Continuez à mapper les autres éléments de tableau, par exemple :
Évaluer une condition pour effectuer une tâche
Supposons que vous souhaitiez ajouter un mappage qui évalue une condition et exécute une tâche lorsque la condition est remplie. Pour ce scénario, vous pouvez utiliser plusieurs fonctions.
Dans l’exemple suivante, lorsque la quantité d’achat dépasse 20 éléments, le mappage calcule une remise à appliquer en utilisant les fonctions suivantes :
Groupe de fonctions | Fonction | Objectif dans cet exemple |
---|---|---|
Comparaison | Une échelle plus grande | Vérifier si la quantité achetée est supérieure à 20. |
Comparaison | If | Vérifier si la fonction Supérieur à renvoie vrai. |
Mathématique | Multiplier | Si la condition est vraie, multipliez le prix de l'article par 10 % pour calculer la remise. |
Dans les volets Source et Destination, recherchez les éléments à mapper dans votre scénario.
Cet exemple utilise les éléments suivants :
Volet Source : ItemPrice et ItemQuantity
Volet Destination : ItemPrice, ItemQuantity et ItemDiscount
Dans la liste Fonctions, recherchez et sélectionnez les fonctions que vous souhaitez utiliser, ce qui ajoute les fonctions à la surface de mappage.
Si la liste Fonctions est réduite, dans le coin supérieur gauche du mappeur, sélectionnez l’icône de fonction (
).
Si nécessaire, déplacez les formes de la fonction sur la surface du cartographe pour faciliter leur sélection.
Cet exemple ajoute les fonctions suivantes à la surface de mappage : Supérieur à, Si et Multiplier
Pour afficher ce qui se passe dans le code quand vous créez des mappages, en haut à droite du mappeur, sélectionnez Afficher le code.
Connectez les éléments sources, les fonctions et les éléments cibles dans l'ordre spécifique requis par votre scénario.
Cet exemple connecte les éléments suivants dans l'ordre spécifié pour créer correctement les mappages :
Démarrer Fin Élément source ItemPrice Élément cible ItemPrice Élément source ItemQuantity Entrée d’une fonction Supérieur à sur le bord gauche de la forme. Cette entrée fournit les données du champ Valeur 1 dans les détails de la fonction. Sortie d’une fonction Supérieur à sur le bord droit de la forme Entrée d’une fonction Si sur le bord gauche de la forme. Cette entrée fournit les données du champ Condition dans les détails de la fonction. Élément source ItemPrice Entrée d’une fonction Multiplier sur le bord gauche de la forme. Cette entrée fournit les données du champ Multiplicande dans les détails de la fonction. Sortie d’une fonction Multiplier sur le bord droit de la forme. Entrée d’une fonction Si sur le bord gauche de la forme. Cette entrée fournit les données du champ Valeur dans les détails de la fonction. Sortie d’une fonction Si sur le bord droit de la forme. Élément cible ItemDiscount L'exemple suivant montre les mappages à ce moment-là :
Dans les détails de la fonction suivante, sous l’onglet Entrée, confirmez ou fournissez les valeurs suivantes :
Fonction Champ d'entrée et valeur Une échelle plus grande - Valeur 1 : élément source ItemQuantity
- Valeur 2 : 20 comme valeur personnaliséeMultiplier - Multiplicande 1 : élément source ItemPrice
- Multiplicande 2 : .10 comme valeur personnaliséeIf - Condition : est-supérieur-à(ItemQuantity, 20)
- Valeur : multiplier(ItemPrice, 0,10)Le mappage suivant montre l’exemple terminé :
Le volet Code affiche le mappage que vous avez créé :
Enregistrer votre mappage
Quand vous avez terminé, dans la barre d’outils du mappage, sélectionnez Enregistrer.
Visual Studio Code enregistre votre mappage sous les artefacts suivants :
- Un fichier <your-map-name>.lml dans le dossier de projet Artifacts>MapDefinitions
- Un fichier <your-map-name>.xslt dans le dossier de projet Artifacts>Maps
Tester votre mappage
Pour confirmer que la transformation fonctionne comme prévu, vous avez besoin d’exemples de données d’entrée.
Avant de tester votre mappage, enregistrez la carte pour générer un fichier <your-map-name>.xslt actuel.
Dans la barre d’outils de votre mappage, sélectionnez Ouvrir le panneau de test.
Dans le volet Tester le mappage, dans la case Échantillon de données, collez vos exemples d’entrée et sélectionnez Tester.
La zone Résultats affiche les résultats des tests.
Appeler votre mappage à partir d’un workflow dans votre projet
Dans la barre Activité de Visual Studio Code, sélectionnez Explorateur (icône de fichiers) pour voir la structure de votre projet d’application logique.
Développez le dossier qui a le nom de votre workflow. Dans le menu contextuel du fichier workflow.json, sélectionnez Ouvrir le concepteur.
Sur le concepteur de workflow, suivez ces étapes générales pour ajouter l’action intégrée Opérations du mappeur de données nommée Transformer en utilisant le mappeur de données XSLT.
Sur le concepteur, sélectionnez l’action Transformer en utilisant le mappeur de données XSLT.
Dans le volet d’informations de l’action qui s’affiche, spécifiez la valeur Contenu et laissez Source de mappage définie sur LogicApp.
Ouvrez la liste Nom de la carte, puis sélectionnez votre carte (fichier .xslt).
Pour utiliser la même action Transformer en utilisant le mappeur de données XSLT dans le Portail Azure, ajoutez le mappage à la ressource d’application logique Standard.
Contenu connexe
- Pour les transformations de données avec des opérations B2B dans Azure Logic Apps, consultez Ajouter des mappages pour des transformations dans les workflows avec Azure Logic Apps