Charger un fichier avec Power Automate

Dans cet article, vous apprendrez à charger un fichier avec Power Automate dans une bibliothèque SharePoint ou un dossier SharePoint.

Suite à un changement dans le connecteur, consultez de préférence l’article sur le nouveau connecteur Power Apps (V2)

Gardez à l’esprit que l’interface a pu évoluer fortement depuis que cet article a été rédigé.

Créer une bibliothéque

Bien évidemment, vous pouvez travailler avec une bibliothèque existante.

Par précaution, vous allez créer une nouvelle bibliothèque SharePoint. Une fois que tout fonctionnera, il sera facile de changer de bibliothèque.

Dans notre scénario, il s’agit d’une bibliothèque créée à partir du modèle Bibliothèque de documents SharePoint. Elle se nomme Travaux.

Afin d’épicer un peu les manipulations, une colonne supplémentaire est ajoutée dans la bibliothèque. Cette nouvelle colonne est de type Une ligne de texte et elle se comme Commentaire.

SharePoint Bibliothèque avec colonne Commentaire
SharePoint Bibliothèque avec colonne Commentaire

Créer un flux de travail à partir de Power Apps

Vous allez créer ce flux à partir de Power Apps.

En effet, Power Apps va transmettre des paramètres au flux de travail. Il est donc plus naturel de le faire à partir de Power Apps et non pas Power Automate.

Ouvrez votre application Power Apps en modification. Dans notre scénario, l’application se nomme canFichiers.

Cliquez sur le bouton pour le sélectionner.

Allez dans le ruban Action puis cliquez sur le menu Power Automate. : le volet Données s’affiche.

Dans le volet Données, cliquez sur Créer un flux : le site web Power Automate s’ouvre avec l’affichage des modèles qui utilisent Power Apps.

Dans la liste des modèles, cliquez sur le modèle de type immédiat qui s’intitule Bouton PowerApps de Microsoft : le début du flux est généré.

Variables pour charger un fichier avec Power Automate

L’objectif de la création du flux de travail est évidemment de pouvoir charger un fichier dans une bibliothèque SharePoint.

Cependant, il est parfois utile de transmettre d’autres informations utiles comme le nom du dossier où doit être stocké le fichier, ou bien un commentaire associé au fichier.

Cela signifie qu’il faut plusieurs paramètres et donc plusieurs variables dans le flux de travail.

Vous allez créer la première variable, nommée varContenu dans notre scénario. Pour ce faire, dans le flux Power Automate, vous cliquez sur Nouvelle étape : la fenêtre Choisir une opération apparait.

Dans la fenêtre Choisir une opération, vous tapez le mot Variable : les actions relatives aux variables s’affichent. Vous pouvez éventuellement cliquer sur le connecteur Variable pour réduire encore plus le choix.

Variables
Variables

Dans la liste des actions, cliquez sur Initialiser la variable : une nouvelle action apparaît.

Initialiser la variable

Dans cette action, nommez la variable varContenu et indiquez qu’elle est de type Chaîne puis ne faites plus rien ! Surtout ne cliquez pas dans Valeur. Ne faites pas non plus tabulation !

Power Automate Initialiser la variable
Power Automate Initialiser la variable

(ne faites pas attention à la grosse goutte bleue sur la copie d’écran. c’est un message d’aide).

Avant tout, vous allez renommer l’action qui se nomme par défaut Initialiser la variable. Si vous ne prenez pas la précaution de renommer votre action, la saisie de la valeur va être extrêmement compliquée. En effet, le paramètre reçu de Power Apps est nommé en fonction du nom de l’action. Or, toutes les actions de type Initialiser la valeur ont un nom qui débute par Initialiser la valeur. Cela devient très vite ingérable avec de nombreux paramètres.

Pour renommer l’action, cliquez sur les 3 petits points (« … ») qui se trouvent à droite de l’action Initialiser la variable, puis cliquez sur Renommer : le titre de l’action se met en surbrillance.

Remplacez ce titre en mettant uniquement le nom de votre variable (varContenu).

Renommer l'action
Renommer l’action

Définir la valeur de la variable

Maintenant, cliquez dans la zone Valeur : normalement, le pop-up du Contenu dynamique doit apparaître. S’il n’apparait pas, cliquez sur le lien bleu Ajouter du contenu dynamique.

Contenu dynamique
Contenu dynamique

Dans le pop-up dynamique, cliquez sur Demander dans PowerApps : la zone valeur est alimentée par le paramètre qui s’intitule varContenu_Valeur.

