R3dKap
Expert Power AppsRéponses céées sur le Forum
-
Salut @Yann,
Je suppose que tu as essayé avec le point et la virgule ?
C’est un contrôle moderne ou un ancien contrôle ?
“…suivant les écrans…” ?! Trop bizarre ça… Y’aurait pas des écrans qui auraient été créés à partir d’un Studio en anglais et d’autres en français ?
-
Salut @fabien,
Enlève le
ID: ThisItem.ID
du 3è paramètre de ton Patch() : lorsque l’on enregistre des données dans une liste SharePoint il ne faut pas spécifier la colonne ID car elle est calculée par le système et n’est accessible qu’en lecture seule… 😉Astuce : dans le If() tu peux mettre
If(Self.Value...
puisque tu te trouves déjà sur la bascule TogglePresence… 😉Sinon le reste me semble bon… 😊
-
R3dKap
Membre23 octobre 2024 à 12h16 en réponse à: Envoyer un mail seulement à une personne présente dans le tableauSalut @Marguerite,
Si tu veux le faire à partir d’Excel, tu dois forcément saisir quelque chose quelque part sur la ligne (un “x” ou autre) dans une colonne que tu pourras alors lire via Power Automate pour que ce dernier sache à qui envoyer le mail. Il n’existe pas de technique qui permette de sélectionner une ligne dans un fichier Excel et de déclencher un flux pour cette ligne.
Si c’est ce que tu cherches à faire tu peux le faire avec une liste SharePoint : tu transfères le contenu de ton fichier Excel dans une liste SharePoint et tu crées un flux Power Automate avec comme déclencheur SharePoint “Pour un élément sélectionné“. Et là tu pourras simplement sélectionner une ligne de ta liste et déclencher le flux qui enverra le mail… 😉
-
R3dKap
Membre22 octobre 2024 à 11h38 en réponse à: Graph API ajouter un membre à un groupchat Teams ?L’authentification auprès de Graph API étant gérée par le connecteur Groupes Office 365, c’est forcément les permissions de l’utilisateur connecté qui vont être vérifiées.
Chaque utilisateur doit donc posséder les bonnes permissions pour les points de terminaison Graph API appelés dans l’application.
Sur la page de la documentation du point de terminaison tu as un onglet Permissions où tu verras les permissions nécessaires pour effectuer l’opération que tu veux faire :
Tu choisis :
- celle de gauche pour le strict minimum
- celle de droite pour le maximum
Cette permission doit être attribuée soit directement à l’utilisateur soit à un groupe de sécurité AD dans lequel figureront les utilisateurs qui auront le droit de faire cette opération. Si c’est un groupe de sécu :
- Crée le groupe de sécurité dans Azure AD
- Ajoute-lui les permissions du point de terminaison
- Ajoutes-y les utilisateurs qui vont utiliser l’application
- Crée une équipe Dataverse liée à ce groupe de sécu dans l’admin de l’environnement où se trouve ton app
- Partage ton application à cette équipe Dataverse
As-tu besoin d’aide là-dessus ?
———-
Ah et j’ai complètement oublié un aspect important de l’appel à Graph API : l’interprétation des résultats…
Pas trivial non plus :
- impossible de récupérer actuellement le statut de l’appel (donc on sait pas si ça c’est bien passé ou pas)
- impossible de récupérer la valeur du paramètre OData $Count (bon pas très grave mais ça aurait pu être pratique quand même)
- les données renvoyées par la fonction GroupesOffice365.HttpRequest() sont dans un état indéfini (l’application ne sait pas quels sont les champs qui constituent le résultat, ni de quel type ils sont)
Sur ce dernier point c’est donc à toi de le spécifier de la manière suivante :
Set(
myProfile;
With({resultAPI: GroupesOffice365.HttpRequest("https://graph.microsoft.com/v1.0/me"; "GET"; "")};
{
aboutMe: Text(resultAPI.aboutMe);
birthday: DateTimeValue(resultAPI.birthday);
businessPhones: ForAll(
wValue.businessPhones As loopValue;
Text(loopValue)
);
...etc...
}
)Comme tu le vois il faut forcer le typage de chaque colonne. Et parfois, les colonnes sont des tableaux et donc il faut boucler sur les valeurs du tableau (comme pour le businessPhones). La liste des champs est celle décrite dans l’objet de retour détaillé au format JSON par la documentation officielle du point de terminaison.
Selon les points de terminaison et selon l’opération, parfois rien n’est renvoyé -> et encore une fois impossible de savoir si ça c’est bien passé. C’est ton cas pour l’ajout d’un membre à un chat : il renvoie un statut 201 mais comme on ne peut pas le récupérer… Donc si tu veux vraiment vérifier faut refaire un appel API pour vérifier qu’il est bien dans le chat.
Voilà… Y’a un peu de taf quoi… D’où le composant que je vais sortir (mais qui sera payant vu le temps phénoménal que ça va me demander)…
-
R3dKap
Membre21 octobre 2024 à 11h23 en réponse à: Graph API ajouter un membre à un groupchat Teams ?En fait, ce que tu veux encoder doit être une chaîne de caractères. Ce que tu veux encoder c’est ceci :
{
“@odata.type”: “#microsoft.graph.aadUserConversationMember”,
“user@odata.bind”: “https://graph.microsoft.com/v1.0/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5”,
“visibleHistoryStartDateTime”: “0001-01-01T00:00:00Z”,
“roles”: [“owner”]
}Donc, faut que tu mettes tout ça entre guillemets mais comme il y a déjà des guillemets dedans, soit tu les doubles, soit tu mets des apostrophes à la place.
😉
-
R3dKap
Membre19 octobre 2024 à 13h04 en réponse à: Utilisation de la fonction Patch avec une formule nomméeAh ok… Alors voilà l’origine du problème :
- ta colonne SharePoint est une colonne de recherche qui est donc au format :
{
Id: <ID SharePoint de l'élément lié>;
Value: <valeur de l'élément lié>
} - ta formule nommée est au format texte
C’est donc incompatible. Si tu veux que ta formule nommée soit au bon format il faut que tu l’alimentes ainsi :
nfAuditID = DataCardAuditID.Selected
Attention : ton DataCardAuditID doit être le contrôle du champ (text input, liste déroulante, etc.) et non le datacard en lui-même qui contient les 4 contrôles (DataCardKeyXXX, DataCardValueXXX, ErrorMessageXXX et StarVisibleXXX).
D’ailleurs, les noms des contrôles des champs à l’intérieur d’un datacard doivent s’appeler : DataCardValueXXX -> c’est une bonne pratique.Dis-nous si ça marche… 😉
- ta colonne SharePoint est une colonne de recherche qui est donc au format :
-
R3dKap
Membre19 octobre 2024 à 12h25 en réponse à: Graph API ajouter un membre à un groupchat Teams ?Salut @Simon,
Alors, si tu es un peu patient……… 😋 : https://www.linkedin.com/feed/update/urn:li:activity:7234857516994633728?utm_source=share&utm_medium=member_desktop
En attendant, pour faire des appels au Graph API depuis Power Apps, il faut utiliser le connecteur Groupes Office 365. Mais c’est pas forcément trivial. Voici rapidement comment ça marche :
- Ajouter le connecteur Groupes Office 365 à l’application
- Faire appel à la fonction HttpRequest avec les paramètres suivants :
- Uri = l’url vers le point de terminaison Graph API -> dans ton cas : https://graph.microsoft.com/v1.0/chats/{chat-id}/members
- Method = l’opération d’API -> dans ton cas “POST”
- file = le body de ton appel API -> dans ton cas au format :
{
"@odata.type": "#microsoft.graph.aadUserConversationMember",
"user@odata.bind": "https://graph.microsoft.com/v1.0/users/{user-id}",
"visibleHistoryStartDateTime": "0001-01-01T00:00:00Z",
"roles": ["owner"]
}
C’est sur ce dernier paramètre que ça se complique car sa valeur doit être encodé en Base64. Pour faire ça il faut utiliser ceci : https://ppfc.fr/groupes/ressources/forum/topic/power-apps-encoder-une-chaine-en-base64
Evidemment, dans le composant que je suis en train de créer, tout ça sera beaucoup plus simple puisque tu auras à ta disposition une fonction à appeler et à laquelle tu fourniras juste l’ID du chat et l’ID ou le mail du membre à ajouter… 😉
-
R3dKap
Membre18 octobre 2024 à 19h54 en réponse à: Utilisation de la fonction Patch avec une formule nomméeC’est pas la formule nommée nfAuditID qui te posait problème ? Car dans ton code tu as mis en commentaire cette ligne :
//AuditID: nfAuditID;
Alors que tu me donnes la définition de la formule nommée nfClient…
-
R3dKap
Membre18 octobre 2024 à 19h00 en réponse à: Utilisation de la fonction Patch avec une formule nomméeSi je comprends bien tu veux juste alimenter ta colonne AuditID de ta liste SP à partir de ta formule nommée nfAuditID. Ton code me semble bon. S’il y a une erreur dans ton code c’est que les types de données entre ta colonne et ta formule nommée ne sont pas les mêmes.
Quel est le type de ta colonne AuditID ?
Comment alimentes-tu ta formule nommée nfAuditID ?
-
R3dKap
Membre18 octobre 2024 à 18h56 en réponse à: Best practice modélisation Dataverse from SharePointJe vois… Sinon pour migrer tes données de SP vers Dataverse tu peux aussi juste faire un p’tit bout de code sur un bouton dans une app Power Apps :
ForAll(
TaListeSP As loopItemSP;
Patch(
TaTableDV;
{
ColDV1: ColSP1;
ColDV2: ColSP2;
ColDV3: ColSP3;
etc...
}
)
)Et tu faire des traitements particuliers sur les champs, des calculs, etc. Bref tu peux faire un peu tout ce que tu veux…
-
R3dKap
Membre17 octobre 2024 à 20h26 en réponse à: Erreur de publication de solution Power AutomateSalut @Philippe,
A priori, d’après le message, il te manque des droits pour effectuer l’opération demandée.
Peux-tu nous préciser quels sont les rôles de sécurité associés à ton compte sur l’environnement concerné ?
-
Ok… De ce que j’ai rapidement vu sur le net à partir de ces erreurs c’est que c’est quand même probablement dû à l’une de tes extensions.
Ce que je te suggère de faire c’est de te créer un nouveau profil Chrome et de tester dans ce nouveau profil qui sera du coup exempt de toute extension (en effet les extensions sont “par profil”).
-
R3dKap
Membre17 octobre 2024 à 12h42 en réponse à: Comment Convertir un fichier CSV en fichier XLSX sur un SharePointSalut @Charline,
Tape ça sur Google 😉 : power automate convert csv to excel