Réponses céées sur le Forum

Page 15 sur 72
  • 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

  • DavidZed

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

    Bonjour,

    C’est une limitation : 5000 éléments maximum par boucle.

    Si tu dois traiter plus de lignes, il faut bricoler une boucle “répéter jusqu’à” :

    Il te faudra 2 variables, une de type array (Appellons la vLignes) pour “stocker” les lignes, une de type integer (vLastId valeur initiale 0) pour stocker le dernier ID

    Dans cette boucle appliquer à chacun :

    • Mettre un obtenir les élements SP avec :
      • Filtre Odata sur ID gt vLastId
      • Mettre 5000 dans le nombre de lignes à récupérer
    • Ajouter un Select et mettre toutes les colonnes à récupérer dans le CSV
    • Mettre un ajouter à une variable de tableau vLignes : Chaque ligne du Select précédent
    • Après la boucle appliquer à chacun, mettre un définir une variable vLastId : Last( ID du Select)
    • Mettre en condition de sortie de la boucle executer jusq=’à : Lenght ( Items de obtenir les éléments SP) <> 5000

    Cette boucle devrait se répéter tant que l’action obtenir les éléments remonte 5000 lignes, à partir du moment où elle remontera 4999 lignes ou moins ce sera la dernière itération et le flux continuera vers l’action suivante.

    Pour la 2eme erreur, il semble que tu as trop de donnés pour ton action de génération de CSV, utilise un select comme plus haut ou spécifie les colonnes mannuellement, surtout si tu as des colonnes de type image ou fichier

  • DavidZed

    Membre
    9 février 2024 à 16h49 en réponse à: remplir un power point avec datavers power plateform ?

    Bonjour,

    Ce n’est pas possible avec les actions et connecteurs standard, il existe cependant un connecteur ‘third party’ payant qui semble pouvoir le faire: Plumsail : How to populate PowerPoint PPTX presentations with data from your system using Power Automate Flow or Zapier — Plumsail Documents Documentation

  • DavidZed

    Membre
    9 février 2024 à 16h42 en réponse à: Effacer toute les lignes d’un fichier excel

    Hello, pour pouvoir identifier les lignes à supprimer, la colonne que tu désigne comme clé / key doit comporter des valeurs uniques.

    Si tu te sers d’une colonne avec des dates, dont plusieurs lignes ont la même valeur, la boucle se fera sur la même ligne car il va s’arrêter à la première valeur qui correspond

  • DavidZed

    Membre
    8 février 2024 à 10h47 en réponse à: Envoie de donnée dans un fichier avec un nom dynamique

    Non, encore une fois, chercher a gérer dynamiquement des sources de données de manière dynamique et en fonction du besoin c’est aller droit dans une impasse.

    SharePoint te permet de créer des Bibliothèques (pour enregistrer des fichiers), mais également des listes, une liste fonctionne comme une base de données avec des colonnes auxquelles ont attribue un type de données, dans cette liste on peut ajouter des enregistrements (des lignes).

    Tu peux utiliser cette liste comme source de données avec Power Apps, c’est d’ailleurs plus efficient qu’utiliser un fichier Excel comme source de données.

    Tu peux créer un flux power automate pour extraire des enregistrements de cette liste pour alimenter un fichier excel ( ex un flux qui extrait toutes le lignes dont la date est celle du jour dans un fichier excel et copie ce fichier avec un nouveau nom dans un emplacement OneDrive ou dans une bibliothèque SharePoint.

  • DavidZed

    Membre
    7 février 2024 à 18h06 en réponse à: Envoie de donnée dans un fichier avec un nom dynamique

    Bonjour,

    Non c’est impossible de gérer des sources de données à la volée et de manière dynamique.

    Si tu dois alimenter des fichiers différents, je te suggère plutôt de fonctionner avec une liste sharepoint comme source de données de l’appli et d’avoir un flux power automate qui va générer les fichiers excel journaliers en filtrant les données de la liste SP.

  • DavidZed

    Membre
    7 février 2024 à 17h58 en réponse à: Sélectionner galerie via bouton

    Essaies cette approche :

    Dans Button.OnSelect :

    UpdateContext({vctxIndex:If(vctxIndex>=Gallery6_2.AllItemsCount,1,vctxIndex+1)}) ; Select(Gallery6_2)

    Dans le Gallery.Default :

    Index(Self.AllItems,vctxIndex)

  • DavidZed

    Membre
    7 février 2024 à 8h41 en réponse à: Sélectionner galerie via bouton

    Je ne comprends pas trop ce que tu essaies de faire, mais une chose est sûre, on ne peut pas utiliser Select() pour activer un évènement OnSelect d’un contrôle dans une galerie depuis l’extérieur de celle-ci.

    Si tu veux que ton bouton à l’exterieur de la galerie fasse la même chose qu’un clic sur ton image, prends le code dans son OnSelect et remplace ThisItem. par galListData.Selected.

    Si tu veux changer l’item de ta glaerie sélectionner, tu peux agir sur la propriété DefaultSelected, avec par exemple la formule Index(‘Source de données’, variable) et en faisant évoluer la variable pour sélectionner l’item souhaité.

    Tu essaies de faire un carroussel d’images ? Si tel est le cas la galerie n’est peutêtre pas le contrôle idéal

  • Bonjour,

    Les valeurs de type Choice / Option Dataverse sont sous la forme :

    ‘Nom de la choice list’.’Valeur du choix’, si tu as créé des listes de choix réutilisables

    ‘Nom du champ (Table)’.’Valeur du choix’ , si tu as dédié ta choice liste à ce champ exclusivement

    Ton Patch devrait ressembler à :

    Patch(GLead;GalleryLead.Selected;{StatutLead : ‘Choix Statut Lead’.Qualifié})

    ou dans le 2eme cas :

    Patch(GLead;GalleryLead.Selected;{StatutLead : ‘StatutLead (Glead)’.Qualifié})

  • DavidZed

    Membre
    31 janvier 2024 à 17h59 en réponse à: Noms de colonnes ne correspond plus après déploiement

    Hello,

    Celà vient des displaynames, avec les sources SP dans des variables d’environnement, il ne faut pas chercher à comprendre : les listes doivent être ISO sur :

    • Les logical names
    • Les displayname
    • les types de données
    • le nombre de colonne

    Quand tu déploies en PROD, l’app packagée recherche bien les logical names de tes colonnes, seulement, si tu ouvres l’App dans l’éditeur, lui va rechercher les logical names d’après les display names, d’où tes erreurs.

    La seule alternative serait d’appeller les données systèmatiquement au travers d’un ShowColumn() qui zapper les displaynames pour n’afficher que les logical names des colonnes.

    Développer avec les logical names uniquement serait plus simple, mais pas d’un point de vue low code malheureusement 🙁

  • DavidZed

    Membre
    25 janvier 2024 à 11h14 en réponse à: Message d’erreur

    Alors il faut regarder à chaque endroit ou tu as un collect() ou clearcollect() qui alimente ta collection et rechercher ce qui pourrait altérer son schéma de données par rapport à la source, et plus particulièrement :

    • La présence de formules de type : AddColumns, ShowColumns, DropColumns, GroupBy, UnGroup
    • Le collect d’item directement depuis une galerie ou un formulaire > Passer par un lookup()
    • Le collect d’item avec une nouvelle colonne dans la partie { updates }
    • Le collect d’item avec type de donnée différent de celui attendu
Page 15 sur 72