Ajout de pièces jointes sans forms

Étiquetté : 

  • Ajout de pièces jointes sans forms

    Posté par Matthias sur 27 octobre 2022 à 15h41

    Bonjour à tous,

    Dans un souci de fonctionnement ( fonctions que je n’ai pas dans le forms basique), j’ai fait un “formulaire” à la main avec des choices, des zones de saisies, etc.. et un flux qui ajoute mes entrées dans un nouvel enregistrement d’une liste Sharepoint.

    J’ai besoin d’ajouter des pièces jointes à cet enregistrement (principalement des photos) depuis cette page de saisie & le flux qui va avec. J’ai testé des trucs un peut à tatons ( voir captures ci-dessous) mais je n’arrive pas à l’incorporer.

    et 2emement ( plus un détail), pour le nom du fichier je voudrais qu’ils soient différents pour chaque pj

    PostID=2GA2x9zyzcMfQzE

    DavidZed a répondu Il y a 1 année 1 Membre · 3 Réponses
  • 3 Réponses
  • DavidZed

    Membre
    27 octobre 2022 à 18h21

    Hello Matthias ,

    En premier lieu, ce qui m’interpelle dans ton flux, c’est que l’action ajouter une pièce jointe est parallèle à ‘create item’

    Cela risque de poser problème car si ton flux est censé créer un nouvel item, il faut que ton ajout de pièce jointe soit consécutif au create item car tu ne peut pas connaître l’id d’un item qui n’existe pas encore.

    Autre soucis, la “colonne” ‘Attachment’ est du type table, ce qui est logique car tu peux avoir plusieurs pièces jointes pour un seul item. Si ta fonctionnalité prévoie de faire passer un seul fichier, alors ok, par contre si tu comptais en passer plusieurs, il y aura un traitement de données à ajouter avant l’action “ajouter une pièce jointe” et obligatoirement ton ‘add attachment’ dans un ‘For Each’

    Faire ton form en passant toutes tes données vers un power automate ne me paraît pas une solution des plus simples. Je suis curieux de savoir quelles fonctions tu ne parviens pas à mettre dans un Form basique.

    Pour ce qui est d’ajouter/ modifier des enregistrements dans une source de données, l’idéal est d’utiliser la fonction Patch() plutôt que d’envoyer les infos à un power automate. L’ennui c’est que le Patch() ne permet pas d’ajouter des pièces jointes. Par contre la bonne nouvelle, c’est que tu peux compléter l’envoi d’un SubmitForm() par un Patch() de plusieurs manières.

    La plus simple :

    1. Tu ajoutes un Edit Form qui pointe vers ta liste et tu n’y mets que le champ ‘attachments’ ou’pièces jointes’.

    2. Tu ajoutes un bouton “Envoyer” avec dans le onselect: SubmitForm(Form1)

    3. Dans ton formulaire, sur le “onsuccess”, tu mets ton patch :

    Patch(n'Ta source de données';nSelf.LastSubmit;n{n'Nom du champ 1':'Ton controle 1'.Selected.Value;n'Nom du champ 2':'Ton controle 2'.Selected.Value;n'Nom du champ 3':'Ton controle 3'.Selected.Value;n[Etc...]n}n)

    Ce qui veut dire : “Dans ma source de données, mets à jour l’enregistrement correspondant au dernier envoi du formulaire Form1 avec les données suivantes, Champ 1 : La valeur du controle 1 etc…”

    Et là tu n’as pas besoin de flux power automate, ce qui est quand même mieux en terme de réactivité

    CommentID=nTnbYsD8C4bejoC, PostID=2GA2x9zyzcMfQzE

  • Matthias

    Membre
    27 octobre 2022 à 18h39

    Bonsoir David,

    Je prends note et comprends le raisonnement, effectivement l’ajout de la pièce jointe doit être consécutif.

    Mon souci de non utilisation des edits forms est simple et je n’ai pas trouver de réponses à mon problème. Dans cette même application, j’ai déjà un editForm et, pour je ne sais quelle raison, le deuxieme et les suivants que je vais créer ne fonctionneront pas quelque soit la liste utilisée. J’ai testé en créant de nouvelles appli vierge et j’ai systématiquement le problème.

    A part si je peux résoudre ce problème, je ne vois pas de méthode hormis les flux pour ajouter des données.

    CommentID=eHccGwu82korqtu, PostID=2GA2x9zyzcMfQzE

  • DavidZed

    Membre
    28 octobre 2022 à 7h38

    Point à vérifier :

    Si ton formulaire est en mode edtit, il faut imperativement qu’un item soit renseigné (un gallery.selected ou un item stocké dans une variable) sinon il n’affichera pas les champs

    ou alors il faut mettre ton formulaire en mode new (en valeur par défaut ou via un NewForm(Form1))

    CommentID=zvUJgN9uA7Ae5AX, PostID=2GA2x9zyzcMfQzE

Connectez-vous pour répondre.