

Julien
MemberForum Replies Created
Salut Tony, Nelson,
Tony, concernant tes remarques :
“j’avoue que je trouve cela affolant de complexité et d’étapes pour seulement une PJ dans un form “
“J’imagine qu’on peut simplifier cela… Je trouve cela d’une complexité…”
D’après la description du problème, tu parles systématiquement de “la PJ”. Nelson a indiqué le cas général pour zéro ou plusieurs PJ, mais dans ton cas : s’il n’y a bien qu’une seule et unique PJ et qu’en + elle est obligatoire (ça c’est géré par le formulaire), alors ça permet de simplifier pas mal : plus besoin de boucle ni de variable tableau. (voir capture ci-dessous).
Pour la capture du flux final, dommage la définition de l’image n’est pas assez importante pour qu’on puisse lire les actions et voir si une refactorisation est possible (vu de loin et en plissant les yeux, je crois distinguer pas mal de copier/coller de bouts entiers. C’est peut-etre tout à fait nécessaire, peut-etre pas
)
(edit: puis tu peux supprimer le fichier après l’envoi du mail)
Bon courage pour la suite !
-
This reply was modified 6 hours, 41 minutes ago by
Julien.
-
This reply was modified 6 hours, 41 minutes ago by
2. peut-on limiter le déclenchement du flux aux cas où un autre champ que “Modified” passe à true ?
Pour l’exercice : je ne suis pas parvenu à utiliser les triggers conditions, mais après l’action Obtenir les modif, c’est faisable en une action en transformant le JSON en XML puis utiliser XPATH pour compter les noeuds textes “true” quand l’élément n’est pas “Modified”.
On peut donc faire une division par le résultat:
Si le compte est positif, l’action réussie
Si le compte est à zéro : ça fait donc une division par zéro, donc une erreur, l’action échoue.
On peut se servir de ça pour faire une branche parallèle qui traite les deux cas et terminer proprement :
Action Message Colonne(s )modifiée(s) ou quitter:
<pre class=”language-javascript”>
div(
1,
xpath(
xml(
addProperty(json('{}'),
'root',
body('Obtenir_les_modifications_pour_un_élément_ou_un_fichier_(propriétés_uniquement)')['ColumnHasChanged'])
),
'count(//*[.="true" and not(self::Modified)])'
)
)
C’est pour l’exercice, je suis peut-être passé à coté du solution toute simple, à votre écoute
Salut Geoffroy,
Pour la question :
- comment le champ “Modified” peut-il passer à true alors qu’aucun autre champ n’a subi de changement ?
Une première piste : D’après la doc (https://learn.microsoft.com/fr-fr/sharepoint/dev/business-apps/power-automate/sharepoint-connector-actions-triggers#get-changes-for-an-item-or-a-file-properties-only) :
L’action Lorsqu’un élément est créé ou modifié est déclenchée en cas de modification d’une colonne mais également une modif/ajout d’une pièce jointe etc.
Or l’action Obtenir les modifications pour un élément ou un fichier (propriétés uniquement) ne couvre que le changement des colonnes. Donc l’élément est modifié (Modified: true) mais pas les colonnes.
____
Pour la question:
2. peut-on limiter le déclenchement du flux aux cas où un autre champ que “Modified” passe à true ?
les gourous du sites auront peut-être une meilleur solution et je serai ravi d’en apprendre plus.
De mon coté je ne vois pas comment utiliser les Triggers conditions ici, je verrai un select sur le json “ColumnHasChanged” pour en faire un tableau, filtrer le tableau sur les colonnes modifiées, et s’il n’y a que la colonne Modified en sortie, tu peux stopper l’exécution du flux.
Julien
Member4 mai 2025 at 10h15 en réponse à: Récupérer les données depuis un fichier Excel déposé sur Sharepoint (+condition)Salut Tram Anh,
1) Pour poursuivre la réponse de R3dKap
Si tu lances un test du flux et que tu regardes la sortie l’action Lister les lignes présentes dans un tableau, en cherchant le champ Reception Date tu verras probablement quelque chose comme ça :
L’action ne renvoie donc pas la date au format “dd/MM/yyyy” que tu peux voir dans Excel, mais bien sa valeur telle que vraiment stockée. A ma connaissance, tu ne peux rien faire de cette valeur dans Power Automate (sans passer par de la magie). Cependant, dans l’action Lister les lignes présentes dans un tableau, il y a une option pour récupérer la date sous une autre forme qui sera exploitable :
Dans les paramètres de l’action, au niveau des Paramètres avancés, cliquer sur “Afficher tout”, puis tout en bas : DateTime format. Selectionner “ISO 8601”. (/!\ faire de même avec l’action Ajouter une ligne à un tableau)
Maintenant, l’execution donne :
Ce format est utilisable avec la fonction formatDateTime() : tu peux y appliquer le même format que utcnow() pour maintenant comparer des dates dans des formats cohérents.
2) Remarque sur la conception du flux :
Après la modif précédente, le flux devrait fonctionner, mais il est peu élégant, peu efficace (et gaspille des actions).
Voici une reformulation, je te laisse te renseigner sur l’action Filtrer un tableau et voir pourquoi il y a un gain. Si ce n’est pas clair reviens vers nous
(Il y aurait possibilité d’aller plus loin avec des techniques de vieux gourous que je ne maitrise pas mais c’est déjà très bien).Bon courage