DavidZed
MembreRéponses céées sur le Forum
-
Hello,
La partie logique sur le SortOrder me paraît ok, mais attention, avec SortByColumns(), on appelle les colonnes avec leur nom logique sous forme de texte. De plus je ne comprends pas pourquoi tu utilises Search si le filtrage qui est ok est celui cité en haut.
Essaies :
SortByColumns(
Filter(Demande_statistique;
StartsWith(
colTITREDEMANDE;
TextSearchBox1_1.Text // recherche avec titre d'une demande
) || StartsWith(
colNUMERODEMANDE;
TextSearchBox1_1.Text // recherche le numéro d'une demande
) || StartsWith(
colSTATUT.Value;
TextSearchBox1_1.Text // recherche avec le statut d'une demande
) || StartsWith(
colCHOIXSTATISTIQUE.Value;
TextSearchBox1_1.Text // recherche avec la statistique d'une demande
) || StartsWith(
colRECURRENCE.Value;
TextSearchBox1_1.Text // recherche avec la reccurence d'une demande
) || StartsWith(
colMAILDEMANDEUR;
TextSearchBox1_1.Text // recherche avec l'adresse mail du demandeur
)) ,
"Date",If(SortDescending1,Descending,Ascending)) -
Hello,
Le problème vient certainement de la syntaxe dans la valeur texte que tu tentes de faire passer :
ArchivesBVEXP.Run({title:"text1";{description:"text2"}})
Si tu n’as que deux valeurs à passer, tu peux faire simple et ajouter simplement une entrée texte :
Ensuite dans Power apps, tu passes des vlaeurs de type Texte :
ArchivesBVEXP.Run("Toto" ; "Description de Toto" )
L’utilisation des {} ne te servira que si tu veux passer un enregistrement compler au format JSON et l’analyser ce Json dans powr automate avec l’action dédiée, il faut éviter de composer le Json “à la main”, il y a une fonction dédiée pour ça : JSON() Fonction JSON – Power Platform | Microsoft Learn
-
DavidZed
Membre26 février 2024 à 21h28 en réponse à: Exporter une liste sharepoint en Excel et l’envoyer par MailHello,
Générer un fichier excel à partir de 0 dans power automate est assez complexe. Il est plus simple de partir sur l’envoi d’un fichier CSV qui peut être généré plus facilement avec l’action built-in dédiée.
Une fois le CSV généré, on ajoute une étape créer un fichier avec Onedrive ou Sharepoint
Une action obtenir le fichier pour récupérer le contenu converti
et enfin on envoi la pièce jointe (nom du fichier + contenu)
Si tu dois envoyer un fichier au format excel impérativement, je te conseille de préparer un fichier “tampon”, dont tu remplis les lignes avec les données de ta liste
Tu récupères le contenu du fichier via un obtenir le fichier et tu l’envois par mail en générant un nouveau nom au passage
Une fois le mail envoyé, tu supprimes toutes les lignes de ton fichier tampon
Il faudra rendre le flux séquentiel pour ne pas qu’il puisse être lancé plusieurs fois en même temps.
-
DavidZed
Membre26 février 2024 à 21h19 en réponse à: Connection a des listes sharepoint dynamiquementHello, ce n’est malheureusement pas possible de permuter la source de données dans une même application
Pour répondre à ton besoin il faudrait passer par les solutions, ce qui revient à créer pour chaque établissement, sa propre instance de l’application.
voici la marche à suivre (si ton appli n’est pas déjà dans une solution):
Sur un environnement de DEV,
- Créer la solution (non gérée, obligatoire)
- Importer l’application Canavas (via un export .msapp)
- Créer deux variables d’environnement (Site + Liste SP) et leur attribuer le 1er Site SP et sa liste (ou mieux un site SP et une liste de dev/test)
- Retirer les valeurs de ces variables de la solution (mais les conserver sur l’environnement)
- Editer l’application :
- Supprimer la source de données SP
- Ajouter la source de données en passant par les variables d’environnement (onglet avancé)
- Publier l’app et les personnalisations de la solution
- Exporter la solution “gérée”
Créer ensuite un environnement de production par établissement (et éventuellement un environnement de TEST/UAT)
- Importer la solution managée sur chaque environnement
- Mettre à jour les variables d’environnement lors de l’import (à faire au 1er import uniquement)
Il me semble qu’il est nécessaire d’utiliser des environnement avec Dataverse pour pouvoir utiliser les solutions et les variables d’environnement, mais cela ne nécessitera pas de licence premium si tu n’utilises pas le connecteur DV.
Si as beaucoup d’établissements et que tu crains de dépasser la capacité DV (un envirronnemrnt utilise 1Go), tu peux faire la même chose avec des environnements Dataverse for teams, c’est à peu près les mêmes étapes, sauf qu’on crée une teams par établissement et qu’on active D4T pour ces équipes (en créant une app vierge qui peut être supprimée ensuite)
-
DavidZed
Membre26 février 2024 à 8h55 en réponse à: Date diff entre deux date differente avec dataverseHello,
crfbe_debutstandbyetude et crfbe_finstandbyetude sont bien des colonnes de type date ou date et heure ?
Si tu as mis ces colonnes au format texte, il faudra convertir les dates avec DateValue(‘chaine de texte’ ; format)
-
DavidZed
Membre26 février 2024 à 8h50 en réponse à: Erreurs lors de la tentative de récupération à partir du réseau : "Type eq null"Il faudrait un screenshot des formules en erreur, avec le curseur de la souris en survol sur la partie soulignée en gras de l’erreur.
Au pifomètre, je dirais que le problème vient d’un filtre sur le tableau Excel ou alors peut-être une mauvaise utilisation de ShowColumns() / DropColumns()
-
Il y a possibilité d’utiliser dataverse for Teams, mais celà amène d’autres contraintes :
- Les applications doivent obligatoirement être lancées dans Teams (si pas de licence premium), ce qui exclut :
- Le lancement direct depuis Power Apps Mobile
- Le lancement direct depuis un navigateur web (sans passer par Teams
- Il y a des disparités dans les objets disponibles dans l’éditeur
Dans ce scénario, il y a 3 rôles de sécurité : Propriétaire, membre et invité, qui correspondent aux statuts des utilisateurs de l’équipe teams. En désignant les utilisateurs comme invités, ils pourront utiliser l’appli, mais pas accéder aux paramètres de la solution, qui inclut les tables Dataverse For Teams (D4T), ils ne pourront pas non plus créer leur propre app ou flux dans cet environnement pour accéder aux données.
- Les applications doivent obligatoirement être lancées dans Teams (si pas de licence premium), ce qui exclut :
-
Hello,
C’est en effet domage que ce type de contrôle ne soit pas proposé nativement sur les colonnes Oui / Non de Dataverse.
Le plus simple pour y parvenir :
- Déverrouiller le Datacard
- Copier le nom du combobox (il s’appelle DatacardValueXX)
- Copier la formule de positionnement en Y
- Supprimer le combobox
- Insérrer un controle bascule
- Renomer la bascule avec le nom du combox supprimé
- Coller la formule de positionnement en Y
- Aller dans le paramètre update du datacard (qui sera en erreur) et remplacer
DatacardValueXX.Selected
parIf(DatacardValueXX.Value ; 'Fiche d'inscription (Nom de la table)'.Oui ; 'Fiche d'inscription (Nom de la table)'.Non )
- Il ne reste plsu qu’à gérer la valeur par défaut, dans la propriété Default (ou Checked si modern control) de la bascule, mettre :
Parent.Default = 'Fiche d'inscription (Nom de la table)'.Oui
L’astuce ici est de renommer la bascule avec le nom du contrôle (combobox) qu’on a supprimé, cela va permettre aux autres objets et propriétés du datacard de ‘raccrocher’ les wagons avec les formules générées automatiquement (et d’éviter d’avoir à les refaire 😅 ).
-
Comment faites-vous pour sécuriser vos données?
En premier lieu : je n’utilise pas Sharepoint comme source de données 😆
Soyons clair, on ne peux pas contraindre un utilisateur à passer obligatoirement par une power app pour modifier les données d’une liste SP.
Dans le meilleur des cas, on peut utiliser des stratagemes pour décourager 99% des utilisateurs de le faire, avec la méthode des sous-sites décrite plus haut ou en mettant une vue par défaut qui n’affiche que l’Id de la ligne avec un filtre ne retournant aucune ligne, idem pour le formulaire, on retire des champs obligatoires et on interdit la création / modification des vues et formulaires et la possibiilté de créer une vue privée.
Mais rien ne pourra empecher un utilisateur malveillant de créer une app ou un flux qui ira altérer les données de la liste.
-
DavidZed
Membre21 février 2024 à 15h19 en réponse à: PowerApps Flow parent/ children liste SharePointHello
Je ne comprends pas trop le problème de sécurité et en quoi passer par des flux imbriqués va le résoudre mais si tu veux parvenir au résultat souhaité :
Si tu veux passer les valeurs de ton formulaire de power Apps à Power Automate :
Mets une entrée texte nommée JSON_Updates,
Dans ton application, sur un bouton, lance ton flux en lui passant les données du formulaire :
‘Nom du flux’.Run( JSON(‘Nom du formulaire’.Updates) )
Il est probable que tu ais à utiliser un ShowColumns() pour écarter les colonnes complexes qui ne peuvent pas être interprétées en JSON, si tu as des images, il faudra peut être passer par une variable et ajouter le paramètre IncludeBinaryData
Dans ton flux, juste après le déclencheur, ajoute une action ParseJSON pour interpréter les données.
-
DavidZed
Membre16 février 2024 à 15h47 en réponse à: comment exporter ou capturer une Vue power Apps en imageBonjour,
Tu peux utiliser la fonction Print() et utiliser une imprimante PDF
Pense à activer l’option : sinon les couleurs de fond des objets n’apparaîtront pas.
Sinon il y a la fonction PDF() qui peut générer un contenu pdf à partir d’un écran mais aussi d’une gallerie ou un container
-
essaie ce truc là :
Cependant fais attention, ces colonnes calculées vont bientôt être dépréciées (elle foncitonneront, mais il est possible que leur modification ne soit plus accessible)
Tu peux essayer une colonne powerFx à la place
Work with Dataverse formula columns – Power Apps | Microsoft Learn -
essaie ce truc là :
-
DavidZed
Membre16 février 2024 à 10h46 en réponse à: Message dans bandeau “Une erreur est survenue”Hello,
Si lbl_Qté et lbl_PrixU sont des contrôles : labelText, textinput,
Il vaut mieux éviter, quand c’est posible, de faire des calculs sur des contrôles qui peuvent contenir du texte, ou alors il faut effectivement convertir leur text en décimal avec Value(), mais plutôt sous cette forme :
Value(lbl_Qté .Text) * Value(lbl_PrixU.Text)
Si c’est un textinput, l’idéal est de le mettre en formatType.Numbers, (ce qui est également plus pratique pour la saisie sur mobile)
La chose à éviter, si lbl_Qté et lbl_PrixU sont des labelText, c’est de spécifier arbitrairement le spéarateur décimal : si l’utilisateur n’a pas la même langue sur son navigateur, il y aura des erreurs, là où toi tu n’auras aucune alerte
-
Hello,
Quand je fais une app de contrôle des stockes, je part généralement sur 3 listes :
- Références produit
- Lots
Colonnes- Produit( (Lookup)
- Quantité initiale (entier)
- Quantité actuelle entier)
- Mouvements
Colonnes :- Produit( (Lookup)
- Lot (Lookup)
- Quantité (entier positif = ajout, négatif = retrait)
Je fais un flux Power automate qui se déclenche à la création d’un mouvement :
- Récupération du lot et de tous les mouvements associés
- Calcul des quantités : Quantité initiale du lot + Somme de toutes les quantités des mouvement, pour ce faire, j’utilise la méthode avec Xpath : Power Automate : Somme (Optimisée) d’une table de valeurs – Base de connaissances – PPFC
- Mise à jour de la quantité calculée pour le lot
Si j’ai besoin de calculer les quantités par référence produit, je fais un flux similaire qui va faire la somme de toutes les quantités actuelles des lots associés au produit.
Si tu as besoin de faire la somme dans ton appli, tu peux utiliser la fonction Sum() couplée à un Filter() :
Sum(
Filter(Lots ; Produit.Title = “Perlinpinpin” ) ; ‘Quantité actuelle’
)