Si vous n’aviez pas pris la précaution de renommer l’action, le premier paramètre se serait intitulé Intialiserlavariable_valeur, le second Intialiserlavariable2_valeur, etc.

Créer de nouvelles variables

En suivant la même procédure, créez 2 autres variables supplémentaires de type Chaîne : varNomDossier et varCommentaire.

Power Automate Création des variables
Power Automate Création des variables

Créer un dossier

Dans notre scénario, le fichier doit être déposé dans un dossier. Le nom du dossier n’est pas connu à l’avance. Il est transmis par paramètre.

Pour créer le dossier, ajoutez une nouvelle étape. Dans Choisir une opération, tapez SharePoint.

Puis, dans la liste des actions, cliquez sur Créer un dossier.

Créer un dossier
Créer un dossier

Renseignez l’adresse du site, ainsi que le nom de la bibliothèque.

Cliquez dans la zone Chemin d’accès du dossier : normalement, le pop-up Contenu dynamique apparaît.

Dans le pop-up, cliquez sur varNomDossier.

Créer un dossier Alimentation Variable
Créer un dossier Alimentation Variable

Les choses sérieuses commencent à partir de maintenant 🙂

Opération de données Message pour charger un fichier avec Power Automate

Dans Power Apps, le fichier est connu sous forme d’un flux binaire stocké dans une collection. Power Apps va transmettre le flux binaire à Power Automate via la variable varContenu. Il faut indiquer à Power Automate, la nature du flux pour qu’il puisse la traiter correctement.

Pour cela, vous allez vous appuyer sur les actions des opérations de flux de données au format JSON. Ces actions sont regroupées dans le connecteur qui s’intitule Opération de données.

Cliquez sur Nouvelle étape puis dans Choisir une opération, tapez json puis cliquez sur Opération de données pour filtrer la liste des actions.

Opération de données
Opération de données

Dans la liste des actions, cliquez sur Message. Le rôle se cette action est de réceptionner le paramètre Power Apps avec la notation JSON (JavaScript Object Notation). La notation JSON est fréquemment utilisée pour transmettre des données via le web.

Une particularité de la notation JSON est de contenir, à la fois, la structure des données et la valeur des données. La structure des données est l’ensemble des champs des données.

L’explication de cette action est détaillée dans le chapitre Entrées / Sorties de Message. Lorsque vous aurez « vu » ce qu’elle fait, ça sera plus facile à comprendre.

Cliquez dans la zone Entrées, puis dans le pop-up Contenu dynamique, cliquez sur l’onglet Expression.

Dans la zone Expression, tapez :

json(variables('varContenu'))
Power Automate Message JSON
Power Automate Message JSON

Puis cliquez sur le bouton OK : la formule apparaît dans l’action Message.

Enregistrez votre flux de travail Power Automate

Incursion dans Power Apps pour charger un fichier avec Power Automate

Ouvrez votre application Power Apps en modification.

Cliquez sur le bouton pour le sélectionner et vérifiez que la propriété OnSelect s’affiche.

Sélectionnez la totalité du contenu de la propriété OnSelect du bouton, puis copiez ce contenu. Eventuellement, vous pouvez coller ce contenu dans un fichier texte quelconque. Ce n’est pas obligatoire : c’est une précaution.

Dans l’application Power Apps, vérifiez que le bouton est toujours sélectionné.

Ensuite, allez dans le ruban Action puis cliquez sur le menu Power Automate. : le volet Données s’affiche.

Dans le volet Données, cliquez sur le flux Bouton PowerApps : Un bandeau jaune apparait dans le volet et l’instruction suivante s’affiche dans OnSelect :

