Récupération des étiquettes d'un champ Oui/Non et non les valeurs

Étiquetté : , ,

  • Récupération des étiquettes d'un champ Oui/Non et non les valeurs

    Posté par Youcef DOUMANDJI sur 1 janvier 2022 à 10h57

    J’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 Il y a 11 mois, 3 semaines 1 Membre · 11 Réponses
  • 11 Réponses
  • Theophile CHIN-NIN

    Membre
    3 janvier 2022 à 8h12

    Hello,

    Tu peux utiliser une expression dasn ton mail :

    if(equals(body('RecupInfosContact')?['Civilite'],true),'Monsieur','Madame')n

    Thép

    CommentID=DPZnhzHj9qFBQQt, PostID=7h4CnrML0rB5Iym

    • Youcef DOUMANDJI

      Membre
      3 janvier 2022 à 10h36

      @Theophile CHIN-NIN

      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

    • Youcef DOUMANDJI

      Membre
      3 janvier 2022 à 16h00

      @Theophile CHIN-NIN

      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

  • Allan De Castro

    Membre
    3 janvier 2022 à 14h41

    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

    • Youcef DOUMANDJI

      Membre
      3 janvier 2022 à 15h57

      @Allan De Castro

      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

  • Youcef DOUMANDJI

    Membre
    3 janvier 2022 à 16h34

    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

  • Jerome

    Membre
    4 janvier 2022 à 8h57

    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

    • Youcef DOUMANDJI

      Membre
      4 janvier 2022 à 14h15

      @Jerome

      Merci Jérôme,

      En effet cela semble encore mieux. Je teste illico !

      Cordialement.

      Youcef

      SubCommentID=7lt1BjDfUvFpuHm, CommentID=5bfwFJ94mKlQslU, PostID=7h4CnrML0rB5Iym

    • Youcef DOUMANDJI

      Membre
      4 janvier 2022 à 15h09

      @Jerome

      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

    • Jerome

      Membre
      4 janvier 2022 à 15h58

      @Youcef DOUMANDJI

      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

    • Youcef DOUMANDJI

      Membre
      4 janvier 2022 à 16h13

      @Jerome

      OK Merci

      SubCommentID=pYWgEz7bbARDVRm, CommentID=5bfwFJ94mKlQslU, PostID=7h4CnrML0rB5Iym

Connectez-vous pour répondre.