French Power Platform User Group

Please login or click SIGN UP FOR FREE to create your PowerPlatformUG account to join this user group.
Expand all | Collapse all

Mail aux "partagés" d'une app

  • 1.  Mail aux "partagés" d'une app

    Posted Mar 03, 2021 12:19 PM
    Bonjour
    J'ai une appli dans Poweraps (partagée avec des groupes, mais aussi des "individuels"). Existe-t-il un moyen d'envoyer un mail à tous les membres (dans et hors des groupes) quand je le décide ( pas de manière automatique) ?

    On m'a parlé de Powerautomates et de "
    Get app Role Assignments" du connecteur "Power Apps for Makers".

    mais je suis un peu coincé

    Pouvez-vous m'aider ?

    Merci d'avance


    ------------------------------
    Eric Mereau
    ------------------------------


  • 2.  RE: Mail aux "partagés" d'une app

    Gold Contributor
    Posted Mar 04, 2021 05:10 AM
    Bonjour Eric,
    Oui c'est tout à fait possible. Et même pas obligé de passer par un flow Power Automate. La preuve, je me suis lancé le petit défi de le faire sans Power Automate et ça marche... 😀
    Tu ajoutes les 2 connecteurs Power Apps for Makers et Azure AD et voilà...
    Le code :
    Set(gloRoles; PowerAppspourlescréateurs.GetAppRoleAssignment("10f370cd-896f-46d5-82a6-a021002c1105";{'api-version':"2017-06-01"; '$top': 50}).value);;
    Clear(colSharedUsers);;
    Clear(colSharedGroups);;
    ForAll(Filter(gloRoles;properties.principal.type = "User"); Collect(colSharedUsers; {email: properties.principal.email}));;
    ForAll(Filter(gloRoles;properties.principal.type = "Group"); Collect(colSharedGroups; AzureAD.GetGroupMembers(properties.principal.id; {'$top':50}).value));;
    ForAll(colSharedGroups; Collect(colSharedUsers; {email: mail}))​

    Ligne 1 : je récupère la liste des users et des groupes pour qui l'application est partagée (faudra mettre ton identifiant d'application là)
    Ligne 2 & 3 : je vide les collections que je vais remplir après
    Ligne 4 : je balaye uniquement les utilisateurs identifiés à la ligne 1 et je récupère juste leur email
    Ligne 5 : je balaye uniquement les groupes identifiés à la ligne 1 et je récupère dans une autre collection la liste de leurs membres
    Ligne 6 : je balaye tous les membres de tous les groupes identifiés à l'étape 5 et j'ajoute leurs mails à la liste des mails colSharedUsers

    Donc, je me retrouve au final dans colSharedUsers avec la liste de tous les mails des utilisateurs avec qui l'application est partagée (qu'ils soient dans un groupe AD ou pas)... 😍

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 3.  RE: Mail aux "partagés" d'une app

    Posted Mar 04, 2021 07:54 AM
    Bonjour Emmanuel
    c'est Top: mon bouton est crée, mais peux-tu me dire comment se passe la suite ? comment fais-je pour envoyer un mail aux "users" ?

    ------------------------------
    Eric Mereau
    ------------------------------



  • 4.  RE: Mail aux "partagés" d'une app

    Gold Contributor
    Posted Mar 04, 2021 10:45 AM
    Il faut ensuite que tu concatènes toutes les adresses mails de colSharedUsers dans une chaîne de caractères avec un ";" en séparateur (ou "," je sais plus, à tester). Tu peux faire ça en une seule opération grâce à la fonction Concat().
    Ensuite, tu ajoutes le connecteur Outlook à ton application et tu utilises la fonction SendEmailV2().

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 5.  RE: Mail aux "partagés" d'une app

    Posted Mar 06, 2021 10:08 AM
    Edited by Eric Mereau 17 days ago
    Bonjour Emmanuel
    j'ai inseré les fonctions que tu m'as indiquées, mais je pense que j'ai raté qq chose...
    voici, ci-dessous, ce que j'obtiens.
    peux-tu m'aider, stp ?


    ------------------------------
    Eric Mereau
    ------------------------------



  • 6.  RE: Mail aux "partagés" d'une app

    Posted Mar 08, 2021 02:38 AM

    Bonjour Eric, je me permets de te répondre à la place d'Emmanuel.
    Ce que je te conseille, c'est de définir une variable de contexte récupérant les adresses mail auxquelles tu veux envoyer ton information. Pour ma part, je l'ai présenté comme suit :

    Set(_emailRecipientString; Concat(MyPeople; Mail & ";"));;           
    Office365Outlook.SendEmail(_emailRecipientString; TextEmailSubject2.Text; TextEmailMessage2.Text; {Importance:"Normal"});;

    MYPEOPLE étant ma collection de contacts, MAIL la colonne où est stockée l'adresse mail de chaque contacts. Les autres arguments sont mes cases de saisie utilisateur.
    En espérant avoir répondu à ta question :)



    ------------------------------
    Cordialement,
    PRELOT Clement
    Engineer
    ------------------------------



  • 7.  RE: Mail aux "partagés" d'une app

    Posted Mar 08, 2021 04:06 AM
    Merci Clement,

    comme tu t'en doutes, je débute dans Poweraps (et je pars de loin !) et j'ai plusieurs questions:
    - où placer cette ligne ?
    - My People est une base que je dois créer ?
    - pour l'instant, j'ai juste crée un bouton avec la fonction indiquée par Emmanuel dans 'On select', je présume que je dois faire autre chose ?

    Merci de ton aide
    Eric

    ------------------------------
    Eric Mereau
    ------------------------------



  • 8.  RE: Mail aux "partagés" d'une app

    Gold Contributor
    Posted Mar 08, 2021 04:19 AM
    Eric,
    Pour rappel, tu trouveras ici le détail de toutes les fonctions que l'on peut utiliser dans Power Apps, avec leurs paramètres et des exemples d'utilisation : https://docs.microsoft.com/fr-fr/powerapps/maker/canvas-apps/formula-reference
    Et tu trouveras ici pleins d'autres liens pratiques : https://r3dkap.fr/post/ressources-power-apps-5f9d8d3a61dd4254cc7da89f

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 9.  RE: Mail aux "partagés" d'une app

    Posted Mar 08, 2021 04:26 AM
    Edited by PRELOT Clement Mar 08, 2021 04:28 AM

    Alors dans l'ordre :

    - ces lignes sont à placer dans la propriété OnSelect de ton bouton qui va "envoyer le mail"

    - MyPeople est dans mon app une collection (en gros une table de colonnes) récupérant toutes les infos liées à un profil Outlook365 (nom, prenom, ID, mail, téléphone,...). Toi, tu as une collection appelé colSharedUsers qui contient une colonne appelée email.

    - Si l'idée est juste d'envoyer un mail à une liste de contacts, tu n'as besoin de rien d'autre que ton bouton pour envoyer un mail et les instructions précédentes (sauf si tu souhaites ajouter à ton mail un objet, un message particulier ou autre)

    Ton code devrait ressembler à ça :

    Set(email_list;Concat(colSharedUser; email & ";"));;
    SendEmailV2(email_list)

    Ou si tu veux insérer des parties en plus :

    Set(email_list;Concat(colSharedUser; email & ";"));;
    SendEmailV2(email_list;"Saisie ici l'objet de ton mail entre les guillemets";"meme chose ici avec le texte de ton mail")

    Pense à utiliser la doc de microsoft docs sur les fonctions, elle est relativement complète, et pesne à t'aiguiller à l'aide des explications données dans les prédictions de fonctions :)



    ------------------------------
    Cordialement,
    PRELOT Clement
    Engineer
    ------------------------------



  • 10.  RE: Mail aux "partagés" d'une app

    Gold Contributor
    Posted Mar 08, 2021 04:32 AM
    Rien à redire au post de Clément, si ce n'est que pour le Concat() met le ";" dans le 3è paramètre de la fonction (plus simple et plus propre car il n'y aura pas de ";" qui traînera à la fin de ta chaîne) :
    Concat(colSharedUser; email; ";")​
    Et pour le SendEmailV2, n'oublie pas de le préfixer avec le nom du connecteur (comme sur sa capture) :
    Office365Outlook.SendEmailV2(...)​
    😉

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 11.  RE: Mail aux "partagés" d'une app

    Posted 22 days ago
    Bonjour Emmanuel

    j'ai crée ce bouton et cliqué dessus. j'attend le retour d'un testeur !

    ------------------------------
    Eric Mereau
    ------------------------------



  • 12.  RE: Mail aux "partagés" d'une app

    Posted 20 days ago
    Edited by Eric Mereau 17 days ago
    Bonjour Emmanuel,
    j'ai saisi les infos données et ça donne ça (mais j'ai une erreur)
    Plus bas, ce que j'ai crée dans le sharepoint associé.



    ------------------------------
    Eric Mereau
    ------------------------------



  • 13.  RE: Mail aux "partagés" d'une app

    Posted 19 days ago
    Edited by PRELOT Clement 19 days ago
    Bonjour Eric,
    afin de t'aider convenablement, il faudrait que tu nous en dises plus sur l'erreur que te renvoi powerapps (il te souligne la partie erronée en rouge, et tu peux avoir le detail de l'erreur en cliquant sur le stéthoscope en haut a droite de ton écran.)
    Sinon, comme te l'a dit Emmanuel plus haut, pour la syntaxe de ta fonction Concat(), saisis plutôt la ligne de code suivante :
    Concat(colSharedUser; email; ";")​

    Je ne comprends pas également pourquoi tu as les deux dernières lignes de code, c'était un exemple que je t'avais donné mais logiquement, avec les deux "avant dernieres" lignes, tu envoies un mail avec pour objet "test mail appli" et pour texte "texte mail appli" à l'ensembles des adresses mails collectées depuis User et Group.
    Pense à nous faire un copier/coller de ton code avec la fonction "Insert edit code sample" afin que l'on puisse la modifier directement pour t'aiguiller, car avec un screenshot on est obligé de retaper le code à la main, et je t'avoue que c'est pas le top.
    J'attend ta réponse.



    ------------------------------
    Cordialement,
    PRELOT Clement
    Engineer
    ------------------------------



  • 14.  RE: Mail aux "partagés" d'une app

    Posted 19 days ago
    Edited by Eric Mereau 17 days ago
    Bonjour Clement, et merci pour toute ton aide
    voici mon code (et la copie d'ecran (plus bas) ainsi que les erreurs (je n'arrive a utiliser la fonction "Insert edit code sample" !)








    ------------------------------
    Eric Mereau
    ------------------------------



  • 15.  RE: Mail aux "partagés" d'une app

    Gold Contributor
    Posted 19 days ago
    Salut Eric,
    C'est parfait ce que tu nous as donné. Il ne manque plus qu'une chose : il faut que tu cliques à l'intérieur de ta formule et que tu refasses ta capture d'écran. En effet, ce n'est que lorsque l'on est en mode édition de formule (lorsque tu as le curseur d'édition à l'intérieur qui clignote) que des traits soulignés rouges apparaissent pour indiquer où se situe l'erreur. Malheureusement les messages d'erreur du Vérificateur d'application (le stéthoscope) restent "générique" et ne te disent pas exactement où se situe l'erreur.
    Maintenant, si dans ta formule, après avoir cliqué à l'intérieur tu ne vois aucun souligné rouge c'est que ton erreur est ailleurs sur ton contrôle.
    Pour être sûr d'arriver au bon endroit, clique sur la croix rouge qui apparaît sur le coin supérieur gauche de ton contrôle et choisi l'option Modifier dans la barre de formule :


    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 16.  RE: Mail aux "partagés" d'une app

    Posted 19 days ago
    Edited by Eric Mereau 17 days ago
    Merci Emmanuel
    voici la copie


    ------------------------------
    Eric Mereau
    ------------------------------



  • 17.  RE: Mail aux "partagés" d'une app

    Gold Contributor
    Posted 19 days ago
    Aaaaaah, voilà...
    Il te manque juste les 2 point-virgules à la fin de la ligne précédente... 😉
    Et à la fin de ton Set() il manque une parenthèse fermante et 2 points-virgules aussi...
    Il faut absolument que tu connaisses la syntaxe des formules Power Apps. Sans ça tu vas trop galérer... 😊

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 18.  RE: Mail aux "partagés" d'une app

    Posted 19 days ago
    Edited by PRELOT Clement 19 days ago

    Effectivement, comme le dit Emmanuel, sans des bases de code assez solides tu vas t'y perdre, et tu verra que c'est rapidement le foutoir !

    Je te conseille de regarder quelques videos dispo sur youtube, ou m^me de suivre les tutoriels fournit par PoerPlatform quand tu vas dans PowerApps, c'est pas forcément grand chose mais ça permet de connaître la logique de code et le fonctionnement global du système (personnellement, je ne connaissais que Python comme langage de programmation, et en quelques jours j'ai acquis la logique de programmation de la suite Power donc c'est largement atteignable sans un travail de forçat)



    ------------------------------
    Cordialement,
    PRELOT Clement
    Engineer
    ------------------------------



  • 19.  RE: Mail aux "partagés" d'une app

    Gold Contributor
    Posted 19 days ago
    Eric, tu peux commencer par ici par exemple : https://docs.microsoft.com/fr-fr/learn/modules/get-started-with-powerapps/

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 20.  RE: Mail aux "partagés" d'une app

    Posted 19 days ago
    Edited by Eric Mereau 17 days ago
    Merci pour vos conseils, je vais m'y atteler !

    En fait, une erreur se genère une fois que j'ai lancé l'opération. Je m'explique: ja saisis le code --> pas d'erreur. Je lance l'app en mode "lecture" (fleche en haut a droite), l'app "mouline" pendant 2 secondes. Puis lorsque je reviens dans le studio, une erreur a été generée (voir scrennshot ci-dessous).
    Est-ce normal ?


    ------------------------------
    Eric Mereau
    ------------------------------



  • 21.  RE: Mail aux "partagés" d'une app

    Posted 19 days ago
    Edited by Eric Mereau 17 days ago
    Pour être plus précis, voici ce qui apparait quand je positionne ma souris sur l'erreur:


    ------------------------------
    Eric Mereau
    ------------------------------



  • 22.  RE: Mail aux "partagés" d'une app

    Posted 19 days ago
    Effectivement Éric, c'est normal car tu n'as pas donné les arguments au bon endroit.
    Pour faire court, chaque fois que tu utilises une fonction, tu as la petite fenêtre explicative qui s'affiche avec les arguments de ta fonctions, tous séparés par un ";". Chaque argument à une place bien précise dans la fonction SendPushNotificationV2. En l'occurrence, ta liste de destinataires doit être en troisième position !
    Je te fais le morceau de code demain matin pour que tu comprennes mieux, la j'ai rdv avec Morphee !

    ------------------------------
    Cordialement,
    PRELOT Clement
    Engineer
    ------------------------------



  • 23.  RE: Mail aux "partagés" d'une app

    Posted 18 days ago
    Edited by PRELOT Clement 18 days ago

    Mince je me suis trompé de poste , autant pour moi.
    Alors ton erreur vient du fait qu'il y a un format d'adresse email de destinataire qui ne lui convient pas je pense.
    Donc ce que tu vas faire, tu relances ton app, et une fois que tu as envoyé ton mail, tu vas aller checker ce qui est à l'intérieur de ta variable email_list.
    Dans powerapps, tu vas dans l'onglet affichage puis variables
    Et tu aura une page de ce style :

    Pense y, tu peux faire pareil avec les collections afin de voir si tu as bien recupéré et stockées de facon provisioire certaines infos (ton colSahredUsers ou ton colSharedgroups par exemple)
    our bien identifier, tu peux commencer par repérer ce qui ne va pas dans ta varable email_list, puis checker si l'erreur vient de ta colSharedUsers ou de ta colsharedgroups.
    Essaies de nous faire des screenshots du contenu de ta variable et de tes collections si ossible



    ------------------------------
    Cordialement,
    PRELOT Clement
    Engineer
    ------------------------------



  • 24.  RE: Mail aux "partagés" d'une app

    Posted 18 days ago
    Edited by Eric Mereau 17 days ago
    Salut Clement,
    en espérant que Morphée t'a bien accueilli !
    Voici ce que j'obtiens:
    puis


    ------------------------------
    Eric Mereau
    ------------------------------



  • 25.  RE: Mail aux "partagés" d'une app

    Posted 18 days ago
    Edited by PRELOT Clement 18 days ago
    Effectivement, ca va etre compliqué d'envoyé un mail à cette adresse...
    Il faudrait que tu fasse des screen du contenu de tes collections colSharedUsers et colSharedgroups, tu vas dans l'onglet affichage sauf qu'au lieu de cliquer sur variables tu cliques sur collections. Prend bien garde que sur tes screenshots on voit la colonne mail de tes collection !

    ------------------------------
    Cordialement,
    PRELOT Clement
    Engineer
    ------------------------------



  • 26.  RE: Mail aux "partagés" d'une app

    Posted 18 days ago
    Edited by Eric Mereau 17 days ago
    voici ce que j'ai (ci-dessous) et (un peu plus bas) le contenu de mon sharepoint associé:


    ------------------------------
    Eric Mereau
    ------------------------------



  • 27.  RE: Mail aux "partagés" d'une app

    Posted 18 days ago

    Bon tes collections ne récupèrent aucune adresse mail. Est tu sur que le personnel de ton entreprise fonctionne avec authentification Azure ? Quel est ton adresse mail ?

    Je me remet ton code en dessous pour ne pas avoir à refouiller dans les messages precedents

     

    Set(gloRoles; PowerAppspourlescréateurs.GetAppRoleAssignment("2c96e25b-20d8-4cbf-89e5-950f1528ac0e";{'api-version':"2017-06-01"; '$top': 50}).value);;
    Clear(colSharedUsers);;
    Clear(colSharedGroups);;
    ForAll(Filter(gloRoles;properties.principal.type = "User"); Collect(colSharedUsers; {email: properties.principal.email}));;
    ForAll(Filter(gloRoles;properties.principal.type = "Group"); Collect(colSharedGroups; AzureAD.GetGroupMembers(properties.principal.id; {'$top':50}).value));;
    ForAll(colSharedGroups; Collect(colSharedUsers; {email: mail}))
    Set(email_list;Concat(colSharedUser; email; ";"));;
    Office365Outlook.SendEmailV2(email_list;"Test mail appli";"pour tester")​


    ------------------------------
    Cordialement,
    PRELOT Clement
    Engineer
    ------------------------------



  • 28.  RE: Mail aux "partagés" d'une app

    Posted 18 days ago
    Edited by Eric Mereau 17 days ago
    Bonjour Clement,
    j'ai interrogé pour savoir si Azure est autorisé
    sinon, mon mail est ...

    ------------------------------
    Eric Mereau
    ------------------------------



  • 29.  RE: Mail aux "partagés" d'une app

    Posted 18 days ago
    Essaie de modifier ton code comme Emmanuel t'a proposé et fait nous un retour

    ------------------------------
    Cordialement,
    PRELOT Clement
    Engineer
    ------------------------------



  • 30.  RE: Mail aux "partagés" d'une app

    Gold Contributor
    Posted 18 days ago
    Salut Eric,
    Un p'tit truc à tester : les différents Collect() qui remplissent la collection colSharedUsers alimentent une colonne qui s'appelle "email" et non "Email".
    Donc, attention à bien écrire (avec un "e" minuscule pour le "email") :
    Set(email_list;Concat(colSharedUsers; email; ";")​

    Je comprends pas qu'il t'affiche pas une erreur d'ailleurs... Ah si je sais pourquoi... Je pense qu'en tapant "Email" (avec un "E" majuscule) il a automatiquement pris la valeur d'une énumération native Power Apps qui contient les caractéristiques REGEX de vérification d'une adresse email. C'est pour ça que tu as des caractères spéciaux dans tes destinataires.
    Tu remarqueras qu'au moment où tu cliques dans ta formule, il te rajoute quelque chose juste avant le "Email" de ton Set()... 😉
    Bref... Ecris bien la formule comme ci-dessus et reteste...



    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 31.  RE: Mail aux "partagés" d'une app

    Posted 17 days ago
    Bonjour à tous les 2
    avec l'aide d'un collègue (immense merci à lui !)
    j'ai obtenu le code qui fonctionne
    si cela peut aider quelques-uns, le voici
    Set(gloRoles;PowerAppspourlescréateurs.GetAppRoleAssignment("id de mon app";{'api-version':"2017-06-01";'$top':50}).value);;Clear(colSharedUsers);;Clear(colSharedGroups);;
    ForAll(Filter(gloRoles;properties.principal.type="User");Collect(colSharedUsers;{email:properties.principal.email}));;
    ForAll(Filter(gloRoles;properties.principal.type="Group");Collect(colSharedGroups;AzureAD.GetGroupMembers(properties.principal.id;{'$top':50}).value));;ForAll(colSharedGroups;Collect(colSharedUsers;{email:mail}));;Set(email_list;Concat(colSharedUsers;email;";"));;Office365Outlook.SendEmailV2(email_list;"Test mail appli";"pour tester")​


    ------------------------------
    Eric Mereau
    ------------------------------