BoutonPowerApps.Run(

Collez le contenu de votre presse-papiers au-dessus de cette instruction.

Ensuite modifiez la dernière instruction pour obtenir la formule :

BoutonPowerApps.Run(JSON(colFluxBinaire;JSONFormat.IncludeBinaryData);"Temp";"Commentaire de test")

Ce qui donne :

Power Apps JSON Power Automate
Power Apps JSON Power Automate

Dans la commande, la fonction Run() nécessite 3 paramètres car vous avez défini 3 variables dans le flux de travail Power Automate.

Le premier paramètre transmet le flux binaire des fichiers.

Pour l’instant, les deux derniers paramètres ont des valeurs temporaires pour se concentrer sur l’essentiel. Lorsque le moteur fonctionnera, il sera temps de s’occuper de la couleur du tissu des sièges 🙂

Lancez l’application en prévisualisation, sélectionnez un fichier texte et cliquez simplement sur le bouton. Cette action va envoyer le flux de données au flux de travail. Celui-ci va automatiquement se déclenché.

Prenez bien un fichier au format texte (extension .txt). Ne prenez pas un fichier Word, Excel, PDF, etc. car la sortie sera très complexe.

Pour créer un fichier texte, ouvrir notepad (le Bloc-Notes), appuyer sur la touche F5 du clavier puis enregistrer en donnant un nom comme test.txt.

Entrées / Sorties de Message pour charger un fichier avec Power Automate

SI vous êtes familier avec le web, vous devez probablement trouvé que les techniques utilisées jusqu’à maintenant sont très classiques, voire banales. En revanche, si vous n’êtes pas familier avec toute ces notions, c’est normal qu’elles apparaissent un peu nébuleuses. Ce chapitre va les éclaircir.

Dans Power Automate, ouvrez l’historique d’exécution du flux de travail.

Normalement, vous devez avoir une Opération réussie.

Cliquez sur l’heure de début de l’opération réussie, pour obtenir le détail de l’exécution des actions.

Ouvrez l’action Message pour voir ses entrées / sorties.

Power Automate Sorties JSON
Power Automate Sorties JSON

Dans le cas présent l’entrée et la sortie sont identiques. C’est normal. Rappelez-vous que Power Apps transmet le flux de données au format JSON à l’aide de la fonction JSON().

Le flux de données reçu par Power Automate est donc un flux en JSON. De son coté, l’action Message ne fait qu’une seule chose : c’est prendre un contenu et le mettre au format JSON. La sortie est forcément au format JSON. C’est évidemment inutile.

Le véritable intérêt de l’action Message est d’exposer le contenu au format JSON afin de le récupérer.

La récupération du contenu va permettre maintenant d’identifier la structure de données et les valeurs des données.

Analyser JSON

Pour identifier la structure des données transmises, vous allez copier toute la sortie de Message.

Power Automate Copie Sortie JSON de Message
Power Automate Copie Sortie JSON de Message

Copiez la totalité de la sortie de Message (dans la copie d’écran ci-dessus en grisé et encadré en rouge). Eventuellement, vous pouvez coller ce contenu dans un fichier texte quelconque. Ce n’est pas obligatoire : c’est une précaution.

L’analyse du contenu se fait avec l’action Analyser JSON.

Pour ce faire, cliquez sur le bouton Modifier (en haut à droite) pour modifier le flux Power Automate. Si vous ne voyez pas le bouton Modifier, ce n’est pas grave : modifiez le flux de travail avec la méthode de votre choix.

Dans le flux Power Automate, cliquez sur Nouvelle étape puis dans Choisir une opération, tapez json puis cliquez sur Opération de données pour filtrer la liste des actions.

Dans la liste des actions, cliquez sur Analyser JSON.

Power Automate Analyser JSON
Power Automate Analyser JSON

Comme son nom l’indique, cette action sert à analyser le flux JSON pour identifier la structure de données et les valeurs des données. La structure de données s’appelle un schéma.

Cette analyse se base sur un échantillon du flux JSON. Cet échantillon se trouve dans votre presse-papiers. En effet, c’est la sortie de l’action Message que vous avez copié.

Sortie de Message

L’entrée de Analyser JSON est la sortie de Message.

Donc, cliquez dans la zone Contenu de Analyser JSON, puis dans Contenu dynamique, cliquez sur Sorties sous Message.

Ensuite, cliquez dans le bouton Générer à partir de l’échantillon : un pop-up s’affiche. Il vous demande d’insérer une exemple de charge utile JSON.

Collez le contenu du presse-papiers. Celui-ci contient la sortie de Message à l’issue d’une exécution réussie.

Cliquez sur le bouton Terminé : vous obtenez une magnifique action Analyser JSON avec son schéma.

Power Automate JSON avec échantillon
Power Automate JSON avec échantillon

Appliquer à chacun

La sortie de l’action Analyser JSON est un tableau d’objets. Potentiellement, il peut donc y avoir plusieurs objets. Aussi, vous devez ajouter un contrôle Appliquer à chacun.

Pour ce faire, cliquez sur Nouvelle étape puis dans Choisir une opération, tapez control puis cliquez sur Control pour filtrer la liste des actions.

Ensuite, dans la liste des actions, cliquez sur Appliquer à chacun.

Puis, dans cette action, cliquez dans la zone Sélectionner un résultat à partir des étapes précédentes.

Enfin, dans le contenu dynamique, cliquez sur Corps sous Analyser JSON.

Charger un fichier avec Power Automate : Appliquer à chacun
Charger un fichier avec Power Automate : Appliquer à chacun

Dans Appliquer à chacun, cliquez sur Ajouter une action puis dans Choisir une opération, tapez sharepoint puis cliquez sur SharePoint pour filtrer la liste des actions. Dans la liste des actions, cliquez sur Créer un fichier.

Créer un fichier

Dans Créer un fichier, renseignez l’adresse du site SharePoint.

Le Chemin d’accès du dossier est construit sous la forme /<nom de votre bibliothèque SharePoint>/<nom du dossier>. Dans ce scénario, le nom de la bibliothèque est Travaux. Ensuite, le nom du dossier est donné par la variable varNomDossier du Contenu dynamique. Cette variable ne doit pas être ajoutée ‘à la main ». Il faut ouvrir Contenu dynamique puis cliquer sur varNomDossier sous Variables.

Power Automate Chemin d'accès du dossier
Power Automate Chemin d’accès du dossier

Le Nom de fichier est donné par le champ Nom sous Analyser JSON. Dans Nom de fichier, cliquez simplement sur Nom sous Analyser JSON du Contenu dynamique.

Et, enfin, notre quête ultime est proche, ainsi que son dénouement tant attendu : le contenu de fichier.

Concrètement, le champ Contenu de fichier va être alimenté par le champ Flux. Toutefois, ce champ est fourni sous forme d’un URI (Uniform Resource Identifier) à la sortie de l’action Analyser JSON. Un URI est une chaîne de caractères qui identifie une ressource Web. Pour récupérer le flux binaire du fichier, il faut lire cet URI grâce à la fonction dataUriToBinary.

Pour ce faire, cliquez dans la zone Contenu du fichier puis dans Contenu dynamique, cliquez sur l’onglet Expression. Dans la zone de formule, tapez la formule suivante :

dataUriToBinary(items('Appliquer_à_chacun')['Flux'])

Dans cette formule, ‘Flux’ est l’URI en sortie de l’action Analyser JSON.

Charger un fichier avec Power Automate : Contenu et nom de fichier
Charger un fichier avec Power Automate : Contenu et nom de fichier

Encore un petit effort et c’est bon 🙂

Pour épicer un peu les manipulations, la propriété Commentaire a été rajoutée a via une variable.

Mettre à jour les propriétés du fichier

Dans Appliquer à chacun, cliquez sur Ajouter une action puis dans Choisir une opération, tapez sharepoint puis cliquez sur SharePoint pour filtrer la liste des actions.

Ensuite, dans la liste des actions, cliquez sur Mettre à jour les propriétés du fichier (et non pas Mettre à jour les propriétés de fichier à l’aide des résultats du modèle AI Builder).

Puis, dans Mettre à jour les propriétés du fichier, renseignez l’adresse du site SharePoint, ainsi que le nom de la bibliothèque (sans le sous-dossier).

Pour comprendre la zone ID, il faut savoir que toutes les listes SharePoint, y compris les bibliothèques, possèdent des colonnes « systèmes » comme la colonne ID. Cette colonne contient un nombre unique pour chaque élément d’une liste. Il n’est pas possible d’avoir 2 éléments différents avec le même ID dans une même liste. L’ID est donc un identifiant unique dans une liste SharePoint.

Puisque vous voulez mettre à jour la zone Commentaire de la bibliothèque, Power Automate a besoin de savoir de quel élément. Evidemment, dans votre esprit toutes les étapes concernent le même élément SharePoint. Cependant, Power Automate ne peut pas le savoir car vous pourriez par exemple décider de mettre à jour systématiquement le premier élément d’une autre liste.

Pour indiquer à Power Automate de quel élément il s’agit et relier entre elles les actions, il suffit de récupérer l’ID de l’étape précédente. Pour ce faire, cliquez dans la zone ID puis dans Contenu dynamique, cliquez sur ItemID sous Créer un fichier.

Ensuite, cliquez dans la zone Titre puis dans Contenu dynamique, cliquez sur Name sous Créer un fichier.

Enfin, cliquez dans la zone Commentaire puis dans Contenu dynamique, cliquez sur varCommentaire sous Variables.

Charger un fichier avec Power Automate : Mettre à jour les propriétés du fichier
Charger un fichier avec Power Automate : Mettre à jour les propriétés du fichier

Charger un fichier avec Power Automate

C’est fini !

Enfin presque : il reste à l’exécuter pour vérifier le bon fonctionnement.

En cadeau, la photo du beau bébé :

Charger un fichier avec Power Automate un fichier dans une bibliothèque SharePoint
Charger un fichier avec Power Automate un fichier dans une bibliothèque SharePoint

La manipulation est terminée.


Publié

dans

par

Étiquettes :

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *