Réponses céées sur le Forum

Page 38 sur 80
  • R3dKap

    Membre
    17 février 2023 à 11h14 en réponse à: Filtrer les enregistrement d'un formulaires

    Salut Tom Victor,

    C’est très clair. Merci pour les explications détaillées.

    Alors, au vu de ton cas, et pour que l’expérience utilisateur soit la meilleure, je viserais l’objectif suivant :

    • la combo box Cde (en-dessous de Client) reste grisée tant qu’un client n’a pas été choisi

    • une fois qu’un client a été choisi, la combo box Cde se déverrouille et n’affiche que les commandes du client

    • une fois qu’une commande a été choisie, la galerie affiche les lignes de détail de la commande

    • en cliquant sur une ligne de la galerie, cela affiche le panel de droite où l’on peut modifier la ligne de la commande (du coup il ne devrait y avoir qu’un bouton ENREGISTRER)

    • je mettrais un bouton NOUVELLE LIGNE en haut à droite au-dessus de la galerie qui affiche le détail de la commande

    • et sur chaque ligne de la galerie je mettrais tout à droite un icône POUBELLE pour supprimer une ligne si nécessaire

    • dans le panel de droite qui s’affiche lorsque l’on clique sur une ligne ou lorsque l’on clique sur NOUVELLE COMMANDE il y aurait le formulaire branché sur ta liste CRM-Détail commandes : dans ce formulaire, le datacard contenant la commande serait masqué et automatiquement alimenté à partir de la combo box Cde (en-dessous de Client)

    Ca t’irait comme mode de fonctionnement ?

    CommentID=4Dt3AYMeJnuTvC7, PostID=wVEkrzcD5VIJ3Ae

  • R3dKap

    Membre
    17 février 2023 à 8h33 en réponse à: Custom Form validation

    MarKAR est-ce que tu as personnalisé le formulaire de ta liste SharePoint ou tu as créé une application dans laquelle tu as ajouté un formulaire connecté à ta liste ?

    CommentID=M2MZCxSVwCNFWKA, PostID=s9fsO5Ut1CgxnOC

  • R3dKap

    Membre
    16 février 2023 à 20h11 en réponse à: Perte de données après un "move to" de plusieurs fichiers

    Salut BNguyen,

    Qu’avez-vous déjà fait comme tests ?

    1. Même problème lorsque un fichier pour lequel ça ne marche pas est déplacé de manière unitaire ?

    2. Est-ce que ce sont toujours les 2 mêmes pour qui ça ne marche pas ?

    3. Est-ce qu’en faisant une copie plutôt qu’un déplacement ça fonctionne ?

    CommentID=cdURVqWGzeQObOq, PostID=Xol03IhYhae9vUX

  • R3dKap

    Membre
    16 février 2023 à 9h49 en réponse à: Colonne Lookup dans dataverse

    Ok. Alors, en fait c’est la colonne domainname qu’il faut utiliser… Et l’erreur du ShowColumns() vient du fait que tu n’as pas mis les guillemets autour du nom de la colonne dans le 2ème paramètre.

    Donc, la formule devrait être :

    Filter(n    Utilisateurs; n    domainname in ShowColumns(n        Filter(n            Presta_Users; n            LookPresta.Prestations = varPrestaActive.Titlen        ); n        "domainname"n    )n)

    Par contre, je suis surpris par ton varPrestaActive.Title. Normalement tu dois utiliser la colonne de clé primaire de ta table Prestations donc en toute logique, si ta variable varPrestaActive est bien un vrai enregistrement de ta table Prestations, ça devrait être varPrestaActive.Prestations.

    Tu me suis ?

    Sinon, mets-moi une capture des colonnes de tes tables Prestations et Presta_Users où on voit bien les libellés et surtout les noms logiques des colonnes… 😉

    CommentID=1ewl59Eu6cqnED7, PostID=z324iIg1fpvSr5r

  • R3dKap

    Membre
    14 février 2023 à 17h18 en réponse à: Colonne Lookup dans dataverse

    Ok, alors voici comment procéder…

    Commence par ajouter une datacard personnalisée à ton formulaire. Ajoutes-y un libellé puis une combo box appelée DataCardValueIngénieurs (zone de liste déroulante) et assure-toi que sa propriété SelectMultiple est bien à true.

    Dans le Items de ta combo box où tu veux choisir les ingénieurs, met juste : Utilisateurs. En fait, on considère que ta combo box sert à sélectionner des personnes, donc on pointe directement sur la table des utilisateurs. Assure-toi que tu choisisses bien la colonne Nom complet pour afficher le nom des utilisateurs dans la liste déroulante.

    Reste à gérer les valeurs par défaut de la combo box et l’enregistrement/chargement des ingénieurs rattachés à une prestation.

    Je vais supposer que tu as un formulaire sur ton écran directement branché sur ta table Prestation ; et que ta colonne principale (qui est de type ‘Identificateur unique‘) s’appelle Prestation (c’est souvent le même nom que la table elle-même).

    Je vais aussi supposer que tu as bien une table Prestations_Utilisateurs avec 2 colonnes :

    • Prestation : un lookup vers ta table Prestation

    • Utilisateur : un lookup vers la table Utilisateurs

    Sur le DefaultSelectedItems de DataCardValueIngénieurs mets le code suivant :

    Filter(n    Utilisateurs; n    systemuserid in ShowColumns(n        Filter(n            Prestations_Utilisateurs; n            Prestation.Prestation = varSelectedPrestation.Prestationn        ); n        "systemuserid"n    )n)

    Le Filter() de niveau 2 va chercher tous les utilisateurs rattachés à la prestation qui est en train d’être éditée.

    Le Filter() tout en haut va chercher ces utilisateurs directement dans la table Utilisateurs.

    Je suppose que la prestation en cours d’édition (potentiellement choisie sur un écran précédent dans une galerie) se trouve dans une variable varSelectedPrestation.

    Dans le OnSuccess de ton formulaire, met le code suivant pour rattacher les utilisateurs choisis à la prestation sélectionnée :

    RemoveIf(Prestations_Utilisateurs; Prestation.Prestation = Form1.LastSubmit.Prestation);;nForAll(n    DataCardValueIngénieurs.SelectedItems As Ingénieur;n    Patch(n        Prestations_Utilisateurs;n        Defaults(Prestations_Utilisateurs);n        {n            Prestation: varSelectedPrestation;n            Utilisateur: Ingénieurn        }n    )n)

    En fait on fait de l’annule-et-remplace…

    Voilà… J’ai écris ça un peu à l’arrache… Le principe est là… Si tu as des erreurs, n’hésite pas à revenir vers moi. J’essaierais de reproduire ton cas plus précisément demain pour corriger 2 ou 3 petites choses si nécessaire.

    CommentID=qwCzQUj8OVUU52Z, PostID=z324iIg1fpvSr5r

  • R3dKap

    Membre
    14 février 2023 à 9h16 en réponse à: Colonne Lookup dans dataverse

    Ok, parfait. Autre question : ta liste d’ingénieurs c’est une liste que tu as créé toi ou tu comptes utiliser la liste standard Utilisateurs ?

    CommentID=gYS9wl8TEeQLtvu, PostID=z324iIg1fpvSr5r

  • R3dKap

    Membre
    13 février 2023 à 20h36 en réponse à: Colonne Lookup dans dataverse

    Zliga Oumaima est-ce que tu peux d’abord préciser ton cas de figure stp :

    1. C’est l’utilisateur connecté qui se voit affecté plusieurs prestations

    2. L’utilisateur connecté choisit une prestations et lui affecte plusieurs utilisateurs

    3. L’utilisateur connecté choisit un utilisateur et lui affecte plusieurs prestations

    CommentID=lgD8PIopDqOeZG7, PostID=z324iIg1fpvSr5r

  • R3dKap

    Membre
    9 février 2023 à 20h52 en réponse à: Colonne Lookup dans dataverse

    Zliga Oumaima, les combo box dans Power Apps ne supportent pas les relations N:N du Dataverse.

    Et c’est normal que tu ne voies pas de colonnes pour représenter ta donnée multiple : elle n’existe pas. Comme indiqué par DavidZed lorsque tu crées une relation N:N le système crée une table cachée avec, en gros, 2 colonnes : une colonne contenant l’identifiant de ta première table et une colonne contenant l’identifiant de ta deuxième table. C’est tout. C’est comme ça que tu peux avoir 1 enregistrement de ta table 1 liées à plusieurs enregistrements de ta table 2.

    Et comme indiqué aussi précédemment par DavidZed, une solution plus commode consiste à créer toi-même ta propre table N:N. Ca veut dire :

    • supprimer la relation N:N que tu as créée (la “Prestations <-> Utilisateur“)

    • créer une table Prestations_Utilisateur avec 2 colonnes :

      • une colonne de lookup vers ta table Prestations

      • une colonne de lookup vers la table Utilisateur

    Et si tu veux avoir une combo box à valeurs multiples dans ton formulaire pour gérer ces relations Prestations – Utilisateurs, il va falloir tout gérer à la main :

    • créer une datacard personnalisée

    • y ajouter une combo box

    • alimenter la combox box à partir de la table Prestations_Utilisateurs à laquelle il te faudra ajouter une colonne avec un AddColumns() pour avoir à disposition le libellé des prestations pour l’utilisateur (ou des utilisateurs pour une prestation, selon ce que tu veux)

    • gérer là mise à jour des données dans le OnSuccess() du formulaire (perso, je ferais carrément un annule-et-remplace des liens en virant d’abord tous les liens existant l’utilisateur puis en recréant ceux pour les prestations sélectionnés dans la combo box)

    Comme tu peux le voir, le N:N dans le Dataverse c’est un peu l’enfer… 😅

    Est-ce que ça t’aide ? Est-ce que tu vois à peu près comment procéder ?

    CommentID=zKIo5vlSqgr1QWl, PostID=z324iIg1fpvSr5r

  • R3dKap

    Membre
    9 février 2023 à 9h11 en réponse à: Collection dataverse

    ChezWam c’est comme on dit “by-design”… 😅

    C’est marrant, avant-hier au aMS Sophia Antipolis, Rémi Delarboulas (qui a travaillé avec l’équipe PowerCAT de Microsoft), lors de sa session, a justement expliqué qu’actuellement Power Apps n’est pas capable d’identifier les colonnes utilisées par l’application lorsque l’on fait un ClearCollect(colMaCollection; MaTableDataverse) si l’option Sélection de colonne explicite est activée. Le ClearCollect() n’alimente que la colonne principale ainsi que la colonne qui contient le GUID des enregistrements de la table.

    Il faut donc utiliser l’astuce d’Alexandre Perret ou encore spécifier clairement les colonnes à rapatrier :

    ClearCollect(n    colMaCollection;n    ShowColumns(n        MaTableDataverse;n        "MaColonne1";n        "MaColonne2";n        "MaColonne3";n        ...n    )n)

    Inconvénient : du coup les noms des colonnes dans ta collection seront les noms techniques et non plus les libellés d’affichage.

    Du coup, c’est la solution d’Alexandre Perret qui est la plus pratique car les noms des colonnes sont bien les libellés d’affichage.

    Et surtout, ne pas désactiver l’option Sélection de colonne explicite au risque de voir les perfs de son application chuter drastiquement… 😉

    CommentID=EVhw9nbVZ01B4nF, PostID=k6g7xoF01YEzi9Y

  • Ah si tu n’as que Id et Value sur ta cbx_Departement c’est qu’elle est alimentée avec un Choices() sur ta colonne Département d’une de tes listes. Du coup, effectivement comme ça c’est bon…

    Pour ton problème de délégation, très simple : je doute que tu aies plus de 2000 centres de coûts (500 j’ai vu). Donc, monte le nombre max de ton app dans les paramètres à 2000 puis charge ta table Centre de coût dans une collection et fait ton IN sur la collection. T’auras plus de souci de délégation.

    D’ailleurs, vu que ta table des départements ne dépasse pas les 50, tu peux aussi la charger en collection et ne bosser qu’avec la collection. Tous les appels à la source de données que tu peux éviter, c’est de la consommation de ressources en moins… 😉

    CommentID=3DxW470TXWT0mFa, PostID=I8KHeSTnogKHPNh

  • Robin Navarro comme tu le sais probablement, l’opérateur IN ne fonctionne que sur des tables à une seule colonne. Puisque tu as sûrement branché directement ta liste Départements sur ta cbx_Departement, la propriété SelectedItems récupère toutes les colonnes pourries de SharePoint en plus de la Title.

    Il faut qu’à droite du IN tu fasses un ShowColumns() pour ne garder que la colonne Title du cbx_Departement.SelectedItems

    Je pense que ça vient de là…

    CommentID=ByblqpxM9Oq7gWS, PostID=I8KHeSTnogKHPNh

  • Philippe CULOT essaie avec Lower(scEmailUser) = Lower(gloUser.Email).

    Les quotes simples ne sont nécessaires pour les noms des champs que s’il y a des espaces ou des quotes dans les noms des champs. Donc ici, comme tu utilises le nom technique, pas besoin. Et si tu fais un Lower() d’un côté, faut le faire de l’autre côté aussi (sauf si tu es certains que tout est déjà en minuscule). Sinon il suffira d’une majuscule quelque part pour qu’il ne te ramène rien.

    CommentID=cycZDPVMkRIJgz2, PostID=B506ZExFZguurO4

  • R3dKap

    Membre
    17 janvier 2023 à 15h03 en réponse à: Version préliminaire de pva

    sabrina je suis pas sûr de comprendre ta question. Qu’appelles-tu la “version préliminaire” de PVA ?

    Parce-que Power Virtual Agents est Generally Available (en production) depuis décembre 2019 😉 :

    CommentID=sYVfM1dqeS1R7m6, PostID=LOefnpW1VowUtq7

  • R3dKap

    Membre
    17 janvier 2023 à 9h23 en réponse à: Accès aux contacts d'un dossier public

    Fred Deligne effectivement pas possible à l’aide du connecteur depuis Power Apps.

    Mais as-tu essayé à partir de Power Automate ?

    CommentID=5do0LmtRw7CCOmg, PostID=HcXS8oYBGmhDxIT

  • R3dKap

    Membre
    17 janvier 2023 à 9h05 en réponse à: Cas d'usage Power Virtual Agents

    Salut Didier ALTIDE,

    Ne rate pas le prochain French Power Break, y’a une session dédiée à Power Virtual Agent ! 😉

    Je posterais une annonce dans l’espace Evénements d’ici quelques jours…

    CommentID=vVokXNKHwBtycNE, PostID=3f7p0qlJ3hdnoNj

Page 38 sur 80