
Récupération des étiquettes d'un champ Oui/Non et non les valeurs
Tagged: DataCard, formulaire, power apps
Récupération des étiquettes d'un champ Oui/Non et non les valeurs
Posté par Youcef DOUMANDJI sur 1 janvier 2022 at 10h57J’ai un flux qui doit envoyer un courriel à des destinataires qui sont enregistrés dans la table contact de Dataverse. Dans cette table j’ai ajouté un champ Oui/Non qui a les valeurs Madame/Monsieur.
Dans mon flus je désire personnaliser le courriel à l’aide de cette civilité.
J’ai essayé plusieurs conseils glanés sur la toile et j’arrive à résoudre mon problème mais je trouve que c’est bien compliqué pour faire une chose aussi simple.
Si quelqu’un a une idée et/ou des commentaires qu’elle/il n’ésite surtout pas.
Cordialement
Youcef
PostID=7h4CnrML0rB5Iym
Youcef DOUMANDJI a répondu 1 year, 4 months ago 1 Membre · 11 Réponses- 11 Réponses
Hello,
Tu peux utiliser une expression dasn ton mail :
if(equals(body('RecupInfosContact')?['Civilite'],true),'Monsieur','Madame')n
Thép
CommentID=DPZnhzHj9qFBQQt, PostID=7h4CnrML0rB5Iym
Merci Théophile.
C'est ce que j'avais essayé dans un premier temps mais avec la syntaxe : if(equals(body('RecupInfosContact')?['Civilite']),'Monsieur','Madame') car je pensais que l'expression logique serait évaluée automatiquement.nnTa solution marche bien et est bien entendu bien plus élégante.nnCordialement.nYoucefnn
SubCommentID=9MKQUqwjUNSRICy, CommentID=DPZnhzHj9qFBQQt, PostID=7h4CnrML0rB5Iym
Hello Théophile,
J’avais mis en place ta solution mais après avoir testé il s’est avéré que cela donnait toujours le même résultat et pour cause je me suis trompé dès le départ en disant que j’avais un champ Yes/no. En réalité il s’agit d’un champ Choice (Civilité sur ma table) qui “tape” dans une liste globale (Civilités).
Cordialement.
Youcef
SubCommentID=iJAmRIBmbZAtU4K, CommentID=DPZnhzHj9qFBQQt, PostID=7h4CnrML0rB5Iym
Hello Youcef,
Le mieux serait d’avoir un champ de type Choice, ça te permettra d’être plus flexible (dans ton cas tu estimes que si je ne suis pas un Monsieur je suis forcément une Madame mais tu pourrais ne pas connaitre la civilité à un moment donnée, par exemple si tu as quelqu’un comme “Dominique de villepin” 😁 et dans ce cas avoir une valeur null plutôt que la valeur par défaut du champ boolean ).
L’avantage avec le choice c’est que tu peux récupérer non seulement la valeur technique (un entier) mais aussi le label (tu as un exemple juste ici : https://powerusers.microsoft.com/t5/Building-Flows/How-to-retrieve-an-option-set-label/td-p/547354 ) et donc ça te permet d’être vraiment dynamique que ce soit parce que demain tu changes le Monsieur en Mr. ou que tu gères la traduction au sein de ton application 🙂
𝐀𝐥𝐥𝐚𝐧 𝐃𝐞 𝐂𝐚𝐬𝐭𝐫𝐨
🏆 Microsoft Business Application MVP
📰 http://www.blog.allandecastro.com
CommentID=J6tDU2WAt5PDjJv, PostID=7h4CnrML0rB5Iym
Merci Allan,
En fait j’avais un champ de type Choice et non un champ Yes/no.
J’ai essayé d’appliquer ce que préconisait le lien que tu as mis mais impossible d’obtenir ma civilté dans le mail que j’envoie (j’obtiens soit vide soit la valeur entière de l’option).
C’est bien compliqué pour une chose aussi simple. Je vais donc réappliquer ce que j’avais fait en premier lieu.
Cordialement.
Youcef
SubCommentID=zIiAuIpQ3VJPPvW, CommentID=J6tDU2WAt5PDjJv, PostID=7h4CnrML0rB5Iym
J’ai trouvé une solution ici :
Qui nécessite quand même l’utilisation d’une variable dans le flux.
Je trouve cela bien compliqué pour récupérer l’étiquette d’une liste de choix.
Merci à tous.
Youcef
CommentID=u29ftiqR33hkC5J, PostID=7h4CnrML0rB5Iym
Hello,
Pour ma part j’utilise les expressions.
Par exemple pour un champ d’option issue de mon déclencheur qui s’appelle “gendercode”, lorsque je selectionne le champ parmi la liste déroulante proposer par Power Automate par défaut, il nous copie le code en effet.
Lorsqu’on passe la souris dessus on voit le détail de ce qu’il y a en dessous :
L’expression est la suivante : triggerOutputs()?[‘body/gendercode’]
Pour avoir le label il suffit de reprendre cette expression et de rajouter ceci triggerOutputs()?[‘body/_gendercode_label’] : Un “_” devant le nom et “_label” après le nom du champ.
Je l’ajoute ensuite en tant qu’expression comme ceci :
Comme ceci, je ne passe pas par des variables, ni autre composant, uniquement une expression.
Jérome
CommentID=5bfwFJ94mKlQslU, PostID=7h4CnrML0rB5Iym
Je me permets de revenir vers toi pour ta solution. En effet dans mon cas je ne récupère pas la civilité de l’étape de déclenchement (1) mais de l’étape de récupération des informations sur le contact, notamment l’adresse électronique (2). Là je ne vois pas comment utiliser ta méthode. Quelle expression devrais-je avoir ?
Merci d’avance.
Youcef
SubCommentID=Slj2PJHb5gCq8M7, CommentID=5bfwFJ94mKlQslU, PostID=7h4CnrML0rB5Iym
Dans ce cas la syntaxe est légèrement différente mais l’esprit est le même.
Comme tu le vois dans la sortie de ta récupération d’information quand tu exécutes le flow, le label est bien récupéré.
La syntaxe est la suivante :
Lorsque tu utilises un champ via la liste déroulante, on voit que le début change. ce n’est plus triggerOutputs mais outputs(‘Nom_de_ton_etape’).
Il faut donc mettre dans l’expression la valeur suivante :
outputs(‘Obtenir_une_ligne_par_ID’)?[‘body/industrycode@OData.Community.Display.V1.FormattedValue‘]
Dans ton cas cela devrait se rapprocher de :
outputs(‘Get_row_by_ID‘)?[‘body/gendercode@OData.Community.Display.V1.FormattedValue’]
SubCommentID=KiMc8pIVCNfylxe, CommentID=5bfwFJ94mKlQslU, PostID=7h4CnrML0rB5Iym
Connectez-vous pour répondre.