Réponses céées sur le Forum

Page 60 sur 70
  • Si la solution utilise Dataverse, ajouter les droits nécessaire risquerait d’être long et fastidieux.

    Je privilégierai à la place, de créer un rôle de sécurité custom en partant du rôle System customizer comme base, et en enlevant certains droits : la suppression de solutions, applications et tables par exemple. Ce sera plus rapide.

    CommentID=9wdd0VHwg5TIYr9, PostID=fZBcCy7J2gJxKhI

  • DavidZed

    Membre
    6 octobre 2022 à 14h15 en réponse à: Colonne option et Search

    Hello Dav ,

    Pour moi, il y a deux problèmes : la fonction Search() ne fonctionne qu’avec une chaîne de caractères, et tu dois filtrer sur des données qui sont dans des relations multiple à multiple :

    Une personne peut être associée à plusieurs projets et un projet peut compter plusieurs personnes

    Pour le search, l’idéal est de le remplacer par un filter() et de mettre ta liste de choix dans un combobox par exemple :

    Filter('Table Projets PwApps';ComboBox1.Selected.Value in Service; TextSearchBox1.Text in ville || TextSearchBox1.Text in projet || TextSearchBox1.Text in Nom)

    Si tu as des choix multiples dans ta colonne, tant que tu recherches sur un critère, c’est assez simple, comme l’exemple au dessus. Si tu dois filtrer sur une colonne à choix unique mais sur plusieurs critères, là encore ça reste simple. Par contre si tu dois rechercher plusieurs critères dans une colonne à choix multiple, là ça devient assez complexe en canvas, et généralement on évite car ça ne donne pas spécialement un filtrage utile ou pertinent.

    CommentID=gPALaNwLZopXYVh, PostID=8txKIBj8zm77kLe

  • DavidZed

    Membre
    6 octobre 2022 à 9h07 en réponse à: Problème de type pour une comparaison.

    Hello Marine

    La valeur que tu vas récupérer dans un Param() va être de type texte, l’Id d’un item Sharepoint est de type nombre entier.

    Tu dois pouvoir convertir ton texte en valeur numérique avec un Value(), ce qui donnerait :
    ID= Value(Param("ficheId"))

    L’inverse fonctionnera certainement aussi, en convertissant l’ID numérique en text string :
    Text(ID)=Param("ficheId")

    CommentID=z60mLHw3G9JUtbk, PostID=395oGbalgO3tNvn

    • DavidZed

      Membre
      6 octobre 2022 à 9h53 en réponse à: Problème de type pour une comparaison.

      Le message d’erreur n’en dit pas vraiment long, pour avoir une vision plus claire sur ce qui cloche avec cette variable, il faut aller dans le menu “view” puis “variables” :

      ensuite, sélectionner l’écran et la variable de contexte et voir s’il y a une erreur dans le datatype de la variable

      S’il y a une erreur, il faudra cliquer sur la variable et s’intéresser à l’onglet définitions :

      C’est dans cet onglet que tu vas retrouver tous les endroits (objets & actions) où ta variable est définie, il faudra passer en revue chaque ligne de cette table pour voir si tu n’as pas une définition (updatecontext) qui défini un schéma incompatible : source de donnée différente, colonne ajoutée ou renommée…

      Pour identifier plus rapidement le contrôle fautif, tu peux mettre toute la formule en commentaire dans tous les contrôles, puis la recharger, contrôle par contrôle en supprimant le //, jusqu’à ce que l’erreur soit à nouveau visible.

      SubCommentID=Vxk8o9KE4wNyRMh, CommentID=z60mLHw3G9JUtbk, PostID=395oGbalgO3tNvn

  • DavidZed

    Membre
    4 octobre 2022 à 15h07 en réponse à: envoyer un courriel en fonction de l'état d'une colonne

    Hello Jfk2lax

    Il faut que tu sois vigilant sur ce genre de flux, car celui-ci peut vite consommer de la ressource inutilement et avoir des déclenchements indésirés.

    1. En tout premier lieu, les éléments essentiels à vérifier :

    2. Ton déclencheur pointe bien vers la bonne liste ?

    3. Ton flux est-il activé ?

    4. La valeur dynamique dans ta condition est-elle bien la bonne ? (si c’est un choice ou un lookup, il faut prendre Statut Value pour le comparer au texte “Terminée”, sinon tu vas récupérer un record avec Id et Value)

    Ensuite, il vaudra mieux privilégier une condition de déclenchement dans les paramètres avancés de ton trigger sharepoint plutôt qu’une condition
    Ton flux ne va se déclencher que si l’item est modifié et le statut est “Terminé”
    Si tu utilises une condition comme dans ton exemple, ton flux va se déclencher pour toutes les modifications de l’item, arriver à la condition et continuer si le statut est “Terminé”

    Exemple ici avec un champ booléen (le nom de la colonne est YesNo ):

    CommentID=mmKXTVT46nFvEFO, PostID=t5mTp7NaTh33lDi

  • DavidZed

    Membre
    4 octobre 2022 à 7h47 en réponse à: Rôles de sécu & fonction Errors() Power Apps

    A savoir que sans cela il y a une notif d’erreur de base quand le user n’a pas l’autorisation pour une action, mais dans un langage un peu barbare pour l’utilisateur 🙂

    CommentID=Ye8iWAkI9wbXuei, PostID=iEU7NEQUijRGGk0

  • DavidZed

    Membre
    4 octobre 2022 à 7h44 en réponse à: Rôles de sécu & fonction Errors() Power Apps

    Hello R3dKap ,

    Dans cette situation, il m’arrive de personnaliser le message d’erreur avec la fonction IfError, exemple :

    IfError(Remove('Table Source Dataverse',ThisItem),Notify("Message d'erreur custom",NotificationType.Warning),Remove('Table Source Dataverse',ThisItem))

    A noter que tu peux aussi récupérer des éléments de l’erreur avec FirstError / AllErrors / ErrorResult au sein du IfError

    CommentID=pvbSUHNWUzQY5OB, PostID=iEU7NEQUijRGGk0

  • DavidZed

    Membre
    4 octobre 2022 à 6h57 en réponse à: environnement non visible pour mon groupe

    Pour l’affichage, celui du haut est la nouvelle version qui est disponible depuis une semaine ou deux, en bas c’est l’ancien.

    S’il y a des disparités entre utilisateurs, il faut que ces derniers vident le cache de leur navigateur

    CommentID=0nrOxZAS87tZF52, PostID=LXSRpj0XJlgvXmH

  • DavidZed

    Membre
    3 octobre 2022 à 7h01 en réponse à: environnement non visible pour mon groupe

    Hello,

    Tu as trouvé la solution 😉

    A savoir, l’environnement n’est pas toujours visible tout de suite pour l’utilisateur qui vient d’être ajouté au groupe. Il vaut mieux lui fournir un lien direct vers l’environnement.

    CommentID=GDNura6F2mndo0o, PostID=LXSRpj0XJlgvXmH

  • DavidZed

    Membre
    30 septembre 2022 à 13h17 en réponse à: Bonne pratiques de nommage des contrôles

    Hello Sebastien Brandeis ,

    Pour ce qui est du nommage des objets dans l’app studio, par contre il peut être interessant de normer le nommage des variables selon leur type : contexte, globale, collection etc..

    Pour les objets : toujours conserver le nom de base : button…. , DropDown…. Label…. et mettre le nommage en suffixe en priorité, cela permet de retrouver facilement un contrôle par son type avec la fonction search. Ne mettre un préfixe que pour tagger des objets qui doivent faire l’objet d’une catégorisation indépendante. Par exemple, je met un DEV_ sur tous les contrôles masqués que je ne souhaite pas afficher dans l’appli (contrôles hors champ) cela me permet de modifier rapidement certains paramètres pour que le contrôle soit réellement inaccessible : taquets de tabulation…

    CommentID=4x04spxQ7DHqiHR, PostID=zjm4yBNRF7QrTcA

  • DavidZed

    Membre
    30 septembre 2022 à 13h15 en réponse à: Bonnes pratiques de nommage des champs

    Hello Sebastien Brandeis ,

    Pour Dataverse, mettre en place des règles de nommage sur le ‘shema name’ présente assez peu d’intérêt, voire peut se révéler handicapant dans certains cas.

    Exemple quand tu te retrouves à devoir manipuler les colonnes dans l’pp studio avec des showcolumns / dropcolumns etc… il est très pratique de pouvoir déduire le shema name facilement (Préfixe de l’éditeur + display Name sans les espaces et caractères spéciaux)

    CommentID=4b3HTOkHD9cDrN2, PostID=Bcjo0E7y9lwWty4

  • DavidZed

    Membre
    30 septembre 2022 à 11h35 en réponse à: Help suite formule

    Hello Eric ,

    J’ai fait quelques essais pour ton soucis, il me semblait que l’on pouvait faire ce type de recherche en utilisant des “*” exemple test*.* mais cela génère une erreur.

    Il y a possibilité de récupérer un liste de fichiers dans le dossier pour ensuite la filtrer et aller récupérer le bon fichier. Mais je me demandais s’il ne serait pas plus simple de modifier le nom de ton fichier au sein même du ‘Appliquer à chacun’ à l’aide d’une variable, le cheminement devrait ressembler à ceci :

    CommentID=LynIB7glXJIAf2J, PostID=W6226LiFDe9ZFJ4

    • DavidZed

      Membre
      30 septembre 2022 à 14h01 en réponse à: Help suite formule

      Il y a deux ‘appliquer à chacun’ imbriqués, cela vient du fait que tu as mis une mauvaise valeur dynamique dans la variable en encadré, il faut mettre la valeur attachment name (la même que dans la condition)

      SubCommentID=weIBjA3mO0eaPLV, CommentID=LynIB7glXJIAf2J, PostID=W6226LiFDe9ZFJ4

  • DavidZed

    Membre
    28 septembre 2022 à 18h07 en réponse à: App ouvert sur Accès invité

    Hello FRED b.

    Tes utilisateurs “Guests” auront besoin du même niveau de licence que tes utilisateurs internes, c’est à dire :

    Si ton application utilise sharepoint et des connecteurs standard, il aura besoin d’une licence office 365, il peut par contre autoriser certains connecteurs en identifiant sa licence externe s’il en a une.

    Si ton application utilise Dataverse ou des connecteurs premium, il aura besoin de consommer une license Power Apps per app.

    Si ton application utilise les deux : ex Dataverse et un connecteur outlook (standard), il lui faudra les deux.

    https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/share-app-guests#what-license-must-be-assigned-to-my-guest-so-they-can-run-an-app-shared-with-them

    A noter que l’accès invité n’est viable que si tu as une minorité de user externes, autrement, il est beaucoup plus intéressant de passer par un portal / power page.

    CommentID=6gPsj4PXO33dZia, PostID=HE3CR0jGusmlk29

  • DavidZed

    Membre
    28 septembre 2022 à 13h02 en réponse à: Notification nouvel Article sous Teams

    Hello Romain ,

    Via power automate, c’est assez simple, le flux ressemblerait à ceci :

    • Quand un fichier est créé ou modifié

      • Condition sur une métadonnée (colonne, voir plus bas)

    • Lister les membres d’un groupe M365

      • Nom du groupe avec tous les destinataires

    • Appliquer à chacun

      • Poster une carte adaptative dans un chat ou un canal

        • Post as flow bot / post in Chat with flow bot / Recipient userId

    Les points à affiner :

    Mettre une métadonnée au fichier de la news qui servira de condition, pour lancer la diffusion, car sinon tu risques d’avoir des soucis si tu crées une news par erreur, un brouillon etc…

    L’idéal est de faire un groupe qui n’inclue que les personnes physiques et d’en exclure les comptes non nominatifs, le copieur du 3eme etc…

    Sur le “apply for each”, il faut activer le mode ‘concurrent’
    dans les settings avancés

    C’est une solution qui peut convenir pour une petite structure, mais si c’est pour un grand groupe (20k users et+) , il sera préférable de trouver une solution un peu plus élégante. Je laisse le soin aux spécialistes de SP d’affiner 🙂

    CommentID=LflYedJgr6tavZx, PostID=iZckqMLfiyv9vTr

Page 60 sur 70