Personnalisation formulaire Liste SharePoint – Évènement OnView

  • Personnalisation formulaire Liste SharePoint – Évènement OnView

    Posté par Régis sur 2 avril 2024 à 14h35

    Bonjour à toutes et tous,

    désolé si je ne suis pas dans la bonne discussion, je découvre le forum.

    Je personnalise un formulaire Sharepoint ou j’ai besoin de faire de multiple attachements. Pour présenter correctement ces multiples pièces jointes, j’ai besoin de récupérer dans une collection les pièces jointes de l’élément de la liste :

    <pre class=”language-markup”>ClearCollect(
    colFinalAttachements;
    SharePointIntegration.Selected.'Pièces jointes'
    );

    Ce code placé dans l’évènement OneView de l’objet SharePointIntégration ne ne semble pas exécuté au bon moment. Je m’explique :

    (Pour les besoin de mon test, j’ai mis dans mon formulaire une gallery branchée sur colFinalAttachement.)

    Au lancement de ma liste un premier double clic sur un élément (par exemple le 1), mon formulaire s’affiche en mode View. Mon contrôle pièces jointes et correctement peuplé avec les pièces jointes de l’élément 1, mais ma gallery est vide.

    Je ferme le formulaire, je fais un double clic sur un autre élément de ma liste (par exemple le 3), mon formulaire s’affiche toujour en mode View. Là mon cotrôle pièces jointes et toujours correctement peuplé avec les pièces jointes de l’élément 3, mais ma gallery présente les pièces jointes de l’élément 1 !!!

    Et ainsi de suite… la gallery me présente les pièces jointes de l’élément précédement cliqué.

    J’ai mis le même code dans l’évènement OnVisible du screen de mon formulaire… même chose!

    Je ne comprends pas.

    Merci pour vos lumières.

    Régis a répondu Il y a 8 mois, 3 semaines 2 Membres · 2 Réponses
  • 2 Réponses
  • DavidZed

    Membre
    3 avril 2024 à 10h04

    Bonjour,

    Je n’utilise pas trop Power Apps dans un contexte de formulaire SharePoint, mais j’ai constaté la même chose que toi et j’ai mis un peu de temps à trouver le l’explication:

    La propriété SharePointIntegration.Selected est chargée parrallèlement à l’ouverture de l’appli, l’app tournant toujours en arrière plan après lancement (quand on passe d’un enregistrement à un autre), la propriété garde la valeur de l’enregistrement précédent tant que le nouvel enregistrement sélectionné n’est pas entièrement chargé.

    Ce qui pose problème dans ton cas, car tu souhaites charger ta collection avec le nouvel élément sélectionné au moment où la sélection est faite. Dans ce cas il faut utiliser la propriété SharePointIntegration.SelectedListItemID, qui elle remonte l’ID sélectionné instantannément

    Tu peux donc remplacer ta formule par un lookup se basant sur le SelectedListItemID :

    ClearCollect(colFinalAttachements; Lookup('Nom de la liste SP' ; ID = SharePointIntegration.SelectedListItemID ; 'Pièces jointes' ))

  • Régis

    Membre
    3 avril 2024 à 11h42

    Bonjour David,

    merci d’avoir pris le temps de me répondre.

    J’ai vu cette solution sur un Forum US.

    Mais la question reste identique.

    Où dois-je mettre ce code pour qu’il s’execute au bon moment ? Dans SharePointIntegration ->OnView, cela ne fonctionne pas plus que dans le OnStart App.

    J’ai rajouté un bouton et sur l’évènement OnSelect j’ai mis mon code. Cela fonctionne, mais ce n’est pas ce que je souhiate.

    Bon de toute façon, ce n’est plus que pour comprendre la raison de ce disfonctionnement car j’ai pris le parti de faire une vraie Apps et de l’intégrer dans une équipe Teams.

    Je te souhaite une belle journée,

    Régis

    • Cette réponse a été modifiée Il y a 8 mois, 3 semaines par  Régis.

Connectez-vous pour répondre.