

R3dKap
Expert Power AppsRéponses céées sur le Forum
Salut Steve,
Non, malheureusement Power Apps ne peut pas interagir avec l’app des contacts du smartphone. Tout ce que tu peux faire c’est accéder aux contacts Outlook de l’utilisateur connecté à ton appli Power Apps… 😉
Power Apps n’est fait que pour bosser dans l’environnement Microsoft Cloud… et vers des applications externes via des connecteurs mais en règle générale il s’agit d’appel API au final… L’interaction avec le smartphone est extrêmement limité…
CommentID=F8SgAbtdeTHaBpD, PostID=1rC7LbjtOGFeGrD
Salut Hugotr35,
Vu l’erreur je suppose que ton application utilise un flux Power Automate qui fait des truc sur SharePoint. Si c’est bien le cas, essaie ça :
tu vas sur Power Automate
tu cliques sur ton flux et tu restes sur la page d’accueil
tu cliques sur le bouton qui permet d’exécuter manuellement le flux
il t’affiches à droite un panel pour te demander l’autorisation d’accéder à SharePoint
tu valides
il t’affiches ensuite (toujours dans le panel à droite) les éventuels paramètres de ton flux et te permet de l’exécuter
ne l’exécute pas, pas besoin
tu sors
Et là retente d’extraire ton app canvas… Si à l’étape 4 il t’affiche pas le panel d’autorisation mais que tu te retrouves direct à l’étape 6 avec le panel d’exécution, c’est qu’il doit y avoir un autre souci…
CommentID=m6tDgM7b2U2NP3R, PostID=I1Kzi6RMW5NZMej
R3dKap
Membre27 septembre 2023 à 15h23 en réponse à: Restauration de Backup d'environnement : à n'utiliser qu'en dernier recours !!Alexandre Perret merci pour ce retour intéressant. C’est vrai qu’étant donné la présence du GUID de l’application dans l’url d’exécution de celle-ci et puisque le restore change les GUID -> problème pour les utilisateurs qui avaient mis l’url d’origine dans leurs favoris. Sur mon projet actuel on a “résolu” cela en donnant accès à l’application via une page SharePoint. Comme ça si l’url de l’app change, on la change juste sur la page SP. Evidemment si des utilisateurs mettent ce lien en favoris il faudra qu’ils mettent leur favori à jour lorsque l’url change.
Maintenant que j’y pense, autre piste à creuser : un lien dans la barre d’applis de Teams (tout à gauche). A mon avis il doit être possible de placer un lien global pour tout le monde dans Teams qui déclenche le lancement de l’app dans un navigateur. A voir…
Sinon, sur l’origine même de ce qui a déclenché ton problème : l’url du déclencheur qui pointait vers un SP de DEV et que tu devais basculer sur un SP de PROD –> C’est précisément ce que les variables d’environnement permettent d’éviter. Une variable d’environnement a une valeur en DEV, une autre en REC et encore une autre en PROD. Toutes tes actions SP dans Power Automate sont pluggées sur des variables d’env. et s’adaptent et vont donc taper le bon SP en fonction que t’es en DEV, en REC ou en PROD. Du coup, plus besoin d’éditer tes flux pour faire de la config. Lorsque je déploie mes solutions sur la PROD je n’ai jamais aucune config à faire après le déploiement. Avais-tu envisagé de les utiliser ? Peut-être ne les as-tu pas utilisé par méconnaissance. Si c’est le cas je t’invite vraiment à t’y coller pour t’éviter ce genre de désagrément… 😉
Et pour le coup des appels API, lorsqu’il y a une très grande quantité d’utilisateurs comme c’est le cas ici, il faut malheureusement passer par une étape d’estimation du nombre d’appels API que va générer ton appli avant de la pousser en PROD pour s’assurer que celle-ci est correctement dimensionnée… 😉 Mais on apprend parfois en se plantant… 😅 Je pense que je me serais aussi fait avoir sur ce coup-là…
CommentID=pWdpJKJDgO63Qn3, PostID=ihjFRltgOehdmfx
Si tu fais le boulot dans Power Automate, comme j’ai cru le comprendre, ce n’est pas un soucis… Tu mets en place une première boucle sur les éléments de ta liste et à l’intérieur de cette boucle tu mets une 2è boucle pour boucler sur les jours de l’élément en cours et créer tes tâches… Comme ceci :
Tu me suis ? Ou tu as besoin de plus d’aide ?
CommentID=L5tTZD7X1XYONsk, PostID=GA9V7DKmPdlO3pP
Hello maxime,
Tu ne peux pas charger de documents dans SharePoint via un simple Patch(). Ce n’est pas (encore?) supporté par Power Apps. Pour charger des documents dans SharePoint à partir de ton application Power Apps, il te faut suivre la méthode suivante :
https://www.youtube.com/watch?v=3QaiM8SeWfM
En gros, cela consiste à prendre les fichiers qui sont dans le contrôle Attachements de ton formulaire et à les envoyer à Power Automate pour qu’il les crée dans SharePoint. Y’a un peu de boulot et c’est pas forcément trivial. Mais Shane explique ça assez bien dans sa vidéo… 😉
N’hésite pas à revenir ici si tu coinces…
CommentID=1B0bXFZ0JXIXshw, PostID=V9fFrVXjhQakMDe
DavidZed j’ai remonté le 2è cas à l’équipe Power Apps chez MS… On va voir ce qu’ils en disent…
CommentID=uTmJquDPYBTqw1j, PostID=DytAawLzZ66K4cu
Hello Mick,
Ne pose pas tes questions dans l’espace Base de connaissances qui est réservé aux trucs et astuce à partager avec tout le monde. Pose-les directement dans l’espace concerné. Je t’ai déplace ton post dans l’espace Power Automate… 😉
Pour répondre à ta question : tu n’a pas besoin de placer le contenu de ta colonne choix dans un tableau. Tu peux boucler directement dessus. Voici une maquette que j’ai faite rapidement de mon côté qui te montre comment je boucle sur les valeurs d’une colonne de type Choix pour un élément d’une liste donnée :
En espérant que ça réponde à ta question… 😊
Sinon n’hésite pas à revenir ici…
CommentID=UIhaMH4Zk9uyd0H, PostID=GA9V7DKmPdlO3pP
R3dKap
Membre26 septembre 2023 à 7h05 en réponse à: Extraire les groupes teams et dernières dates d'accèsHello FRED b.,
Deux pistes possibles trouvées en fouillant sur le net :
https://blog.atwork.at/post/Get-the-latest-Teams-activity-with-Graph
CommentID=23An7nscNAx241e, PostID=kJpFma6jFUrSFXo
Hello ALAIN DEL GIUDICE,
Voici la doc officielle du licensing Power Platform… 😉 J’avoue que sur la partie Chatbot dans un site web externe c’est pas précisé.
Tu peux peut-être poser la question à Henry Jammes (LinkedIn : https://www.linkedin.com/in/henryjammes/) qui a fait une session sur PVA au PPFS de l’année dernière… 😉
Ou alors à Nicolas Kirmann aussi (LinkedIn : https://www.linkedin.com/in/nki/)…
CommentID=MBsFooYsiNAEAZb, PostID=t2WWlirtbsHZwHz
Bonjour Fcal79,
Quand tu dis “tous les droits (users)” est-ce que tu veux simplement la liste des membres de chaque site ?
CommentID=BvBnE9ZrVEaGzzY, PostID=R65EipK5zpfBzXR
CommentID=Oy4EbPaAcdsAPB1, PostID=Y9l5gXezc21cXSr
Salut Geoffroy WAGNER,
Je pense que c’est dû au convertisseur Power Automate qui ne gère pas l’ajustement automatique des colonnes en fonction du contenu : ce convertisseur est extrêmement limité.
Je te suggère une solution qui devrait non seulement te garantir d’obtenir dans ton PDF exactement ce que tu as dans ton HTML mais aussi et surtout de permettre la prévisualisation du PDF final directement dans l’application avant de générer le fichier via Power Automate. L’idée consiste à placer ton contrôle HTML dans un Conteneur vertical, de définir sa propriété
LayoutOverflowY = LayoutOverflow.Scroll
puis d’utiliser la fonction PDF() pour permettre ensuite de voir le PDF généré via un contrôle Visionneuse PDF. J’explique la technique de génération du PDF de cette manière ici :Si tu le fais, dis-moi ce que ça donne passke je vais justement bientôt le mettre en place chez mon client actuel… 😉
CommentID=hGVTcqBBWv9gLt7, PostID=nv9RHzEZntjmOkm
Salut Shadoks_,
Aaaaah, l’éternel problème “je veux utiliser SP pour mon app passke c’est gratos mais je veux aussi empêcher mes utilisateurs d’aller tripatouiller les données directement dans SP“… 😄
J’ai vu des clients monter des usines à gaz pour aboutir à un résultat potable mais pas vraiment propre vu comment l’outil avait été “tordu”.
Mon avis ? -> C’est pas “compatible”. SharePoint ne dispose pas d’une gestion avancée des droits. Comme précisé par DavidZed, la solution c’est Dataverse. Certes il y a un peu de boulot pour le mettre en place et surtout faut payer les licences, mais la granularité des droits peut aller jusqu’à une colonne précise d’un enregistrement donné d’une table spécifiée.
CommentID=9rclbpYqKtrYmoN, PostID=Y9l5gXezc21cXSr
Lilian voici comment procéder pour mettre en place une popup de saisie des commentaires :
dans ton datacard de commentaire, ajoute en haut à droite un icône Modifier icoEditCommentaire avec :
OnSelect = UpdateContext({locShowPopupCommentaire: !locShowPopupCommentaire})
ajoute un contrôle Conteneur vertical layPopupCommentaire à ton écran avec :
X = 0nY = 0nWidth = Parent.WidthnHeight = Parent.HeightnFill = RGBA(0; 0; 0; 0,5)nLayoutAlignItems = LayoutAlignItems.CenternLayoutJustifyContent = LayoutJustifyContent.CenternLayoutGap = 40nVisible = locShowPopupCommentaire
dans layPopupCommentaire ajoute un contrôle Entrée de texte txtPopupCommentaire avec :
Width = 700nHeight = 350nMode = TextMode.MultiLinenText = If(Form1.Mode <> FormMode.New; <Form1.Item>.TonChampCommentaire)// Remplace <Form1.Item> par ce qu'il y a dans ton Form1.Item
dans layPopupCommentaire ajoute un contrôle Conteneur horizontal layPopupCommentaireBoutons avec :
FillPortions = 0nHeight = 60nLayoutJustifyContent = LayoutJustifyContent.CenternLayoutGap = 40
dans layPopupCommentaireBoutons ajoute un contrôle Conteneur vertical layPopupCommentaireBoutonOK avec :
FillPortions = 0nLayoutMinHeight = 0nWidth = 60nRayon de la bordure (sur l'onglet Propriétés) = 30nFill = Color.Green
dans layPopupCommentaireBoutonOK ajoute un icône (n’importe lequel) icoPopupCommentaireBoutonOK avec :
Width = 60nHeight = 60nColor = Color.WhitenPaddingTop/Bottom/Left/Right = 15nIcon = Icon.ChecknOnSelect = UpdateContext({locShowPopupCommentaire: false})
copie layPopupCommentaireBoutonOK, colle-le dans layPopupCommentaireBoutons, renomme-le en layPopupCommentaireBoutonAnnuler et renomme l’icône à l’intérieur en icoPopupCommentaireBoutonAnnuler
modifie layPopupCommentaireBoutonAnnuler ainsi :
Fill = Color.DarkGray
modifie icoPopupCommentaireBoutonAnnuler ainsi :
Icon = Icon.CancelnOnSelect = Reset(txtPopupCommentaire);; UpdateContext({locShowPopupCommentaire: false})
dans ton datacard de commentaire, positionne les propriétés du DataCardValue ainsi :
DisplayMode = If(Parent.DisplayMode = DisplayMode.View; Parent.DisplayMode; DisplayMode.Disabled)nTooltip = Self.TextnText = txtPopupCommentaire.Text
Voilou… Je l’ai testé chez moi et ça fonctionne. Je crois que je n’ai rien oublié.
Une remarque importante : sur le DataCardValue on positionne Tooltip à Self.Text car lorsque le formulaire est en mode FormMode.View, plus aucune interaction ne peut avoir lieu avec les contrôles qui se trouvent à l’intérieur du datacard et donc on ne peut pas cliquer sur l’icône icoEditCommentaire pour afficher le commentaire dans la popup. Donc pour lire la totalité du commentaire, soit tu défiles dans le champ, soit tu survoles avec la souris le champ…
N’hésite pas si t’as des soucis pour le mettre en place… 😉
CommentID=7C2bLrI5qTHTxiP, PostID=9CPHfvViKSrnVF1
Hello Shadoks_,
De mon côte, j’ai réalisé (et je réalise toujours) une application assez conséquente chez mon client actuel (25 écrans, des milliers de contrôles, 6 rôles d’autorisation, 500 utilisateurs, 40 tables, 20 flux, …).
L’application tient la route. Elle se lance en quelques secondes et ses performances sont correctes. Mais il faut la concevoir (à la fois en terme d’UI et en terme de gestion des données surtout) de manière à optimiser les écrans, les traitements et les chargements. Et garder à l’esprit que désormais, un écran n’est instancié (i.e. initialisé/chargé) par Power Apps que lorsqu’il est affiché <- très important pour les perfs. Le découpage doit donc se faire intelligemment au niveau des écrans et il faut utiliser des composants pour les éléments communs.
Dans ton cas, je trouverais bcp plus compliqué de mettre en place des mécaniques complexes de réplication pour une même application fonctionnant sur un même modèle de données. Car cela pose de nombreux problèmes :
multiplier les sites et les applications implique également une multiplication de la maintenance
la maintenance de l’application : faire évoluer l’application (ou corriger des bugs) implique de le faire sur chaque instance d’application 😱… alors on pourrait imaginer créer une bibliothèque de composants et faire en sorte que l’application soit constituée à 90% de composants mais ça t’obligera quand même à rouvrir chaque application pour appliquer la mise à jour du composant et republier l’application
la maintenance des sites SP : il va falloir créer des tas de scripts PowerShell pour faire évoluer ou corriger le modèle de données
Clairement, perso je trouve que c’est pas la bonne approche.
Tu fais un seul site SharePoint et une seule application. Quand ton modèle de données évolue, tu ne dois modifier qu’une seule colonne ou une seule liste. Côté application, c’est à toi de gérer les rôles des utilisateurs dans l’application :
au moment où l’application se lance, j’identifie le rôle de l’utilisateur connecté
en fonction de ce rôle l’application se comporte différemment (affichage/grisage d’éléments, accès ou pas à des écrans, etc.)
Pour terminer, si ton application va être conséquente, assure-toi de mettre en place 3 environnements Power Platform DEV, TEST, PROD et de tout mettre dans des solutions. Perso j’ai organisé mes solutions de la manière suivante :
Voilà, n’hésite pas si t’as d’autres questions… 😉
CommentID=PFwXuDIhqfXrLYb, PostID=k7h02yUE6xwHQDo