Dataverse relation table et formulaires power apps

Étiquetté : , ,

  • Dataverse relation table et formulaires power apps

    Posté par Patrice sur 27 février 2023 à 16h29

    Bonjour à tous,

    toujours dans ma période de formation à Powerapps, j’ai décidé de tester un peu Dataverse. Pour ce faire, je voudrais réaliser une apps de note de frais (cela parait pas trop compliqué à priori) où lL’utilisateur commence par créer la base de la Note de Frais (avec les informations communes : NomNDF, RefNDF,DateNDF, StatutNDF, Montant Total) avant de pouvoir ajouter les dépenses associées à cette NDF (Par Exemple je crée ma NDF mensuelle dans laquelle je liste toutes les dépenses du mois).

    Je suis donc parti avec 2 tables. Une table NDF contenant les champs commun et une table (NDFdétails) contenant les différentes dépenses. J’ai ajouté une relation one to many entre la table NDF et NDFDétails (la colonne de recherche s’appelant NDFItem).

    Ensuite j’ai crée un écran Powerapps avec une galerie qui liste les notes de frais de la table NDF (no problemo). Classiquement, un clic sur un des enregistrements de la galerie redirige vers un écran de visualisation de cette note de frais. La première partie de l’écran est un formulaire pour la partie commune (datasource = NDF) alors que le seconde liste les dépenses (items) associées à cette note de frais. J’ai fait cela avec une galerie. Là encore no problemo.

    Toutefois lorsque je veux ajouter une dépense (item) depuis cette page, cela ne fonctionne pas. J’ai ajouté une icône Ajouter avec le code suivant sur Onselect : EditForm(ef_AddItem);;Navigate(scr_AddItem;Fade)

    Mais cela montre une page vide. Et je n’arrive à voir où est le problème. Ou alors ma logique est complètement foireuse … 😉

    Si vous avez une idée, n’hésitez pas. Merci

    PostID=AnfuLI5T2x74sRI

    DavidZed a répondu Il y a 11 mois, 4 semaines 1 Membre · 24 Réponses
  • 24 Réponses
  • Patrice

    Membre
    27 février 2023 à 16h34

    Petite précision. Le formulaire de création de dépense est vide si il n’y a aucune entrée dans la galerie. En revanche si il existe déjà des éléments (comme dans la copie d’écran de mon précédent post) cela fonctionne

    CommentID=XAGDk32CliVZKqw, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      27 février 2023 à 16h37

      Si il y a des éléments cela fonctionne mais la table n’est pas mise à jour. Donc no good. Ma logique ne doit pas être au point.

      SubCommentID=5NcuVpL348JXp3T, CommentID=XAGDk32CliVZKqw, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      27 février 2023 à 16h40

      Désolé, j’ai cliqué trop vite. La mise à jour de la table ne fonctionne pas car j’ai ce msg d’erreur

      Et cela correspond à un champ de la table parent. donc c’est pour cela que je disais que ma logique et ma compréhension de srelations entre table était foireuse :)😀

      SubCommentID=BH6BQH8JxNztQ30, CommentID=XAGDk32CliVZKqw, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      27 février 2023 à 17h27

      Avec la bonne valeur dans NDFItem, cela fonctionne bien lieux. Au lieu de chercher la référence(NDF-000), j’ai utilisé cela à la place :

      Choices([@NDFdétails].cr2d6_NDFItem) (qui fait référence à la clé primaire de la table NDF)

      Le problème, c’est que cela oblige l’utilisateur à choisir avec un risque d’erreur. Est-il possible de faire autrement ?

      SubCommentID=VKtn1qKGQaaIjCs, CommentID=XAGDk32CliVZKqw, PostID=AnfuLI5T2x74sRI

  • DavidZed

    Membre
    27 février 2023 à 19h38

    Bonjour Patrice ,

    Dans ce genre de situation, je m’aide généralement de variables de contexte qui s’y prêtent particulièrement bien car on peut les intégrer dans la fonction Navigate()

    Admettons que ton app soit répartie en 3 écrans :

    • Un écran “Sc_NDF” avec une galerie ‘GalerieNDF’ affichant les notes de frais :

    • Un écran mixte “Sc_NDF_Details” (celui dont tu as mis le screenshot) avec le formulaire de note de frais ‘FormNDF’ et une galerie avec les dépenses de la note de frais ‘GalerieDépenses’

    • et enfin, un écran “Sc_NDF_Dépense” avec le formulaire de dépense ‘FormDépenses’

    L’écran Sc_NDF :

    • un bouton “+” pour naviguer vers l’écran Sc_NDF_Details en mode new : NewForm(FormNDF);;Navigate(Sc_NDF_Details; Fade)

    • Dans la galerieNDF, un bouton “>” pour éditer l’item actuel, en le passant en tant que variable : EditForm(FormNDF);;Navigate(Sc_NDF_Details; Fade;{vctxNDF:ThisItem})

    L’écran Sc_NDF_Details :

    • Dans le formulaire FormNDF, on utilise la variable dans le paramètre “.item” : vctxNDF

    • Dans la GalerieDépense, pour la source de données, on filtre les dépenses pour ne faire apparaître que celles qui sont associées à la NDF dans notre variable :
      Filter('NDF Détails', NDFItem.NDF = vctxNDF.NDF)
      (Où .NDF est le GUID de ta table NDF, le nom de ce champ est attribué automatiquement à la création de la table et a le nom de celle-ci, dans sa forme au singulier)
      Toujours dans la galerie, on ajoute un bouton “>” pour naviguer vers le dernier écran, en passant la dépense sélectionnée en variable, on passe également la variable de la NDF actuelle pour l’avoir en valeur par défaut :
      EditForm(FormDépenses);;Navigate(Sc_NDF_Dépenses; Fade;{vctxDépense:ThisItem;vctxNDF:vctxNDF})

    • Entre le formulaire et la gallerie, pour le OnSelect du bouton “+”, on passe simplement la variable vctxNDF pour avoir la valeur par défaut :
      NewForm(FormDépenses);;Navigate(Sc_NDF_Dépenses; Fade;{vctxNDF:vctxNDF})

    L’écran Sc_NDF_Dépense

    • Ici dans le .item du formulaire, on met la variable correspondant à la dépense sélectionnée : vctxDépense

    • Ensuite dans la Datacard NDF Item > DataCardValueX, dans le defaultSelectedItems, on met notre NDF sélectionnée : vctxNDF
      Si ça coince ou donne une erreur : Filter(Choices([@NDFdétails].cr2d6_NDFItem), NDF = vctxNDF.NDF)

    CommentID=sR8QaE5j9XD2cWX, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      28 février 2023 à 11h07

      Hello David,

      merci pour ton retour. Je voudrais préciser que dans mon écran sc_NDF_Details (l’écran que j’avais mis en screenshot), il me suffit d’indiquer gal_ListeNDF.Selected.NDFdétails dans Items de ma galerie de dépenses pour ne voir que les dépenses associées à la NDF. Pas besoin de filter() . J’ai trouvé cela dans l’article ci-dessous.

      Par contre, je vais essayer l’utilisation d’une variable (celle que tu appelles vctxNDF) avec la fonction Filter(Choices([@NDFdétails].cr2d6_NDFItem), NDF = vctxNDF.NDF)

      SubCommentID=rILe4wLXxxM3WiH, CommentID=sR8QaE5j9XD2cWX, PostID=AnfuLI5T2x74sRI

  • R3dKap

    Membre
    27 février 2023 à 19h59

    Patrice voici la logique habituelle à appliquer dans ton cas :

    1. Tu vas utiliser le même formulaire ef_AddItem pour créer ou modifier une dépense (du coup, perso, je le renommerai en ef_Dépense)

    2. Sur ton écran de visu d’une NDF

      1. Dans le OnSelect de l’icône ‘+’ qui te permet de créer une dépense tu mets ceci : NewForm(ef_AddItem);; Navigate(scr_AddItem; ScreenTransition.Fade)

      2. Dans le OnSelect de la galerie des dépenses : EditForm(ef_AddItem);; Navigate(scr_AddItem; ScreenTransition.Fade; {locSelectedDépense: ThisItem}) (ainsi tu transmets à l’écran cible la dépense sur laquelle tu as cliqué)

    3. Sur l’écran scr_AddItem (que j’appellerai du coup scr_Dépense) :

      1. Dans le Item de ef_AddItem tu mets ceci : locSelectedDépense

      2. Sur le DefaultSelectedItems de ta liste déroulante NDFItem tu mets juste : DataCardValue12.Selected

      3. Effectivement, sur le Items de ta liste déroulante NDFItem, tu dois laisser ce qui était là à l’origine par défaut, à savoir : Choices([@NDFdétails].cr2d6_NDFItem)

      4. Tu masques le datacard de ta liste déroulante NDFItem puisque l’utilisateur n’a pas à y toucher

    C’est le minimum pour faire fonctionner ces 2 écrans… Est-ce que tu vois la logique ?

    Ah… Je vois que DavidZed a aussi répondu le temps que je finisse mon post… 😅 Bon, je l’envoie quand-même mais tu verras que c’est la même idée… 😁

    CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      28 février 2023 à 9h48

      Je viens de faire les modifs avec l’utilisation de locSelectedDépense mais cela ne fait rien.

      Si j’édite une dépense le champs NDFItem n’est pas rempli automatiquement. Et si je veux créer une nouvelle dépense j’ai un message d’erreur “enregistrement spécifié introuvable”. Ce qui me parait cohérent puisque dans ce cas il n’y a pas de locSelectedDépense

      SubCommentID=7DgFj4V15qaOlEi, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • R3dKap

      Membre
      28 février 2023 à 14h07

      Patrice le problème vient probablement de la fonction Patch(). Tu ne devrais pas avoir besoin d’utiliser cette fonction puisque tu utilises un formulaire d’édition Power Apps (sauf si y’a un truc que je sais pas, du genre tu as besoin de mettre à jour une autre liste que celle des dépenses) : donc, un simple SubmitForm() sur ton bouton d’enregistrement de la dépense devrait suffire…

      La fonction Patch() est un peu plus touchy à utiliser…

      C’est normal qu’il n’y ait rien dans locSelectedDemande dans le cas de la création d’une nouvelle dépense puisqu’il s’agit justement de créer une nouvelle dépense et qu’elle n’existe pas encore. En fait, lorsque tu fais un NewForm() sur un formulaire, celui-ci ignore totalement le contenu de sa propriété Item. Il vide tous les champs et se met prêt à recevoir les saisies de l’utilisateur pour qu’à l’enregistrement il crée une nouvelle ligne dans la source de données.

      Tiens, je pense à un truc : faire un EditForm() et un NewForm() à partir d’un écran A vers un écran B où se trouve le formulaire n’est pas une bonne pratique. Normalement, à aucun moment un écran ne doit faire référence à des éléments se trouvant sur un autre écran que lui-même.
      La bonne pratique est donc la suivante :

      • Dans le OnSelect de l’icône ‘+’ qui te permet de créer une dépense tu mets ceci : Navigate(scr_AddItem; ScreenTransition.Fade; {locFormMode: FormMode.New})

      • Dans le OnSelect de la galerie des dépenses : Navigate(scr_AddItem; ScreenTransition.Fade; {locSelectedDépense: ThisItem; locFormMode: FormMode.Edit})

      • Et sur la propriété DefaultMode de ton formulaire ef_AddItem : locFormMode

      SubCommentID=tuxpqqL4AZjrvba, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      28 février 2023 à 14h33

      Euh je n’utilise pas la fonction Patch() mais bien un SubmitForm(). Ce problème est apparu avec l’ajout de la variable locSelectedDépense. Variable que je n’utilise plus d’ailleurs. A la place de EditForm(ef_AddItem);; Navigate(scr_AddItem; ScreenTransition.Fade; {locSelectedDépense: ThisItem})

      j’utilise simplement EditForm(ef_AddItem);;Navigate(scr_AddItem;ScreenTransition.Fade) et cela fonctionne parfaitement. Du coup je pense que je n’ai pas besoin de la variable locSelectedDépense

      En fait mon problème est d’associer automatiquement la nouvelle dépense à la note de frais (manuellement c’est bon mais comme je le disais avec un risque pour l’utilisateur de se tromper dans la liste déroulante). C’est pour cela que j’ai ajouté le champ NDFItem (le nom est pas top en l’occurrence je le reconnais) dans l’écran d’ajout de dépenses. Ce champ NDFItem correspond à la clé primaire de la table NDF et c’est lui qui fait le lien entre la note de frais et la dépense (ou les dépenses). Mais je ne trouve pas la solution. J’ai essayé l’utilisation de variable pour mettre dans DefaultSelectedItem mais cela ne marche pas non plus.

      Sinon, je note bien ta remarque sur la bonne pratique concernant l’utilisation de EditForm() et NewForm(). J’imagine que c’est pour des raisons pratiques. C’est plus logique et potentiellement avec moins de risque d’erreur ou bien est-ce pour une autre raison ?

      SubCommentID=64wSywMWBtTftej, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      28 février 2023 à 15h09

      Nouvel essai. Je passe la variable varNDF avec le nom de la NDF à l’écran d’ajout de dépenses NewForm(ef_AddItem);;Navigate(scr_AddItem;ScreenTransition.Fade; {varNDF:DataCardValue21})

      Ensuite je mets cette variable dans DefaultSelectedItem du champ NDFItem (le nom est toujours mauvais 😉 ) et ça marche … presque. J’ai le bon intitulé mais apparemment cela ne plait pas à PowerApps.

      Je cherche … je cherche 🤪

      SubCommentID=jvIFD7tzBSHxd6L, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • R3dKap

      Membre
      28 février 2023 à 15h29

      Pardon : grosse confusion de ma part dès le départ (je vais corriger mon post)… En effet, ton champ NDFItem doit pointer vers la note de frais et non vers la dépense. Donc tu as raison : si ta note de frais est dans ton DataCardValue12 alors c’est bien celui-là que tu dois mettre dans le DefaultSelectedItems du champ NDFItem.

      Sauf qu’en fait il faut que tu y mettes : DataCardValue12.Selected qui représente vraiment l’enregistrement de ta note de frais (et ton erreur devrait disparaître). DataCardValue12 est un contrôle Power Apps (avec toutes ses propriétés), ce n’est pas un enregistrement de ta table de note de frais. C’est bien la propriété Selected qui le porte… 😉 Tu y étais presque…

      Pour revenir sur l’histoire du locSelectedDépense, oui tu en as besoin si ton formulaire d’édition de dépense te sert à la fois à créer une nouvelle dépense ET à modifier une dépense existante. Car il faut que tu fournisses à ton formulaire dans la propriété Item la dépense sur laquelle tu as cliqué précédemment. Tu me suis ?

      Si tu veux on peut se faire un partage d’écran tout à l’heure à 17h30… Dis-moi si ça te tente et je t’envoie mon mail en message privé…

      SubCommentID=eXhSGpw6YTtLwVf, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • R3dKap

      Membre
      28 février 2023 à 15h32

      Argh… Je me fais avoir à propre jeu : pas génial de mettre DataCardValue12.Selected dans le DefaultSelectedItems de NDFItem puisque ton DataCardValue12 est sur un autre écran… 😋 Il faut aussi passer par une variable lors de la navigation.

      Donc :

      • Dans le OnSelect de l’icône ‘+’ qui te permet de créer une dépense tu mets ceci : Navigate(scr_AddItem; ScreenTransition.Fade; {locFormMode: FormMode.New; locSelectedNDF: DataCardValue12.Selected})

      • Dans le OnSelect de la galerie des dépenses : Navigate(scr_AddItem; ScreenTransition.Fade; {locSelectedDépense: ThisItem; locFormMode: FormMode.Edit; locSelectedNDF: DataCardValue12.Selected})

      • Sur le DefaultSelectedItems de ta liste déroulante NDFItem tu mets juste : locSelectedNDF

      SubCommentID=ZwWOTjuasdRUUBo, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      1 mars 2023 à 13h08

      R3dKap Vraiment désolé, je n’avais pas vu tes derniers messages et ta proposition de partage d’écran que j’aurai volontiers acceptée (d’habitude je reçois un mail et j’ai au moins un avertissement dans l’écran de ppfr.fr) . Enfin entre temps j’ai finalement trouvé ma solution.

      Ce n’est peut être pas orthodoxe mais j’ai mis la valeur de DataCardValue21.Text (soit le nom de ma note de frais qui est aussi la clé primaire de ma table NDF) dans une étiquette de texte. Et ensuite j’ai mis cette étiquette [lbl_NomNDFEnCours.Text] dans le DefaultSelectedItems de ma liste déroulante NDFItem de l’écran de création des dépenses et le tour est joué.

      Bon maintenant, je vais essayer de refaire cette app, mais avec des listes SharePoint, car si je comprends bien pour pouvoir utiliser une app powerapps utilisant DataVerse, il faut payer une licence supplémentaire. Ils sont pas fous chez Microsoft 🤑

      En tous cas merci pour ton aide.

      SubCommentID=jRqaLd6svGV48UV, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      1 mars 2023 à 16h19

      J’ai crié victoire un peu tôt. Ma solution a fonctionné tant que je n’avais pas créé de nouvelle note de frais. Ensuite je me suis retrouvé avec le message d’erreur habituel (La valeur doit être un enregistrement d’entité de données) pour le champ NDFItem de l’écran de création de dépense.

      Du coup j’ai essayé ta solution, mais cela ne fonctionne pas non plus (j’ai du changer DataCardValue21.Selected par DataCardValue21.Txt sinon j’avais une erreur dans la formule). Mais ensuite la variable n’est pas acceptée dans DefaultSelectedItems . Il accepte seulement si je mets la variable entre [] Là il trouve bien la bonne valeur mais le format ne lui plait pas et j’ai le message d’erreur (La valeur doit être un enregistrement d’entité de données)

      Même chose si je crée une variable globale

      En fait il est impossible de mettre une variable dans DefaultSelectedItems. En tous cas je n’ai pas trouvé la bonne syntaxe. C’est dingue cette histoire ou c’est moi qui suis vraiment nul 🤪

      SubCommentID=yNgmmG2U95j5ZVp, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • DavidZed

      Membre
      1 mars 2023 à 18h08

      Hello,

      Tu peux essayer ceci :

      Remettre Parent.Default dans le DefaultSelectedItems

      Et dans le .Default du DataCard parent, si ton champ est mono valué, tu mets ta variable, sinon Table(‘Ta variable’)

      SubCommentID=mEAczRYyOm7CfaK, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      1 mars 2023 à 19h06

      Merci DavidZed mais … ou bien je n’ai pas compris ou alors cela ne fonctionne pas. Si je passe ma variable dans l’icône d’ajour de dépense NewForm(ef_Dépense);;Navigate(sc_NDF_Dépense;ScreenTransition.Fade;{locSelectedNDF: DataCardValue1.Text}) , Power apps refuse de la récupérer dans Default de la DataCard du nouveau formulaire (ef_dépense). Idem si j’essaie avec une variable globale. (Et pourtant j’ai réécrit complétement l’app en testant ton code qui fonctionne très bien par ailleurs. Et qui n’est pas très loin de ce que j’avais fait initialement)

      A moins que je ne fasse pas la bonne manip 🙃

      SubCommentID=9U155vj2vmmJeT8, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • R3dKap

      Membre
      2 mars 2023 à 17h37

      Patrice j’ai pensé à un truc cette nuit… 😅

      En fait tu peux avoir exactement cette erreur si sur la galerie qui liste toutes les NDF de ton utilisateur sur ton écran d’accueil (celui que DavidZed appelle le Sc_NDF) tu ajoutes une colonne avec un AddColumns() à ta source de données qui alimente ta galerie.

      Dans ce cas, la NDF sélectionnée par l’utilisateur et transmise d’un écran à l’autre pour arriver finalement dans le DefaultSelectedItems de NDFItem via la variable vctxNDF n’est pas au bon format car tu as dedans une colonne de plus que dans ta table DV !!! Et ça te sortira justement cette erreur…

      Je sais pas si tu m’as suivi… Est-ce que c’est ton cas ? Est-ce que sur le Items de la galerie de ton écran qui liste les NDF tu utilises la fonction AddColumns() ?

      SubCommentID=VN8ff1GhM4vwoEu, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      3 mars 2023 à 10h21

      R3dKap il ne faut pas que mes errements “powerappesques” t’empêche de dormir, j’aurai mauvaise conscience 😇 D’autant que comme je le supposais, tout mon problème est venu du fait qu’à la place d’utiliser une variable contenant l’enregistrement en cours pour placer dans le Item de mon formulaire de détail d’une NDF, j’ai utilisé gal_NDF_Selected.NDFDetails (je pensais que cela faisait la même chose, mais apparemment non. J’avais trouvé cela sympa quand j’avais lu l’article ci-dessous).

      Bref, j’ai remis les bonnes variables dans les Item des mes formulaires et tout fonctionne parfaitement. Vraiment désolé.

      La prochaine étape sera de transformer ce résultat en fichier Excel (ou csv) pour faciliter un import dans un logiciel de compta par exemple. Je sens que je vais m’amuser !

      SubCommentID=wbCKx7G5WyUnGfC, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI

  • Patrice

    Membre
    28 février 2023 à 9h10

    Merci DavidZed R3dKap Toujours aussi impressionné par votre réactivité et votre niveau de compétences sur le sujet. 👍

    A priori la solution de R3dKap me parait la plus rapide à implémenter dans mon cas. Cela dit j’essaierai aussi la solution de DavidZed avec l’utilisation de variable 😀

    CommentID=gZKd7IzUWikmlKf, PostID=AnfuLI5T2x74sRI

  • Patrice

    Membre
    2 mars 2023 à 17h27

    DavidZed R3dKap J’ai le plaisir de vous annoncer que j’ai enfin réussi à faire ce que je voulais. Et devinez quoi, la solution de David fonctionne à merveille.

    Pour être tout à fait exact, j’ai refait l’app en utilisant 2 listes SharePoint mais en gardant la même logique. La seule différence c’est que la relation entre les 2 listes se fait avec l’ID de la liste parente (NDF) et dans la liste NDF_Détails, j’ai une colonne de recherche Ref_NDF qui pointe sur l’ID de la liste NDF. Ensuite j’ai scrupuleusement suivi le code de David et tout fonctionne parfaitement.

    Je pense que le problème avec les 2 tables DataVerse venait de la manière dont j’utilisais la relation entre les 2 tables. Cela dit j’aimerai bien un jour comprendre pourquoi cela ne fonctionnait pas 😉

    En tous cas, tout cela a été fort instructif et c’est précisément l’objectif de mes tests. On apprend toujours mieux quand on rencontre des problèmes !

    Merci pour tout messieurs

    CommentID=5EiJUJTnB3I2EhK, PostID=AnfuLI5T2x74sRI

    • Patrice

      Membre
      6 mars 2023 à 10h21

      DavidZed R3dKap Encore une fois, je suis allé un peu vite dans mes tests et mon app ne fonctionnait pas correctement. Je vous passe les détails. L’important est de savoir que l’on lorsque l’on fait appel à des colonnes de recherche (Sharepoint, j’imagine que c’est pareil avec Dataverse), la valeur de la donnée est stockée avec un ID (l’id SP de l’élément dans la liste) et une Valeur (le nom de la valeur).

      Cela veut dire que lorsque l’on veut utiliser une variable pour aller changer la valeur du DefaultSelectedItem il faut utiliser la syntaxe suivante : {id:Variable.ID; Value: Variable.Nom}

      Variable.Nom fait référence au nom de la colonne de référence dans la liste enfant qui contient la colonne de recherche

      Dans mon cas cela donne cela. Et après des tests exhaustifs cela marche dans tous les cas 🧐

      SubCommentID=nqpCtQKdQLX5uqn, CommentID=5EiJUJTnB3I2EhK, PostID=AnfuLI5T2x74sRI

    • R3dKap

      Membre
      6 mars 2023 à 10h27

      Tout à fait exact Patrice.

      La structure {Id: 32; Value: "toto"} est propre à SharePoint. Au passage tu remarqueras le “I” majuscule du “Id” et le “d” minuscule -> très important car le champ “ID” SharePoint quant à lui est tout en majuscule… 😉

      Côté Dataverse, c’est un peu différent : la colonne de recherche pointe/contient la totalité de l’enregistrement cible. Tu peux donc via le champ de recherche “consulter” n’importe quelle colonne de ta table cible.

      SubCommentID=4GgalBJtbID2irs, CommentID=5EiJUJTnB3I2EhK, PostID=AnfuLI5T2x74sRI

    • DavidZed

      Membre
      6 mars 2023 à 10h32

      Oui, de manière plus générale, le paramètre DefaultSelectedItems d’un ComboBox s’adapte à la source de données qui lui est assignée :

      (simple valeur) => Un enregistrement : {ID:12, Value: “Azerty1234”}

      (multiple valeur) => Une table d’enregistrements : Table({ID:10, Value: “Toto1234”},{ID:12, Value: “Azerty1234”},{ID:12, Value: “Pinpin1234”})

      SubCommentID=Xdv5EUGR5xjAF2G, CommentID=5EiJUJTnB3I2EhK, PostID=AnfuLI5T2x74sRI

Connectez-vous pour répondre.