![](https://ppfc.fr/wp-content/uploads/buddypress/groups/11/cover-image/64c383a4ee3cb-bp-cover-image.png)
![Logo du groupe SharePoint](https://ppfc.fr/wp-content/uploads/group-avatars/11/64c383b9012f7-bpfull.png)
SharePoint
Public Groupe
Public Groupe
Actif Il y a un jour
Partagez et gérez du contenu, des connaissances et des applications pour dynamiser le travail... Voir plus
Public Groupe
LISTE SharePoint
Étiquetté : Export, power apps, Power Automate, Power BI
-
LISTE SharePoint
philippe a répondu Il y a 9 mois, 1 semaine 1 Membre · 39 Réponses
-
Bonjour @R3dKap ,
Tu as mis le doigt sur le soucis .
Là, je ne les supprimes plus mais ( initialement c’est la raison pour lequel j’ai tout recommencé, car après avoir effacé les fichiers créés lors de mes test, ceux ci réapparaissait sans cesse) !
Mais je comprends à présent mieux la raison de ces fantômes, la boucle de déclenchement infini !
c’est étrange que lors de mon test de flux il ne ma pas signalé cette anomalie !
tu aurais une idée pour ” paralyser ” cette boucle ?
Merci à toi
Phil
CommentID=jFWIHHUc1HkI7Ec, PostID=P3kqhLcGFmuRQzy
-
Problème “classique” que celui des boucles infinies de ce type… J’y ai déjà été confronté par des collègues qui m’avaient remonté le souci et je ne sais plus exactement comment on avait résolu le pb…
Quoiqu’il en soit, à mon avis la meilleure approche consiste à définir une condition de déclenchement sur le trigger de ton flow :
-
Ajouter à ta liste une colonne PJFlow de type texte
-
Définir la condition de déclenchement du trigger de ton flow :
Voici le code :
@not(equals(triggerOutputs()?['body/PJFlow'],'x'))
Ensuite, dans ton flow il faut que la première actions soit la suivante :
J’explique : la condition qu’on a mise dans le déclencheur nous assure que le flow ne se déclenche que si la colonne PJFlow n’a pas la valeur ‘x‘ pour l’item concerné. Or, par défaut cette colonne sera vide.
Puis la première chose que l’on fait quand le flow s’exécute pour un item c’est justement de positionner cette colonne PJFlow à ‘x‘. Cela va avoir pour effet de tenter de déclencher une nouvelle fois le flow mais puisque la condition du trigger n’est plus remplie il ne se redéclenche pas et tu es tranquille : dans l’exécution en cours tu peux alors envoyer tes pièces jointes dans ta bibliothèque puis les supprimer de ton élément en cours, tu ne redéclencheras plus ton flow à l’infini…
Sais pas si tu m’as suivi… ☺
CommentID=4duLjyMPMBpnXdD, PostID=P3kqhLcGFmuRQzy
-
-
Hello @R3dKap ,
merci infiniment pour ton aide 👌💪
Voici j’ai apporté les modifications , j’ai juste un doute dans la compréhension, quant à l’ordre des déclencheurs .
je comprends que le premier déclencheur devrait être alors “Mettre à jour l’élément ” et le second ” Lorsque un élément est crée ou modifié’‘ c’est bien cela ?
j’ai bien tenté de déplacer le déclencheurs mais pour moi impossible de placer le ”mettre à jour” avant ”Lorsque un élément est crée ou modifié” Pourtant j’arrive à le placer ailleurs….🤔
si tu me confirmes je supprime, et le génère au bon emplacement .
Merci a toi
Phil
CommentID=QrPoL8DAFNagt4E, PostID=P3kqhLcGFmuRQzy
-
J’ai effectué un test de contrôle .
il met automatiquement X partout dans la colonne PJFlow
et le dossier est bien créer , mais la pièces jointe ne viens pas s’y positionner ..
le Flux reste en cours d’exécution.
Merci
Philippe
le Flux reste n
CommentID=cPlCZNbszZePNVu, PostID=P3kqhLcGFmuRQzy
-
@philippe je viens de tester la totalité du flux chez moi et tout fonctionne correctement.
Tout d’abord, par rapport à ton interrogation sur l’ordre des déclencheurs… Lorsqu’un élément est créé ou modifié EST un déclencheur -> c’est à dire que lorsqu’un élément de la liste est modifié ou créé le flux démarre. Bon, sauf que nous on a mis une condition en plus qui veut qu’il se déclenche uniquement si le champ PJFlow de l’élément est différent de ‘x‘.
Mettre à jour l’élément N’EST PAS un déclencheur mais une ACTION. Il ne peut y avoir qu’un seul déclencheur dans un flow -> c’est la première “boîte” tout en haut du flux.Maintenant, je pense qu’il y a un soucis sur ton action Mettre à jour l’élément où si je ne me trompe pas sur la capture il y a un ‘X‘ majuscule dans la colonne PJFlow au lieu d’un ‘x‘ minuscule. Eh oui, les caractères ‘x’ et ‘X’ ne sont pas les mêmes 😉, ils ont des codes ASCII différents. Or dans la condition du déclencheur on teste si le champ PJFlow est différent de ‘x‘ (minuscule). Donc à la première action du flux il faut mettre un ‘x‘ minuscule dans le champ PJFlow.
Ensuite, le fait qu’en lançant ton flow il mette des ‘X‘ partout est très bizarre. Comment as-tu fait ton test ?
Voici le flux que j’ai fait de mon côté :
Si tu veux des détails, n’hésite pas à demander… 😊
CommentID=unrQViJ3qH2vyy3, PostID=P3kqhLcGFmuRQzy
-
Hello @R3dKap ,
Merci beaucoup pour tes explications très précises, et encore une fois pour ta disponibilité dans cet espace . vraiment top !!
j’ai donc adapté mon X en x 😳
je m’aperçois à présent que bien que le flux m’indique des succès , MAIS désormais la création du dossier et de l’inclusion de l’attachement dans celui-ci n’est plus réalisé …
j’ai vraiment de la peine a comprendre ce qui j’ai mal exécuté pour en arriver là ??😨
je suis perdu 😂
Pour revenir sur le point du x dans la colonne de ma liste Sharepoint, ceux ci sont venu s’ajouter suite à l’introduction du code dans les paramètres du déclencheur ” lorsque un élément est créer ou …. “
Alors, je vois que tu as une action ‘‘supprimer la pièce jointe” je n’ai pas osé ajouté cette action , car j’ai peur qu’il me supprime automatiquement mes éléments de mon dossier DATA ?? Normalement sauf si mes collègues font des bêtises , je ne devrais pas procéder à des suppressions . Mais cela dit ,il serait peut être utile d’ajouter cette action au cas où😆
CommentID=2jGwt7GnSp72wjh, PostID=P3kqhLcGFmuRQzy
-
J’avais mis une opération de suppression de la pièce jointe une fois qu’elle avait été créée dans la bibliothèque parce-qu’il m’avait semblé que c’est ce que tu avais dit tout au début que tu voulais mais je me suis peut-être trompé.
Bref, y’a aucune obligation bien sûr… Surtout qu’effectivement, t’as intérêt dans ce cas à être sûr que ta PJ a bien été créée dans la bibliothèque avant de la supprimer de l’item de liste sinon tu la perds définitivement… 😬Sinon, première remarque : si pour un élément de ta liste tu as déjà un ‘x’ dans la colonne PJFlow, le flux ne se déclenchera pas si tu fais une modif sur l’élément. Pour qu’il se déclenche il faut que tu retires les ‘x’. Mais je suppose que ça tu l’avais bien compris…
Ensuite, par rapport à ma solution, au début de la boucle j’ai utiliser Obtenir le contenu du fichier plutôt que Obtenir le compte de la pièce jointe. Mais franchement je pense pas que ça joue… Le résultat est le même : on obtient le contenu de la pièce jointe. Par contre dans ton cas, attention à pas te tromper de colonne ID… 😉
Là où je creuserais peut-être un peu plus c’est sur le chemin d’accès du dossier : s’il est mal formatté ou s’il n’existe pas, peut-être que ça marche pas et que le fichier n’est pas créé.
Là en fait il faudrait que tu regardes en détail l’exécution du flux pour voir comment tout ça se déroule… Peux-tu mettre des captures ?
CommentID=h8R52cOeWfbPcAB, PostID=P3kqhLcGFmuRQzy
-
@R3dKap ,c’est exact Emmanuel , 😃 (Parfois je suis un peu lent a la détente 😆 😇 )
Penses tu possible que notre x de la colonne PJFlow ”vienne verrouiller ” uniquement en présence d’une pièce jointe ?
(Donc pour tenter de bien m’exprimer : pas de pièces jointes = pas de x , si un de mes collègues place une pièces jointes on met une condition pour qu’un x vienne se placer et verrouiller déclenchement )
SubCommentID=STW88lk9cXDVfMl, CommentID=h8R52cOeWfbPcAB, PostID=P3kqhLcGFmuRQzy
-
Bonjour Emmanuel @R3dKap ,
Encore moi 🤦♀️
En me basant sur l’idée de verrouiller à l’aide de PJFlow , je me suis orienté vers ceci . ( étant donné que le x je suis raimant pas certains que dans mon organisation , ils effectuent la manip de supprimer lors de l’ajout de leurs PJ et de créer de la confusion )Voici
Pour cette liste j’ai un deuxième flux !
ce flux déclenche si il y a présence d’une pièce jointe , et modifie le choix ” Invoces Available / Not Available ”
Ainsi
Donc ma réflexion était , si je remplace le code que nous avons placé … dans mon flux nommé Pieces jointes @not(equals(triggerOutputs()?[‘body/PJFlow’],’x’))
par un condition liée à mon autre flux , donc pièce jointe présente ou pas ?
je m’était dit que cela pourrait résoudre mon problème , mais visiblement cela ne donne pas le résultat escompté 😢
Penses tu que cela représentait une bonne piste ?
d’autre part je me demande si il n’est pas problématique de disposer de plusieurs flux sur une même liste ? .
Et enfin, si à présent je suis en mesure de visualiser à quel ligne de ma liste, chaque déclenchement est rattaché .
Je suis toujours incapable de trouver l’endroit où visualiser ce qui déclenche précisément le flux , et donc de comprendre la /les raisons pour lequel pour certaines lignes tout se passe correctement, et pour d’autre non .De même que de pouvoir comprendre pourquoi il déclenche a la suite d’un succès une /ou plusieurs fois, et forcement les suivants mènent d’office vers un échec .
Merci pour ta précieuse aide
Phil
CommentID=CJpVMbuQdP15yWk, PostID=P3kqhLcGFmuRQzy
-
@philippe j’ai parcouru en diagonale ton dernier post et du coup je me suis dit qu’avant de valider l’idée des 2 flows il faudrait qu’on prenne 2/3mn pour que je comprenne bien le cas d’usage ; parce-que la solution ne sera pas la même selon les cas…
Donc, pourrais-tu me dire précisément de quelle manière cette liste va être exploitée, et surtout dans quel ordre les opérations vont avoir lieu :
-
Le user crée l’élément dans la liste (d’ailleurs comment crée-t-il cet élément ? Directement depuis SharePoint ? Depuis une application Power Apps ? Le formulaire de la liste est-il customisé avec Power Apps ou utilise-t-il le formulaire natif ?)
-
Le user peut-il/doit-il ajouter une (ou plusieurs) pièces jointes à l’élément qu’il est en train de créer ?
-
Une fois l’élément créé, le user peut-il revenir dessus pour modifier les pièces jointes (ajout/suppression) ? Qu’a-t-il le droit de faire ?
-
Quel est le cas d’usage le plus fréquent ? Il crée l’élément sans PJ puis il les ajoute après ? Ou il met les PJ à la création et parfois, rarement, il revient dessus pour enlever/ajouter des PJ ?
-
Que doit-il se passer lorsqu’un élément de la liste (qui comporte des PJ) est supprimé ?
-
L’objectif, si j’ai bien compris, c’est sauvegarder chaque PJ dans une bibliothèque de documents. De quelle bibliothèque s’agit-il ? Sur l’une de tes captures j’ai vu que tu construisais dynamiquement le nom du dossier cible dans la bibliothèque. Peux-tu me montrer cette formule ? Comment construis-tu ce nom de dossier ?
En remontant dans tes premiers post je suis tombé sur ta première capture de ton premier post où tu avais fait :
-
Lorsqu’un élément est créé ou modifié
-
Obtenir les pièces jointes
-
Pour chaque pièce jointe :
-
Obtenir le contenu de la pièce jointe
-
Créer un fichier
-
S’il n’y avait pas d’autres opérations derrière, je ne vois pas en quoi cela générait une boucle infinie puisque tu ne remodifies pas l’élément qui a déclenché le flux… Etrange… 🤨
CommentID=WWt8f7QWyeCdBIO, PostID=P3kqhLcGFmuRQzy
-
-
Bonjour, Emmanuel @R3dKap
-
Le user crée l’élément dans la liste (d’ailleurs comment crée-t-il cet élément ? Directement depuis SharePoint ? Depuis une application Power Apps ? Le formulaire de la liste est-il customisé avec Power Apps ou utilise-t-il le formulaire natif ?)
L’utilisateur crée directement dans la liste SharePoint ,il y a également une apps que j’ai généré depuis SharePoint , j’ai juste adapté le layout , et ajouté les champs manquants .
-
Le user peut-il/doit-il ajouter une (ou plusieurs) pièces jointes à l’élément qu’il est en train de créer ?
Alors , cette liste à deux objectifs; le Premier est pour les utilisateurs de renseigner la réservation d’une somme en € et deuxièmement de venir y déposer les justificatifs y afférents . (les utilisateurs peuvent donc renseigner un montant et directement déposer les justificatifs ,) ou (simplement renseigner un montant € et revenir par la suite modifier et ajouter les justificatifs en pièces jointes ) d’où l’utilisation de INVOCES AVIALABEL ou NOT AVIALABLE
-
Une fois l’élément créé, le user peut-il revenir dessus pour modifier les pièces jointes (ajout/suppression) ? Qu’a-t-il le droit de faire ?
oui ,l’utilisateur peut revenir dans la liste et modifier le montant , et y ajouter des pièces jointes
-
Quel est le cas d’usage le plus fréquent ? Il crée l’élément sans PJ puis il les ajoute après ? Ou il met les PJ à la création et parfois, rarement, il revient dessus pour enlever/ajouter des PJ ?
En théorie la proportionnalité devait être une majorité de l’utilisateur crée l’élément et vient ensuite ajouter la PJ
-
Que doit-il se passer lorsqu’un élément de la liste (qui comporte des PJ) est supprimé ?
Normalement , on ne supprimerait aucun éléments de la liste ni de la bibliothèque, ceux ci doivent être disponible pour les audits internes
-
L’objectif, si j’ai bien compris, c’est sauvegarder chaque PJ dans une bibliothèque de documents. De quelle bibliothèque s’agit-il ? Sur l’une de tes captures j’ai vu que tu construisais dynamiquement le nom du dossier cible dans la bibliothèque. Peux-tu me montrer cette formule ? Comment construis-tu ce nom de dossier ?
C’est bien cela ,sur mon site SharePoint , j’ai du créer une bibliothèque, où sont donc stocké les pièces jointes .( car dans l’état lors de l’encodage dans la liste elles ne ont disponible que via un lien ) A chaque encodage dans la liste, un dossier est donc créer l’arborescence est lié au numéro de magasin repris dans la liste, et les pièces jointes y sont donc importé via le flux Attention que si il y a deux encodage pour le même magasin les pièces jointes du deuxième ou troisième encodage, se retrouveront donc toutes dans le même dossier portant donc le numéro de magasin .
En remontant dans tes premiers post je suis tombé sur ta première capture de ton premier post où tu avais fait :
-
Lorsqu’un élément est créé ou modifié
-
Obtenir les pièces jointes
-
Pour chaque pièce jointe :
-
Obtenir le contenu de la pièce jointe
-
Créer un fichier
-
au tout début Didier Gbenou m’avait apporter son aide, et je n’avait qu’un un seul flux, ma liste indiquait alors par défaut ” INVOCES NOT AVIABLE ” cela se modifiait automatiquement avec le flux ,en fonction de la présence d’une pièces jointes vers INVOCES AVIALBLE, et les pièces jointes était importé vers ma bibliothèque dans des dossier avec le numéros de magasins .
Seulement avant de proposer l’utilisation de ce système à mon organisation , j’ai naturellement opérer quantité de test d’encodages, afin de voir que tout se déroulait comme prévu .
Et la veille du lancement de cette affaire , j’ai effacé tous les encodages test dans la liste , et de même dans ma bibliothèque avec les folder ,et c’est là que j’ai vu que tous le attachements qui avait été introduit dans la liste pour les test ,revenait sans cesse dans ma bibliothèque en créant à chaque fois un nouveau dossier , que j’effaçai mais qui revenait aussitôt.
et a partir de là plus moyens d’encoder dans la liste sans que le choix invoce qui était par défaut, exige d’être complété or que cette option n’était pas active
c’est comme cela que j’ai du me résoudre à tout supprimer et recommencé de zéro . Liste , Flux et APPs
Mais, je ne suis jamais arrivé à comprendre pourquoi les fichiers reviennent sans cesse, et encore moins à créer cela avec un seul flux . et quand j’examine aujourd’hui le flux ( le nouveau) il effectue toujours des tentative qui sont en échec car le dosser et la pièces jointes sont déjà présente .
Merci pour ton temps Emmanuel ,
Phil
CommentID=XD7lYW0NQNsrS3a, PostID=P3kqhLcGFmuRQzy
-
-
@philippe un grand merci pour ces réponses hyper détaillées qui me permettent d’avoir une bonne vision sur ton besoin.
Il me semble que la clé de ton problème se situe dans cette phrase :
Je sens que la solution de la pièce jointe ne vous convient pas, qu’elle n’est pas idéale car consulter les pièces jointes oblige à aller sur l’élément de la liste, afficher son panel d’infos, dérouler le formulaire jusqu’en bas et (enfin) cliquer sur la pièce jointe.
Moi aussi je déteste cette expérience…
C’est la raison pour laquelle je ne mets jamais les documents en pièce jointe de mes éléments de liste. A la place, je crée une bibliothèque de documents dédiées dans laquelle j’ajoute une colonne de recherche vers ma liste. Ainsi, tout document ajouté dans la bibliothèque est “lié” à un élément de la liste.
Evidemment, cela implique que :-
Soit on customise le formulaire SharePoint pour faire en sorte que les pièces jointes ajoutées à un élément ne soient non pas stockées en tant que pièces jointes de l’élément mais plutôt stockées dans la bibliothèque et liées à l’élément en question.
-
Soit on crée une petite application Power Apps (de scratch ou générée à partir de la liste SharePoint) et on la modifie pour que, comme pour le point 1, les pièces jointes ajoutées à un élément soient plutôt stockées dans la bibliothèque.
Du coup, plus de flux qui doit gérer les pièces jointes. Les justificatifs sont tous dans la même bibliothèque et ils sont consultés en passant par l’application (on ne va jamais manuellement dans la bibliothèque via SharePoint -> pas très pratique).
Par contre, faudra juste un flux pour que les documents ajoutés à l’élément via l’application soient bien enregistrés dans la bibliothèque plutôt que en pièce jointe de l’élément.
Est-ce que tu me suis ?
Maintenant si tu veux rester sur la solution actuelle, étant donné que les pièces jointes peuvent être (et sont souvent) ajoutées APRES la création de l’élément, la solution que l’on a mise en place n’est pas adaptée.
Mais j’en reviens à la question initiale : comment se fait-il que le simple fait de lire une pièce jointe d’un élément modifie l’élément lui-même ? Puisqu’il faut bien que l’élément soit REmodifié à l’intérieur du flux pour qu’il déclenche cette boucle infinie…
Je vais faire 2 ou 3 tests là-dessus et je reviens vers toi…CommentID=wu11L7gurwZl8Nf, PostID=P3kqhLcGFmuRQzy
-
-
Ah et pour ce qui est de l’erreur que tu as régulièrement, sauf erreur de ma part, c’est parce-que l’action de création du dossier déclenche une erreur si le dossier existe déjà. Donc c’est à toi de modifier la Condition d’exécution après pour l’action qui suit afin que le flux poursuive son exécution même s’il y a une erreur à la création du dossier :
CommentID=Fg5MUOyzsUVFqD6, PostID=P3kqhLcGFmuRQzy
-
Petite correction sur ma réponse d’avant : il faudra quand même un dossier par élément pour éviter les doublons de noms de fichiers…
CommentID=vKkcBVuHUK2tNqU, PostID=P3kqhLcGFmuRQzy
-
Et donc je viens de faire un flux tout simple qui se déclenche à la modification d’un élément de liste : il récupère les pièces jointes et les enregistrent dans la bibliothèque de documents par défaut -> AUCUNE BOUCLE INFINIE.
Ca marche très bien. Donc il doit y avoir autre chose de ton côté qui provoque le pb. On peut peut-être se faire une p’tite visio Teams vendredi dans l’après-midi si tu veux…
CommentID=1ZWNfAvItGFAtGr, PostID=P3kqhLcGFmuRQzy
Connectez-vous pour répondre.