

R3dKap
Expert Power AppsRéponses céées sur le Forum
Que se passe-t-il en fait ? Le flux se lance mais il y a une erreur ? Lorsque tu le déclenches depuis le Studio Power Apps est-ce qu’il y a une croix rouge affichée et si oui quel est le message associé ?
Concernant le nom du fichier (“ExportCSV”) je vois pas très bien pourquoi il t’affiche ce message, qui plus est, dans le paramètre d’entrée… C’est un genre de warning ?
Sinon, je vois rien de spécial dans ton code.
Un peu bizarre ton truc. Y’a anguille sous roche à mon avis… 😉
CommentID=kI4b4wJhUgOuOsN, PostID=9TXuyYqzaPfX7IS
Alors pour être plus précis, lorsque tu enregistres une donnée dans SharePoint à partir d’un formulaire Power Apps, le champ obligatoire est d’abord vérifié dans Power Apps au niveau du datacard PUIS au niveau de la colonne SharePoint.
Donc si ton datacard est facultatif mais que je ton champ est obligatoire dans SharePoint alors tu ne peux pas enregistrer un item avec ton champ à vide.
Si tu veux que ton champ soit facultatif il faut qu’il soit facultatif à la fois côté Power Apps ET côté SharePoint.
En règle général, je fais comme ceci :
toutes mes colonnes SharePoint sont facultatives
c’est au niveau des datacards dans Power Apps que je décide quelles champs sont obligatoires ou pas
Note : n’oublie pas que lorsque tu modifies les caractéristiques de ta liste ou de tes colonnes côté SharePoint il faut que tu rafraîchisses ta source de données côté Power Apps pour qu’elle se mette à jour.
CommentID=8bt4z4E4rcYoHf1, PostID=P3kqhLcGFmuRQzy
R3dKap
Membre16 mars 2022 à 13h50 en réponse à: LookUp function basée sur une combobox (multiple choice)Alors, pour mon test j’ai construis les collections suivantes :
colEmployés
ClearCollect(n colEmployés;n {n Id: 1;n Nom: "Employé 1";n Pays: Table(n {Id: 1; Value: "Allemagne"};n {Id: 2; Value: "Autriche"};n {Id: 3; Value: "Suisse"}n )n };n {n Id: 2;n Nom: "Employé 2";n Pays: Table(n {Id: 1; Value: "Allemagne"};n {Id: 2; Value: "Autriche"}n )n }n)
colPays
ClearCollect(n colPays;n {n Id: 1;n Nom: "Allemagne";n Personnes: Table(n {Id: 1; Value: "A"};n {Id: 2; Value: "B"}n )n };n {n Id: 2;n Nom: "Autriche";n Personnes: Table(n {Id: 1; Value: "A"}n )n };n {n Id: 3;n Nom: "Suisse";n Personnes: Table(n {Id: 3; Value: "C"};n {Id: 4; Value: "D"}n )n }n)
colPersonnes
ClearCollect(n colPersonnes;n {Id: 1; Value: "A"};n {Id: 2; Value: "B"};n {Id: 3; Value: "C"};n {Id: 4; Value: "D"}n)
Sur mon écran j’ai mis une combo box cbxEmployés où
Items = colEmployés
. Donc, dans cbxEmployés.Selected j’ai l’employé sélectionné.L’objectif c’est que si je choisis Employé 1 il me donne ABCD et si je choisis Employé 2 il me donne AB (comme dans ton exemple).
Voici comment j’ai procédé pour monter la formule…
Mon objectif est de filtrer colPays pour ne garder que les pays de l’employé sélectionné et en extraire ensuite les personnes (sans les doublons).
Du coup, d’abord je rajoute une colonne dans colPays pour avoir une concaténation des identifiants des personnes de chaque pays :
AddColumns(n colPays As Pays;n "ConcatPersonnesId";n Concat(Pays.Personnes; Text(Id); ";")n)
Le résultat est le suivant :
Ensuite, je filtre la liste des pays pour ne conserver que les pays de l’employé sélectionné (à droite du in il faut obligatoirement une table à une seule colonne ; c’est pour ça que je fais le ShowColumns() pour ne garder que la colonne Id des pays de l’employé) :
Filter(n <formule précédente>;n Id in ShowColumns(cbxEmployés.Selected.Pays; "Id")n)
Pour l’employé 2 par ex. ça me donne donc ceci :
Après, je concatène tous les ids des personnes identifiées dans la colonne ConcatPersonnesId :
Concat(n <formule précédente>;n ConcatPersonnesId;n ";"n)
Ca me donne donc :
1;2;1
Il faut maintenant que j’élimine les doublons. Pour cela je reconvertis ce résultat en tableau à l’aide du Split() :
Split(<formule précédente>; ";")
Ca me donne :
Puis j’élimine les doublons :
Distinct(<formule précédente>; Result)
Et j’obtiens enfin :
Ces ids correspondants à ceux des personnes qui ont dont les droits d’accès.
La formule complète est donc la suivante :
Distinct(n Split(n Concat(n Filter(n AddColumns(n colPays As Pays;n "ConcatPersonnesId";n Concat(n Pays.Personnes;n Text(Id);n ";"n )n );n Id in ShowColumns(n cbxEmployés.Selected.Pays;n "Id"n )n );n ConcatPersonnesId;n ";"n );n ";"n );n Resultn)
Si tu mets ça dans une galerie, tu peux afficher le nom des personnes avec un libellé où tu mets
LookUp(colPersonnes; Id = Value(ThisItem.Result))
. Il faut convertir le ThisItem.Result en numérique pour que la comparaison avec le Id de colPersonnes fonctionne correctement.Voilou… J’espère que t’arriveras à l’adapter à ton cas de figure… Sinon n’hésite pas à revenir ici… 😉
Je te mets ci-joint la p’tite application que j’ai faite pour simuler ton cas d’usage… A ouvrir directement depuis le studio Power Apps.
CommentID=zaVTYRe1Y4tJ2cz, PostID=7sLjiaO0S60z9LY
R3dKap
Membre16 mars 2022 à 12h48 en réponse à: LookUp function basée sur une combobox (multiple choice)Salut @Christelle ah j’ai mieux compris avec ta 2è explication… 😋
Faut que je le simule chez moi pour te donner la bonne formule… Je t’envoie ça dès que je l’ai fait… 😉
CommentID=ZRaOmnaqZ2GLLTx, PostID=7sLjiaO0S60z9LY
Là il faut qu’on se fasse une p’tite visio Teams passke sinon on va y passer trop de temps. Contacte-moi sur LinkedIn…
CommentID=obrdJz9gbQvhuGe, PostID=PXfttHXEcyodEtg
@philippe étant donné que tu as personnalisé ton formulaire avec Power Apps, c’est désormais Power Apps qui pilote le champ. Il faut donc que tu positionnes sa valeur par défaut et son côté obligatoire directement sur le datacard… 😉
CommentID=HAMi4zMhfFybjD9, PostID=P3kqhLcGFmuRQzy
Essaie ça :
Filter(n 'Table';n IsBlank(ComboBox.Selected) ||n 'ColonneConcernee' = ComboBox.Selected.Valuen)
Dis-nous si c’est bon…
CommentID=iDqLBtpWUv0GAec, PostID=PXfttHXEcyodEtg
Voilà, c’est précisément ce que j’allais te proposer de faire vu que tu as un Choices() dans le Items de ta combo.
En effet la fonction Choices() génère un tableau à 2 colonnes (Id et Value) et comme je le disais l’opérateur in doit avoir une table à une seule colonne sur sa droite. Or, dans Power Apps, lorsque l’on écrit
NomDeTable.NomDeColonne
cela renvoie une table à une seule colonne, celle spécifiée.C’est pour cela qu’il fallait rajouter le
.Value
àchbEnveloppe.SelectedItems
… 😉CommentID=sy2Dqj2KsncfCyu, PostID=CJBs2Kt0p4SMBH8
@ChezWam tout d’abord une petite remarque sur le “wording” utilisé dans ton post (oui je suis plutôt perfectionniste là-dessus 😅) : “Le format de l’une des listes est vrai ou faux“. Tu voulais probablement dire : “Le format de l’une des colonnes de cette liste est vrai ou faux.“. 😉
Ensuite, quel est le véritable type de colonne que tu as créé ? Une colonne de type Oui/Non ou une colonne de type Choix avec les valeurs “True” et “False” ?
Parce-que du coup en fonction de ça ce ne sera pas la même solution pour filtrer ta datatable…
Ceci étant dit, si ta colonne est de type Oui/Non (ce que je suppose), alors il te faut modifier le Items de ta combo box pour y mettre :
Table({Text: "True"; Value: true}; {Text: "False"; Value: false})
Quant à la valeur à blanc, si tu utilises une combo box (et pas une dropdown) l’utilisateur pourra choisir de ne pas choisir de valeur. Sinon, avec la dropdown y’a aussi moyen si tu positionnes sa propriété AllowEmptySelection à true mais je préfère bosser avec la combo box en général.
Assure-toi aussi :
de désactiver la sélection multiple sur ta combo box
de positionner le DisplayFields de ta combo box à “Text” (pour afficher le libellé lorsque tu ouvriras la combo box pour choisir une valeur)
Ensuite, ton filter tel que tu l’as écrit devrait fonctionner… Sinon n’hésite pas à revenir ici pour qu’on voie ce qui ne va pas…
CommentID=c7dNGdSfMSWJcAQ, PostID=PXfttHXEcyodEtg
@Philippe CULOT @S dès lors que l’on manipule la propriété SelectedItems il faut s’intéresser au format des données du Items de la combo box.
@Philippe CULOT qu’as-tu dans le Items de ta combo box chbEnveloppe ?
N’oubliez pas aussi que l’opérateur in doit prendre sur sa droite une table à une seule colonne pour que sa fonctionne
Autre remarque : écrire
If(<test booléen>; true)
revient à écrire<test booléen>
. Et doncIf("ASV" in ...; true)
s’écrit simplement"ASV" in ...
😉CommentID=sCCmurPwjzuSOlq, PostID=CJBs2Kt0p4SMBH8
@Jesp si ta colonne Date réponse est bien une colonne de type date dans ta liste SharePoint, alors il te suffit de mettre UtcNow() dans la partie droite de la condition, sans rien spécifier d’autre (pas besoin du formatDateTime()).
CommentID=OREvPCRixbYsHwE, PostID=7pBBBnFKK4oGtYW
Bon, alors y’a la version officielle (mais elle est juste monstrueuse) :
Et après j’ai trouvé celle-ci qui est plus simple :
^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
Je l’ai testé de mon côté, elle fonctionne.
Dis-moi ce que t’en penses…
CommentID=AWiSBtMxZxp9hbk, PostID=SJP2lxAg8E5Dsu3
Alors en fait, peu savent qu’en réalité énormément de caractères sont autorisés dans les adresses mails mais dans 99% des cas ce sont les caractères les plus courants qui sont utilisés. Je vais voir si je trouve une regex digne de ce nom…
CommentID=MOoQuV7tp6JYnUw, PostID=SJP2lxAg8E5Dsu3
R3dKap
Membre12 mars 2022 à 7h58 en réponse à: créer un evenement outlook _powerautomate-IDcalendrier@Laurent CARRIERE sauf erreur de ma part ce n’est pas possible. Un calendrier est un objet personnel où seul le propriétaire peut créer des éléments.
Du coup, en solutions de contournement j’imagine 2 possibilités :
Tu crées l’événement dans TON calendrier en invitant la personne concernée
Tu te débrouilles pour que ce soit la personne concernée qui déclenche un flux qui crée l’événement dans son calendrier à lui
J’ai bien trouvé des personnes qui disent que c’est possible via l’API Graph mais c’est à vérifier :
Sinon, voici deux Ideas où tu peux voter pour pousser la fonctionnalité auprès des équipes Microsoft :
CommentID=6RDDwmii9qM84Lr, PostID=YHejoSREXic23Yk