Réponses céées sur le Forum

Page 26 sur 71
  • DavidZed

    Membre
    29 septembre 2023 à 21h15 en réponse à: Contrôle de champs "texte" pour plaque d'immatriculation

    Hello Jean ,

    Dans ce cas de figure, on peut utiliser les fonctions :

    • IsMatch() : Pour s’assurer qu’une chaîne respecte un certain format

    • Upper() : pour transformer les minuscules en majuscules

    • Right() et Left() : Pour extraire des caractères d’une chaîne

    • Substitute() : Pour remplacer des caractères dans une chaîne

    Tu peux ajouter un label texte pour indiquer si la saisie est correcte (attention syntaxe en anglais) :

    If(IsMatch(n    With({ // On nomme des constantes pour simplifier le la formule qui suitn        Immat:TextInputSaisie.Text,n        Sep1:Left(TextInputSaisie.Text,3),n        Sep2:Right(TextInputSaisie.Text,3)},nn        Upper( // on transofrme les minuscules en majusculesn            Substitute( n                Substitute( n                    Immat,Sep1,Left(Sep1,2)&"-"),// On remplace les 3 premiers caractères par les 2 premiers suivi de "-" = on remplace le 3eme caractère par un tiretn                    Sep2,"-"&Right(Sep2,2) // On remplace les 3 derniers caractères par un "-", suivi par les 2 derniers = on remplace le 7eme caractère par un tiretn                    ))),n    Match.Letter&Match.Letter&Match.Hyphen&Match.Digit&Match.Digit&Match.Digit&Match.Hyphen&Match.Letter&Match.Letter), // On verifie que le tout correspond au format : 2 lettres, tiret, 3 chiffres, tiret, deux lettresn    "Format OK" ,// Si ouin    "Merci de respecter le format ''AA-000-AA''" ) //Sinon

    ce qui devrait donner :

    Tu peux ensuite utiliser le IsMatch et son contenu pour conditionner l’update du datacard

    CommentID=5M4aIydMuSvUrQX, PostID=erpIzqrXOw59kfW

  • DavidZed

    Membre
    28 septembre 2023 à 11h29 en réponse à: Powerapps et liste sharepoint + bouton
    Petite erreur de syntaxe : Patch(OFPOP_Desk_list; Defaults(OFPOP_Desk_list) ; { Desktel: ctxDesktel ; User: ctxUser ; Presta: ctxPresta} );;n// Réinitialisation des variables une fois le patch terminénUpdateContext({Titre : User().FullName & " - " &Text(Today(),"yymmdd")) ; ctxDesktel: Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })

    Si tu as un doute sur une propriété de sortie, tu peux t’aider de la saisie assistée des formules, si tu tapes User(). dans ta barre de formule, il te mettra la liste des propriétés disponible sur cette fonction

    CommentID=QvvKEyCqotp8hci, PostID=KgHi4mBKuf8BEIo

  • DavidZed

    Membre
    28 septembre 2023 à 6h35 en réponse à: Powerapps et liste sharepoint + bouton

    Alors pour celle-ci, il y a un “:” en trop :

    Pour l’erreur de type attendu sur le champ prestation, au temps pour moi j’avais lu un peu vite et il me semblait que c’était un champ type texte. Du coup c’est au niveau de tes boutons réponses qu’il faudra changer :

    UpdateContext({ctxPresta : "OFPOP"})

    en

    UpdateContext({ctxPresta : { Value : "OFPOP" } } )

    Je te conseille de garder ce lien vers l’excellent blog Sharepains en favoris, cet article référence les différentes manières de patcher des colonnes complexes de Sharepoint.

    (attention, l’auteur a volontairement laissé la syntaxe d’origine, qui inclut nottament le type odata : '@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference qui devait être précisé obligatoirement, depuis un peu plus de deux ans la syntaxe a été simplifiée)

    CommentID=PM03ILIx0Rcm5kN, PostID=KgHi4mBKuf8BEIo

  • Argh en effet c’est plutôt hardcore comme effet de bord. Comme quoi la backup d’environnement c’est pas tout à fait anodin 🙁

    Si vous avez le Coe starter kit ou un équivalent pour la gouvernance, tu peux peut-être automatiser un mail / une notif pour chaque app présente sur l’environnement vers ses propriétaires et copropriétaires pour leur demander de mettre à jour leurs liens ?

    J’espère que tout rentrera dans l’ordre assez vite, c’est vrai que bosser sur des environnements avec des centaines de milliers d’utilisateurs et plusieurs milliers d’applications, pour y avoir été confronté, on a parfois l’impression de marcher sur des œufs à chaque action 😨

    CommentID=FrryYjqtakpoEUp, PostID=ihjFRltgOehdmfx

  • DavidZed

    Membre
    27 septembre 2023 à 9h30 en réponse à: Transferer vers power apps for teams

    Tu dois pouvoir récupérer la structure (et les données) de chaque table avec un dataflow (Outil importer des données)

    Il y aura peut être quelques transformations à faire en Power Query :

    CommentID=oD170WZRyRUwXwc, PostID=fyZZkwMdGOYXBnB

  • DavidZed

    Membre
    27 septembre 2023 à 6h30 en réponse à: Transferer vers power apps for teams

    Bonjour Fred Evellin ,

    Si on peut facilement convertir un environnement D4T (Dataverse for Teams) vers un environnement Dataverse, l’inverse n’est malheureusement pas possible.

    D4T a une version “light” de Dataverse.

    Ce que tu peux essayer de faire :

    Reproduire tes tables dans l’environnement D4T (en respectant au maximum les types et noms de colonnes)

    exporter ton app en .zip depuis l’éditeur et l’importer dans l’éditeur D4T (pas sûr que ça fonctionne non plus)

    Pour ce qui est des licences, il n’y a pas de licence unique avec nombre d’utilisateurs illimités

    Par contre il est possible d’affecter des app passes à l’environnement et d’autoriser l’application à consommer ces passes. Dans ce cas, chaque utilisateur qui va lancer l’application va se voir attribuer une licence per app à 5$

    CommentID=3oGKZ4KbnU6cV4R, PostID=fyZZkwMdGOYXBnB

  • DavidZed

    Membre
    27 septembre 2023 à 6h11 en réponse à: Powerapps et liste sharepoint + bouton

    Bonjour Francois ,

    Tu peux partir sur cette approche : Utiliser trois variables pour stocker les réponses pour chacun des groupes.

    Sur le OnSelect des boutons du groupe 1 (exemple) :

    UpdateContext({ctxDesk-Tel : {Value: "Desk1"}}) // Value car colonne de type choice

    Pour le groupe 2

    UpdateContext({ctxUser : "JZ"})

    Pour le groupe 3

    UpdateContext({ctxPresta : "OFPOP"})

    Ensuite il te faudra un bouton “Valider” pour patcher ta source de données :

    Patch('Ta liste Sharepoint'; Defaults('Ta liste Sharepoint') ; { desk-tel : ctxDesk-Tel ; User: ctxUser ; Prestation : ctxPresta} );;n// Réinitialisation des variables une fois le patch terminénUpdateContext({ctxDesk-Tel : Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })

    et enfin pour chaque groupe de boutons, tu pourras mettre son DisplayMode qui change en fonction de la présence de la réponse précédente :

    Pour le groupe 2

    If(IsBlank(ctxDesk-Tel) ; DisplayMode.Disabled ;  DisplayMode.Edit)

    Pour le groupe 3

    If(IsBlank(ctxUser) ; DisplayMode.Disabled ;  DisplayMode.Edit)

    Pour le bouton “valider”

    If(IsBlank(ctxPresta) ; DisplayMode.Disabled ;  DisplayMode.Edit)

    CommentID=8aU6jOqvVD95zlM, PostID=KgHi4mBKuf8BEIo

  • DavidZed

    Membre
    26 septembre 2023 à 6h55 en réponse à: Disparition des contrôles

    Pour ma part j’ai constaté 3 bugs dans le studio en ce moment :

    • Tous les contrôles disparaissent de l’écran, la zone de prévisualisation affiche une page blanche vide

      • Il suffit de cliquer sur un autre écran et revenir sur le 1er

    • L’écran devient entièrement gris (menus de navigation et paramètres inclus)

      • Rafraichissement de la page au niveau du navigateur obligatoire

    • La barre de formule classique est vide et inutilisable

      • Rafraichissement de la page au niveau du navigateur obligatoire

    CommentID=KtxNMKvgNTZseZ6, PostID=DytAawLzZ66K4cu

  • DavidZed

    Membre
    25 septembre 2023 à 15h23 en réponse à: Mettre a jour une liste lors d'une modification de fichier

    Hello Jean ,

    Je pense que dans ce cas, le plus simple est d’ajouter une colonne de type recherche à ta bibliothèque de documents et de peupler celle-ci dans le flux que tu as déjà créé (avec une condition : si cette colonne est vide, on crée une ligne, sinon on modifie la ligne liée)

    CommentID=qXxCndjd7HzKUa6, PostID=OiyxmNyMqBkAz64

  • DavidZed

    Membre
    23 septembre 2023 à 16h05 en réponse à: Ignorer un connecteur en cas d'échec

    Hello Jean-Rémy Gallapont ,

    Il est possible de bypasser ce popup de consentement avec une commande PowerShel : Set-AdminPowerAppApisToBypassConsent (Microsoft.PowerApps.Administration.PowerShell) | Microsoft Learn

    Par contre cela sera effectif pour tous les connecteurs utilisés directement ou indirectement (si l’app lance des flux power automate) par l’appli.

    Il y a peut-être une solution plus simple : Tes guests, ne peuvent pas se connecter avec leur adresse car leur domaine est rattaché à Gmail, c’est donc logique qu’ils ne puissent pas créer une connexion Outlook avec un mail estampillé google.

    Mais si tu leur fournis une licence Outlook, ils ont forcément un mail créé avec un domaine par défaut du type : @xxxxonmicrosoft.com
    C’est avec cet identifiant qu’il faut qu’ils s’identifient à ton appli. Il faudra cependant veiller à bien mettre l’adresse gmail dans le replyto

    CommentID=WegHwbgdQBFFcZm, PostID=jChz3GoimZUHLU5

  • DavidZed

    Membre
    1 octobre 2023 à 9h58 en réponse à: Contrôle de champs "texte" pour plaque d'immatriculation

    Super ypicot !

    J’ai toujours évité les regex autant que je le pouvais à case de cette syntaxe qui tient presque de l’incantation vaudou (et la doc MS learn est assez succincte sur ce volet). Merci car pour le coup, ta réponse démystifie plutôt bien le principe !

    ça vaudrait presque un article dans la base de connaissances 🙂

    SubCommentID=SzaZqjmzcX09H8w, CommentID=IBrEsTk6G2ibufk, PostID=erpIzqrXOw59kfW

  • DavidZed

    Membre
    28 septembre 2023 à 9h57 en réponse à: Powerapps et liste sharepoint + bouton

    Tout est dans le message d’erreur, en effet la colonne Titre / Title est une colonne imposée par Sharepoint qui est toujours obligatoire.

    Tu peux en profiter y renseigner une référence en fonction de l’utilisateur et de la date par exemple :

    UpdateContext({Titre : User().DisplayName & " - " Text(Today(),"yymmdd")) ; ctxDesktel: Blank() ; ctxUser : Blank() ; ctxPresta : Blank() })

    SubCommentID=Vo2fSH3LBk757iA, CommentID=XAaSW6Iw0WeOKlM, PostID=KgHi4mBKuf8BEIo

  • DavidZed

    Membre
    27 septembre 2023 à 9h20 en réponse à: Powerapps et liste sharepoint + bouton

    Si tu as changé le type de colonne en texte alors il faut modifier la formule, car là tu fournis un record, essaies sans le {Value: } :

    UpdateContext({ctxDesktel : "Desk1"})

    SubCommentID=pUou90d0VjG2ZER, CommentID=TFgHzXgMyB4IfyO, PostID=KgHi4mBKuf8BEIo

  • DavidZed

    Membre
    27 septembre 2023 à 6h14 en réponse à: Mettre a jour une liste lors d'une modification de fichier

    Hello, non je n’ai jamais eu à procéder ainsi, généralement j’ajoute simplement des colonnes de métadonnées à la bibliothèque, cela permet la plupart des fonctionnalités des listes

    SubCommentID=yKN81rvHt5igFuO, CommentID=QRKcIbzOAkNTtut, PostID=OiyxmNyMqBkAz64

  • DavidZed

    Membre
    25 septembre 2023 à 15h03 en réponse à: Erreur sauvegarde collection vers liste sharepoint

    C’est parce que ton Centre est une colonne de type recherche, il attend une valeur de type record enregistrement au format {Id : 45; Value:”Ablis Test”} (qui vont correspondre aux colonnes ID et Title de ta liste lié à cette colonne recherche.

    L’idéal est de récupérer ce schéma sur ta liste déroulante ou ton combobox: ComboBox1.Selected (au moment ou tu collecte les réponses)

    SubCommentID=9wYhjXrfpGiuSiJ, CommentID=KWptYou3iAwwDH7, PostID=ukZsywYt1asBB4K

Page 26 sur 71