Écrire des expressions complexes

Effectué

Une expression complexe désigne une combinaison de plusieurs fonctions pour obtenir le résultat souhaité. Dans les sections Fonctions mathématiques et Fonctions date et heure, vous en avez déjà vu des exemples. Vous avez découvert que pour ajouter trois nombres, vous devez combiner deux fonctions add telles que :

add(add(12,13),15)

La sortie obtenue étant 40.

Ensuite, vous avez découvert comment utiliser la fonction utcNow pour obtenir la date et l’heure actuelles et utiliser convertFromUtc pour les définir sur le fuseau horaire de l’Est, comme indiqué ci-dessous :

convertFromUtc(utcNow(), 'Eastern Standard Time', 'dd-MM-yyyy hh:mm tt' )

La sortie obtenue étant 06-07-2021 05:39 PM.

Lorsque vous pensez aux expressions complexes, il s’agit de plusieurs fonctions dans une expression où vous utilisez la sortie d’une fonction comme entrée d’une autre. Il n’y a pas de syntaxe spéciale, d’opérateurs spéciaux ou de considérations spéciales.

À titre d’ultime exemple d’expression complexe, considérez le scénario où vous avez deux entrées dans le cadre de votre déclencheur Déclencher manuellement un flux, puis utilisez cette entrée dans une formule pour calculer une nouvelle heure. Vous pouvez utiliser l’exemple de flux que vous avez utilisé pour tester vos expressions ou créer un flux qui ressemble au suivant :

Capture d’écran du déclencheur Déclencher manuellement un flux avec le champ Entrées de l’étape Composer.

Cliquez maintenant sur Ajouter une entrée sous Déclencher manuellement un flux, puis ajoutez un nombre. Ensuite, recliquez sur Ajouter une entrée, puis ajoutez une date. Votre déclencheur devrait maintenant ressembler à ceci :

Capture d’écran du déclencheur Déclencher manuellement un flux avec les champs Nombre et Date de déclenchement.

Maintenant, à l’étape Composer, vous allez ajouter une expression pour ajouter le nombre de jours entre le déclencheur et la date.

addDays(triggerBody()['date'], triggerBody()['number'])

Cette formule utilise la fonction date et heure addDays et la fonction de référence triggerBody.

Remarque

Si vous vous demandez « Comment savoir quels sont les éléments à intégrer au corps du déclencheur ? », vous êtes sur la bonne voie. Le secret est que vous pouvez combiner du contenu dynamique dans vos expressions. Pour ce faire, commencez votre expression en tapant addDays(), puis placez votre curseur entre les parenthèses et sélectionnez Contenu dynamique. Ensuite, vous pouvez choisir vos champs comme indiqué ci-dessous. Il s’agit d’un excellent moyen de référencer ce contenu tout en laissant Power Automate se charger de l’écriture de la formule.

Capture d’écran animée montrant comment ajouter une expression.

Si vous testez votre flux et saisissez la date 2021-06-01 et le nombre 2, votre sortie sera 2021-06-03T00:00:00.0000000, qui est le format UTC du 3 juin 2021.

Vous pouvez maintenant connaître le jour de la semaine à l’aide d’une autre action Composer avec l’expression suivante :

dayOfWeek(outputs('Compose'))

Cette expression renvoie la valeur 4, qui représente le jeudi, car elle compte à partir de dimanche comme 0. Voici une capture d’écran du flux actuel pour contrôler ce que vous avez créé. Notez que les expressions ont été placées dans une note pour les rendre plus faciles à lire.

Capture d’écran du flux de validation créé avec le déclencheur Déclencher manuellement un flux et les actions Composer et Composer 2.

Maintenant, ajoutez une autre étape Composer pour vérifier si la date sélectionnée est un jeudi. Pour ce faire, utilisez l’expression suivante à l’étape Composer 3 :

if(equals(outputs('Compose_2'),4), 'You chose a Thursday', 'You did not choose a Thursday')

Pour le 3 juin 2021, cette expression renvoie la chaîne « Vous avez choisi un jeudi ».

Cet exemple est un modèle de création typique pour une expression complexe, avec une création pièce par pièce décomposée en étapes distinctes. Maintenant que toutes les fonctions nécessaires ont été élaborées, ajoutez une autre étape Composer. À l’étape Composer 4, écrivez une grande expression qui fait tout en une seule étape. Cette expression ressemblera à ce qui suit :

if(equals(dayOfWeek(addDays(triggerBody()['date'], triggerBody()['number'])),4), 'You chose a Thursday', 'You did not choose a Thursday' )

La sortie pour le 3 juin 2021 sera la chaîne « Vous avez choisi un jeudi ». Félicitations ! Vous avez écrit une expression complexe petit à petit, étape par étape, avant d’assembler le tout à la fin.