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.
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.
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 !
(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).
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.
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.
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.
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.
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.
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'))
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 :
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.
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.
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.
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.
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.
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.
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.
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
C’est fini !
Enfin presque : il reste à l’exécuter pour vérifier le bon fonctionnement.
En cadeau, la photo du beau bébé :
La manipulation est terminée.
Laisser un commentaire