Réponses céées sur le Forum

Page 11 sur 68
  • DavidZed

    Membre
    26 février 2024 à 21h19 en réponse à: Connection a des listes sharepoint dynamiquement

    Hello, 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

    Membre
    26 février 2024 à 8h55 en réponse à: Date diff entre deux date differente avec dataverse

    Hello,

    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)

  • 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()

  • DavidZed

    Membre
    25 février 2024 à 15h49 en réponse à: Sécurisation liste SharePoint

    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.

  • DavidZed

    Membre
    24 février 2024 à 21h26 en réponse à: Bouton à bascule (Toggle)

    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 par If(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 😅 ).

  • DavidZed

    Membre
    24 février 2024 à 18h10 en réponse à: Sécurisation liste SharePoint

    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

    Membre
    21 février 2024 à 15h19 en réponse à: PowerApps Flow parent/ children liste SharePoint

    Hello

    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

    Membre
    16 février 2024 à 15h47 en réponse à: comment exporter ou capturer une Vue power Apps en image

    Bonjour,

    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

  • DavidZed

    Membre
    16 février 2024 à 15h41 en réponse à: calcule sur dataverse mais Isblank et isEmpty

    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

  • DavidZed

    Membre
    16 février 2024 à 15h35 en réponse à: calcule sur dataverse mais Isblank et isEmpty

    essaie ce truc là :

  • DavidZed

    Membre
    16 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

  • DavidZed

    Membre
    15 février 2024 à 21h05 en réponse à: inventaire des stock

    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 :

    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’
    )

  • DavidZed

    Membre
    15 février 2024 à 20h45 en réponse à: Demande d’aide couleur galerie

    Hello,

    voici un exemple sur un application d’inspection que j’ai developpé :

    Il s’agit d’un contrôle image qui va afficher un coche si l’enregistrement contient une réponse et un cercle vide rouge si la réponse n’a pas encore été saisie, j’ai donc mis dans ma propriété image :

    // Si cette réponse est vide, affiche l’image cercle, sinon affiche l’image coche
    If(IsBlank(ThisItem.Réponse) ; ImageCercle ; ImageCoche)

    Tu peux utiliser la même formule en ajoutant un objet de fond dans ta galerie, un rectangle ou un container vide et mettre une condition similaire sur sa propriété .Fill (Remplissage) , mais cette fois-ci mettant une couleur ou une autre selon le résultat du test :

    // Si cette réponse est vide, couleur rouge, sinon couleur verte
    If( IsBlank(ThisItem.Réponse) ; Color.LightCoral ; Color.YellowGreen )

    ce qui devrait donner (exemple avec un container en fond de galerie ) :

    Sur cet autre exemple, j’ai, dans ma source de donnée, une colonne de type choix, qui peut avoir plusieurs valeurs :

    Pour faire varier la couleur du badge en fonction de la valeur de ce champ que j’ai nommé “Progression”, j’utilise une fonciton switch:

    // Pour chaque cas, on détermine une valeur de couleur (dans une variable)
    Switch(
    ThisItem.Progression;
    ch_CL_Progression.’Non démarré’;
    fColors.Accent3;
    ch_CL_Progression.’En cours’;
    fColors.Accent1;
    ch_CL_Progression.Terminé;
    fColors.Good;
    ch_CL_Progression.Annulé;
    fColors.Error
    )

  • DavidZed

    Membre
    15 février 2024 à 12h17 en réponse à: Variable pour automatiser certaines mises en forme

    Hello,

    Quelques suggestions :

    Il vaut mieux mettre le Set() de ce genre dans variable dans la propriété OnStart de l’application : Ainsi tu n’auras pas à déplacer ton code si jamais tu décides de changer d’écran d’accueil.

    Encore mieux, étant donné que ce genre de variable a une valeur qui n’est pas amenée à évoluer, tu peux utiliser la propriété formulas (toujours dans l’objet App), la syntaxe serait légèrement différente:

    // Préfixe nf_ pour différencier les named formulas des variables
    nf_TextInputSize = 11 ;;
    nf_TextLabelSize = 12 ;;

    Enfin, pour organiser et “ranger” tes variables et formules nommées, tu peux utiliser des valeurs de type “enregistrement” qui te permettront d’appeller plusieurs valeurs depuis un seul élément.

    Version variable globale :

    Set(varSizes, {
    TexInput : 11;
    TextLabel : 12;
    Border : 2
    } )

    Version formulas :
    Version variable globale :

    nf_Sizes = {
    TexInput : 11;
    TextLabel : 12;
    Border : 2
    } ) ;;

    Tu pourras ensuite appeler ces valeurs dans l’application avec varSizes.TextInput , varSizes.Border etc etc…

  • DavidZed

    Membre
    14 février 2024 à 21h54 en réponse à: Prendre des items d’un liste sharepoint puis créer un csv

    A noter qu’avec une licence Power Automate par utilisateur la limite passe de 5000 à 100 000

    Limites des flux automatisés, planifiés et instantanés – Power Automate | Microsoft Learn

Page 11 sur 68