DavidZed
MembreRéponses céées sur le Forum
-
Bonjour,
Si tel est le cas, en attendant que ce soit fixé, il faudra certainement passer en mode en-US
Si tu remplaces tes “;” par des “,”, comment se comporte le composant malgré l’erreur générée ?
CommentID=eeCgbfAN8Nd9RXg, PostID=9lGn1AmopzMHsJk
-
Bonjour,
Il te faudra d’abord désactiver la possibilité de partager une application, pour ce faire, il faut modifier les autorisations du rôle de sécurité du propriétaire de l’appli (onglet personnalisation, ligne canvas, dernière colonne: share) dans le portail admin powerapps.
Ensuite, pour l’apporbation, je pense que l’idéal est un flux cloud instant déclenché depuis l’appli.
Le déclencheur est powerapp, il faudra passer en entry les guid de l’appli et de l’utilisateur à ajouter
Pour modifier les droits il faut utiliser le connecteur powerapps for admins https://docs.microsoft.com/en-us/connectors/powerappsforadmins/ (Edit App Role Assignment as Admin)
Une autre solution :
Désactiver le partage des applications comme décrit plus haut
Partager l’appli à un groupe M365 ou AAD (à faire en tant que sys admin)
Gérer avec un flux power automate l’accès au groupe via un approval
CommentID=m0J6jUgq2SQt4d0, PostID=6XoHfsg4qzAtZT4
-
Effectivement, si la collection contient beaucoup d’enregistrements, il peut y avoir un délai.
Dans ce cas, la solution serait peut-être de lancer un contrôle timer de 1 ou 2 sec qui effectue le contrôle à chaque cycle et qui se relance tant que le countrows(source) n’est pas égal au countrows(collection). On peut également y adjoindre l’incrémentation d’une variable de contexte qui compterait le nombres de cycles pour stopper le timer à la Xeme tentative et proposer de renvoyer seulement à ce moment.
CommentID=bGA0VssREq9jKpW, PostID=GStHvkqqB977fFG
-
Bonjour,
Il est tout à fait possible dans une powerApps, de créer un formulaire aux questions dynamiques en jouant sur les propriétés des DataCard ex: Mettre dans le Visible des questions 1.1, 1.2 etc la fonction Réponse1=true
Toutefois si tes questions sont uniquement de type : texte à renseigner, choix d’options / case à cocher, l’idéal serait peut être de passer par Form et de générer l’envoi d’un rapport des réponses via power automate, un exemple ici :
CommentID=hMYZB9pvx4UuVr4, PostID=nqb4ZT1WDagvuhu
-
Bonjour,
Dans une liste sharepoint, un enregistrement est normalement disponible en lecture dès lors qu’il a été créé (dans la seconde).
S’il n’est pas visible dans SP, il est parfois nécessaire de faire un rafraichissement de la page
S’il n’est pas visible dans une galerie de l’application powerapps, on peut forcer le rafraichissement de la source de données avec un refresh(source_de_données)
si on passe par une collection, il faut ajouter le nouvel enregistrement à la collection ou la recharger
Enfin, tu peux concevoir un power automate pour envoyer une notification mail au créateur de l’enregistrement avec un déclencheur de type : “Quand un nouvel élément est créé”
CommentID=qX7JYULSDAOWBzX, PostID=GStHvkqqB977fFG
-
DavidZed
Membre15 mai 2022 à 18h55 en réponse à: Transfert de données d'une database vers une autre databaseBonjour,
avec une liste sortie stock qui a pour colonnes :
→ Article (recherche vers liste des stocks)
→ Chantier (texte)
→ Quantité sortie (nombre entier)
Dans ton appli, tu crées dans ton écran de confirmation “sortie” :
→ Dans le bouton sortie que tu as déjà créé dans ta galerie, tu stockes le record sélectionné dans une variable:
UpdateContext({SelectedArticle:ThisItem})
Si la confirmation se fait sur un nouvel écran, il te faudra plutôt passer la variable dans le navigate:
Navigate(‘Ecran confirmation’;ScreenTransition.Fade;{SelectedArticle:ThisItem})
→ un textinput_CH dans lequel l’utilisateur saisira le nom du chantier
→ un textinput_QT dans lequel l’utilisateur saisira la quantité sortie
→ un bouton “confirmer la sortie de stock” avec sur le onselect :
// Création d’un enregistrement dans la liste sortie stocks
Patch(‘Sortie Stock’;Defaults(‘Sortie Stock’);{Article:{ID: SelectedArticle.ID;Value:SelectedArticle.Title};Chantier:textinput_CH.Text;’Quantité sortie’:Value(textinput_QT.Text)})
;;
//Mise à jour de la quantité disponible dans la liste stock
Patch(Stock;SelectedArticle;{QT_Stock:SelectedArticle.QT_Stock – Value(textinput_QT.Text)})
Ensuite tu fais la même chose pour les entrées sans oublier de remplacer le “-” par un “+” dans le recalcul du stock dispo
CommentID=DlGLNadbKJ8qRhJ, PostID=SH3kp7Fu65Urt08
-
Salut, le problème vient de ton patch dans ton ForAll, dans le paramètre record,
ForAll(Temp;
Patch(T_Liste_VEH;LookUp(T_Liste_VEH;Num_VEH = Num_VEH)
{VehDisponible:true})
)A cet endroit, tu es censé faire le lien entre le record de ta collection que tu es en train d’évaluer dans ton Forall et le record correspondant dans ta source de données.
Or il y a deux soucis dans ta formule :→ ton lookup() ne se base que sur des données de la source de données, techniquement, chaque itération du forall devrait patcher le 1er record de la liste
→ il n’y a pas de “;” pour séparer l’argument record de l’argument modification de ton patch (2eme et 3eme arguments). Donc je pense que ton patch ignore totalement le lookup et interprete ton 2eme argument comme la modification: à chaque itération du for all, il patch tous les records de ta list pour leur mettre {VehDisponible:true}
J’ai mal compris ton besoin dans mon premier post, tu n’as pas besoin de mettre le filtre dans le forall:
Forall(Temp;Patch(T_Liste_VEH;Thisrecord;{VehDisponible:true}))
CommentID=xrE4PzqADfDDuJB, PostID=DvDmlANkdWsNjSD
-
Bonjour,
Il te faut mettre ton test logique true/false dans un filter sur la source de ton forall:
Forall(Filter(Temp;VehDisponible=true);Patch(T_Liste_VEH;Thisrecord;{Num_VEH:ThisRecord.Num_VEH}))
Ce qui donne en gros :
Pour tous les enregistrements de ma collection “Temp” qui ont la valeur disponible=true, met à jour l’enregistrement correspondant dans ma source de données “T_liste”
Si ca ne marche toujours pas, il faudra peut-etre insérer un remove column(*ton filtre*;”VehDisponible:true”) toujours dans la source du forall
CommentID=COT3xNCASc7ABtU, PostID=DvDmlANkdWsNjSD
-
Pour le filter, tu peux également séparer les tests logiques par un “;” c’est équivalent à un “&&”
Pour ta collection, j’ajouterais un ForAll(Patch( après ton clear collect, du style:
ForAll(col_activite;Patch(col_activite;ThisRecord;{PERC_ACT:100/sum(col_activité;SUM_HR)*ThisRecord.SUM_HR}))
Il y a peut être possibilité d’optimiser en utilisant un with( avant ton clear collect pour charger tes records et faire les calculs directement dans le clearcollect, à tester
CommentID=LLKf8j2PmVUhNIo, PostID=LYtw9tB08ujCDrq
-
DavidZed
Membre13 mai 2022 à 14h14 en réponse à: Erreur lors de la tentative de récupération des données à partir du réseauBonjour,
Oui, impossible d’afficher plus de 2000 éléments
L’idéal est de faire passer par une collection avec des contrôles de filtres (délégables) à renseigner obligatoirement pour s’assurer que la requête fasse moins de 2000 élémentsCommentID=7WB3Bo5tK3dycnS, PostID=n1fwKtoJnmfOwlx
-
DavidZed
Membre13 mai 2022 à 14h05 en réponse à: Adapter l'écran de l'application selon le support d'ouvertureBonjour,
Une solution qui a marché pour moi :
Mettre l’app en format téléphone / Portrait dans les paramètres de l’app
Désactiver la mise à l’échelle
Désactiver le verrouillage de l’orientation
CommentID=QMhqGqZPm75d27B, PostID=ftZwKSf20oqbtPc
-
Hello,
Tu peux passer par un flux power automate qui lance un processus d’aprovals quand un nouvel élément est ajouté à ta bibliothèque
L’idéal est d’ajouter une colonne avec un statut choice (approuvé/en attente d’approbation/rejeté) qui peut te servir pour :
– shunter l’approval pour certains utilisateurs en mettant directement le statut à approuvé pour ceux qui ont ce droit
-De filter les documents pour n’afficher que les docs approuvés dans SP et dans l’appTu peux renseigner dynamiquement l’approbateur dans power automate de plusieurs manières (le N+1 de la personne qui lance le flow) par ex)
CommentID=LltiNI1v3oIiRbg, PostID=AKCH22hyVF329nb
-
DavidZed
Membre14 mai 2022 à 17h32 en réponse à: Disposition dynamique des contrôles dans une galerieBonjour,
On voit sur votre screenshot que vous avez des labels en guise d’entête au dessus de la galerie.
Il y a une astuce très simple qui consiste à donner aux labels / controles de la galerie les .X .Width et .Visible de vos labels d’entêtes (idéalement placés dans un container avec certains en largeur automatique pour rendre le tout responsive)
SubCommentID=4TXTaHFE14Sq2wy, CommentID=5Hif9QLncoPmExK, PostID=JpdiSxMTtbDOb5f
-
DavidZed
Membre14 mai 2022 à 9h01 en réponse à: Erreur lors de la tentative de récupération des données à partir du réseauPour que cela fonctionne, il faut s’assurer que la requête est bien délégable : Si une partie de la formule est soulignée de deux traits bleus, cette partie de la fonction n’est pas délégable et du coup ne se fera que sur les 2000 premiers éléments de la table.
La solution citée plus haut peut également fonctionner, il peut être intéressant de mettre les différents collect dans un concurrent() afin d’accélérer le temps de chargement de la requête.
Pour les temps de chargement de collections qui dépassent la seconde, ajouter un loadingspiner.Data au Screen peut adoucir la perception de ce temps de requête pour l’utilisateur
SubCommentID=VFeM8mdIY9erP3j, CommentID=zejUCbkgmb5MxIO, PostID=n1fwKtoJnmfOwlx