Répondre à: Document PDF vide

  • R3dKap

    Membre
    2 décembre 2022 à 16h29

    Estelle est-ce que tu peux nous décrire plus précisément l’architecture de ta solution ? Ce que j’ai compris jusque là :

    1. Sur un écran tu as un formulaire SharePoint où l’utilisateur fait son évaluation

    2. Une fois qu’il a terminé il clique sur un bouton SUBMIT ce qui soumet le formulaire et crée donc la ligne correspondante dans ta liste SP

    3. A la suite de quoi il arrive sur un autre écran où tu lui affiches son évaluation au format HTML (où tu utilises donc les données de l’évaluation créée précédemment)

    Questions :

    1. Est-ce que la génération du PDF est déclenchée par l’apparition de la nouvelle ligne dans la liste SP ou par le clic d’un bouton sur l’écran avec l’HTML ?

    2. Lors de la génération du PDF (si elle déclenchée par un bouton sur ton écran) est-ce que tu transmets l’HTML de l’écran au flux Power Automate ?

    Par rapport à tes questions :

    • La bonne pratique veut que l’on ne mette pas de code après un Navigate(). En effet, Power Apps n’attends pas la fin de l’exécution de ton bouton SUBMIT pour naviguer : il voit le Navigate() -> il navigue. Et du coup le code qui avait derrière s’exécute alors que tu n’es même plus sur l’écran où se trouve le bouton. Tu me suis ?

    • Autre bonne pratique : lorsque sur un écran où il y a un formulaire on veut naviguer vers un autre écran une fois que les données ont été correctement traitée, alors le Navigate() doit être placé dans l’événement OnSuccess du formulaire -> c’est lui qui garanti que tes données ont été correctement créées/mises à jour.

    Il faut voir dans sa tête l’enchaînement des événements qui vont se produire quand tu fais une action :

    1. Je clique sur SUBMIT

    2. Cela déclenche le SubmitForm() -> le système effectue l’opération sur la source de données -> on ne met pas de code non plus après un SubmitForm() puisqu’on ne sait pas encore si ça va bien se passer ou pas.

    3. Une fois que le système a réalisé l’opération sur la source de données, il y a 2 résultats possibles :

      • Ca s’est mal passé -> c’est l’événement OnFailure du formulaire qui est déclenché

        • C’est là qu’en général on affiche un message d’erreur et du coup on ne quitte pas l’écran on reste dessus pour donner une chance à l’utilisateur de retenter

      • Ca s’est bien passé -> c’est l’événement OnSuccess du formulaire qui est déclenché -> la propriété MonFormulaire.LastSubmit contient l’enregistrement complet qui vient d’être créé ou modifié

        • C’est là qu’on affiche un message de succès et qu’on navigue

        • C’est là aussi qu’on peut éventuellement faire une autre opération (avec un Patch() par ex.) sur une autre source de données qui est dépendante de la première

        • etc.

    Tu vois l’idée ?

    CommentID=2zsNgluPNgOUIJ7, PostID=7GdImoaDXz8V0Lo