Précédemment, nous avons vu comment créer une tâche dans Planner à partir des données de Microsoft Forms. Ce flux nous a servi à mettre en place un formulaire de demande de support. Nous allons repartir du même cas d’étude pour aborder ici les tableaux de conversion dans Power Automate.
Dans cet article, nous allons considérer que vous avez déjà suivi le tutoriel précédent et que vous avez déjà :
- créé le formulaire Microsoft Forms ;
- créé le flux Power Automate :
- qui se lance lorsque un utilisateur a rempli et soumis le formulaire ;
- qui utilise les données du formulaire pour créer une tâche Planner ;
- testé le bon fonctionnement du flux.
Contexte
Au niveau d’une tâche Planner, la priorité peut prendre quatre valeurs :
- Urgent
- Important
- Moyen
- Minimum
Or, il est impossible depuis Power Automate, et lors de la création de la tâche, d’affecter directement les valeurs ci-dessous. Il faut en effet enregistrer une valeur numérique comprise entre 0 et 10 et dont voici les correspondances :
- Urgent : 0 et 1
- Important : 2,3 et 4
- Moyen : 5, 6 et 7
- Minimum : 8, 9 et 10
Nous allons utiliser un tableau de conversion dans Power Automate pour traiter les valeurs transmises depuis le formulaire, ce qui nous permettra d’en améliorer grandement l’utilisabilité.
Modification du formulaire
Dans notre formulaire Microsoft Forms, nous avions demandé à l’utilisateur de sélectionner la priorité via des champs de type radio avec pour valeurs 1, 5 et 10.

J’évoquais plus haut le fait d’améliorer l’utilisabilité du formulaire. C’est ce que nous allons faire en modifiant le bloc pour renseigner la priorité de la demande. En lieu et place des indices numériques, nous allons indiquer directement les libellés correspondant. Pensez bien à modifier le bloc existant, cela sera plus simple pour la suite.

J’ai pris le parti de ne pas permettre à l’utilisateur d’indiquer un niveau d’urgence. Ce sera à moi d’affecter un tel statut si nécessaire.
Convertir des données avec Power Automate
Une fois le formulaire soumis par l’utilisateur, nous allons recevoir tout un tas d’informations qui vont servir à remplir une tâche Planner. Nous devons mettre en place quelques actions pour transformer le libellé de priorité en indice de priorité équivalent.
Rendez-vous dans Power Automate et cliquez sur le flux créé précédemment, vous devriez trouver
Reprenons le flux Power Automate du processus qui nous intéresse.

Déclaration du tableau de conversion
Ajoutez une action juste après Obtenir les détails de la réponse. Saisissez var dans le champs de recherche (1) puis sélectionnez Initialiser la variable (2).

Nous allons initialiser une variable de type tableau nommée arrPriorityToIDs et avec la valeur suivante :
[ { "Priority": "Importante", "ID": 1 }, { "Priority": "Moyenne", "ID": 5 }, { "Priority": "Basse", "ID": 1 } ]
Renommez l’action en Initialiser arrPriorityToIDs.

Filtrer le tableau de conversion
Ajoutez une action juste après Initialiser arrPriorityToIDs. Saisissez filtrer dans le champs de recherche (1) puis sélectionnez Filtrer un tableau (2).

Cliquez sur Tableau à filtrer (1) et sélectionnez arrPriorityToIDs, le tableau précédemment créé.

Cliquez sur Modifier en mode Avancé (2). Dans le champs qui s’affiche, remplacez @equals( », ») (3) par
@equals(item()['Priority'], outputs('Get_response_details')?['body/{KEY}'])

Attention, il faudra remplacer {KEY} par la clé correspondante au champ Priorité de la demande. Nous verrons ultérieurement comment la retrouver.
Renommez l’action en Filtrer arrPriorityToIDs.
Extraction et sélection de la valeur du tableau de conversion filtré
L’opération précédente consistait à filtrer le tableau de conversion arrPriorityToIDs en ne gardant que l’élément correspondant à la priorité sélectionnée par l’utilisateur.
Ajoutez une action juste après Filtrer arrPriorityToIDs. Saisissez Sélectionner dans le champs de recherche (1) puis sélectionnez Sélectionner (2).

Cliquez sur le champs De (1) et sélectionnez le contenu dynamique Body de Filtrer arrPriorityToIDs. Cliquez ensuite sur le picto en bas à droite du bloc correspondant à Basculer carte en mode texte (2).

Dans le champ qui apparait, vous allez devoir saisir l’expression suivante :
item()['ID']
Renommez l’action en Sélectionner PriorityID.

Déclaration de la variable d’indice de priorité
Ajoutez une action juste après Sélectionner PriorityID. Saisissez var dans le champs de recherche (1) puis sélectionnez Initialiser la variable (2).

Nous allons initialiser une variable de type entier (2) nommée PriorityID (1), cliquez sur le champs Valeur et saisissez l’expression suivante (4) :
int(body('Sélectionner_PriorityID')[0])
Renommez le bloc d’action Initialiser PriorityID.

Affectation de l’indice de priorité à la tâche
Dépliez l’action Créer une tâche, rendez-vous tout en bas du bloc et dans le champ Priorité (1), sélectionnez la variable PriorityID précédemment créée (2). Vous pouvez aussi l’atteindre avec l’expression suivante :
variables('PriorityID')

Récupération de la clé {KEY} correspondant au champs Priorité de la demande
Nous avons vu plus haut, lors de l’étape de filtrage du tableau de conversion, qu’il était nécessaire de compléter l’expression avec la clé {KEY} correspondant désignant le champs de formulaire à traiter.
Retournez sur la page d’accueil du flux, rendez-vous sur le bloc Historique des exécutions de 28 jours et affichez le détail de l’exécution d’un des flux. Le diagramme complet s’affiche et l’information qui nous intéresse se trouve dans le bloc Obtenir les détails de la réponse (1).

Lorsqu’on déplie le bloc, on peut voir les données transmises via le formulaire Microsoft Forms, cliquez sur Afficher les sorties brutes. Un volet affiche alors les détails de la réponse au format JSON, repérez les informations relatives au body.
On déduit facilement par la valeur des différents champs et par la valeur même de l’indice de priorité précédemment proposé aux internautes, que la clé recherchée est r24522f02537c438f9e1384ead2126b2c (1).

Dès lors, il convient de mettre à jour votre l’expression du bloc d’action Filtrer arrPriorityToIDs :
@equals(item()['Priority'], outputs('Get_response_details')?['body/r24522f02537c438f9e1384ead2126b2c'])
Nous avons pu faire évoluer notre workflow de création de tâche en utilisant un tableau de conversion. Nous n’allons pas nous arrêter en si bon chemin et nous reprendrons ce cas d’étude bientôt.