← Tous les articles

Récupérer le contenu d'une colonne Image depuis une liste SharePoint

  1. Prérequis
  2. Méthode principale : Requête http
    1. L’action “Envoyer une requête http à SharePoint”
    2. Recomposer le chemin d’accès au fichier
      1. Récupérer le nom du fichier
      2. Recomposer le chemin d’accès complet
  3. Méthode alternative : avec “Obtenir les pièces jointes”
    1. Obtenir les pièces jointes
    2. Récupérer le contenu du fichier
  4. Utiliser le nom du fichier et son contenu
    1. Envoyer une pièce jointe par email
    2. Enregistrer le fichier dans OneDrive

Prérequis

La requête aura besoin en entrée:

  • de l’adresse du site SharePoint

  • du nom de la liste : (ex : ListeCandidats ) (remplacer les éventuels espaces par %20 )

  • du nom technique de la colonne image (ex : Photo)

  • de l’ID de l’enregistrement dont il faut récupérer le contenu du fichier, dans mon exemple, je récupérerai l’ID dans le déclencheur du flux. (L’ID est toujours un nombre entier)

Méthode principale : Requête http

Si vous souhaitez récupérer le contenu d’une colonne de type fichier ou image depuis une liste SharePoint, vous remarquerez qu’il n’existe pas d’action prédéfinie pour cet usage. Pour y parvenir, vous devrez utiliser deux actions :

Les étapes suivantes dépendront ensuite de ce que vous souhaitez faire du fichier : l’ajouter à une bibliothèque, l’envoyer par mail… dans notre exemple nous l’enregistrerons simplement dans OneDrive.

L’action “Envoyer une requête http à SharePoint”

  • Sélectionner l’adresse du site

  • Choisir la méthode GET

  • Inscrire dans l’URI :

_api/lists/getbytitle(‘Nom de la Liste’)/items([ID])/NomTechniqueDeLaColonneImage

Texte
_api/lists/getbytitle('ListeCandidats')/items([ID])/Photo

L’action va produire en sortie un JSON du type :

JSON
{
  "d": {
    "Photo": "{\"fileName\":\"Reserved_ImageAttachment_[5]_[Photo][32]_[454f3edc0b5b40ac8c4a63ecd26132c1][2]_[17].png\",\"originalImageName\":\"un androide \"}"
  }
}

Nous remarquons que dans ce JSON, nous allons pouvoir récupérer le nom du fichier (dans l’exemple : Reserved_ImageAttachment_[5]_[Photo][32]_[454f3edc0b5b40ac8c4a63ecd26132c1][2]_[17].png) , cependant, la donnée est intriquée et nous allons devoir effectuer quelques actions pour récupérer ce nom.

Recomposer le chemin d’accès au fichier

Récupérer le nom du fichier

Pour extraire notre nom de fichier, nous devrons passer par deux action “Analyser JSON”

Pour la première, nous allons d’abord exécuter le flux pour récupérer l’échantillon “body” en sortie de l’action “Envoyer une requête HTTP à SharePoint” que nous allons copier dans le presse-papier.

De retour dans l’éditeur, nous allons :

  • Ajouter une action “Analyser JSON” (1)

  • Dans contenu, ajouter la sortie de l’étape précédente (3)

  • Ensuite nous allons générer le schéma à l’aide de l’échantillon récupéré dans la précédente exécution du flux (3)

  • Enfin nous pouvons ajouter une action “Message” pour capturer la sortie de l’analyse JSON, sur le champ image :

Après une nouvelle exécution du flux, nous pouvons récupérer un échantillon de sortie :

JSON
{"fileName":"Reserved_ImageAttachment_[5]_[Photo][32]_[454f3edc0b5b40ac8c4a63ecd26132c1][2]_[17].png","originalImageName":"un androide "}

Notez qu’à cette étape, nous pourrons également récupérer le nom original du fichier via le champ originalImageName, attention, cette valeur peut être vide

Avec lequel nous allons pouvoir générer un nouveau schéma pour une nouvelle action “Analyser JSON” :

En sortie de cette étape, nous récupérons le nom de fichier uniquement. Nous pouvons supprimer l’action “Compose” / “Message” qui ne nous a servi qu’à générer le schéma.

Recomposer le chemin d’accès complet

Pour récupérer le contenu du fichier, nous aurons besoin de son chemin d’accès complet, celui-ci aura la forme :

Texte
https://[Nom du tenant].sharepoint.com/sites/[Nom du site]/Lists/[Nom de la liste]/Attachments/[ID de l'item dans la liste]/[Nom du fichier]

dès lors, il est facile de recomposer ce chemin d’accès, en réutilisant l’ID de l’élément, toute la première partie jusqu’à /Attachments/ est l’url de la liste

Il ne reste plus qu’à ajouter la suite de l’url dans notre action : “Obtenir le contenu du fichier grâce au chemin d’accès” , à savoir :

…/Attachments/[ID de l’item dans la liste]/[Nom du fichier]

l’ID est le même que dans notre action de requête http et le nom du fichier est récupéré en sortie de la 2eme analyse JSON

Méthode alternative : avec “Obtenir les pièces jointes”

Voici une autre méthode pour parvenir au même résultat, nous allons cette fois, obtenir la liste des pièces jointes de l’élément, liste que nous pourrons filtrer pour isoler les fichiers rattachés à notre colonne de type image.

Obtenir les pièces jointes

Lorsequ’on lance une action “Obtenir les pièces jointes” sur un élément d’une liste, l’action va récupérer les fichiers en pièce jointe mais également… les fichiers des colonnes de type “image”, ces derniers seront identifiables grâce à leur nom de fichier :

Le nom de fichier début par Reserved_ImageAttachment_ et contient également le nom de la colonne image entre []. L’avantage de cette méthode est que nous obtiendrons directement le chemin d’accès complet et même l’identifiant du fichier sans avoir besoin de les recomposer.

Nous allons donc ajouter une action “Filtrer un tableau” et indiquer en source : la sortie de notre action “obtenir les pièces jointes” et en filtre : “contient [Photo]”

Récupérer le contenu du fichier

Nous ajouterons ensuite une action “obtenir le contenu du fichier” à laquelle nous fournirons l’Id récupéré et filtré dans les étapes précédentes. Attention: Nous avons récupéré les pièces jointes sous forme de table, afin d’éviter la création d’une boucle “appliquer à chacun”, nous utiliserons une expression :

Texte
outputs('Filter_array')['body'][0]?['Id']

Filter_array étant le nom de votre action “Filtrer un tableau”, le [0] permet de sélectionner la première ligne de la sortie.

Utiliser le nom du fichier et son contenu

Une fois le nom du fichier et son contenu récupérés, il est facile de les réemployer dans des actions de création de fichier ou de pièces jointe. Nous pouvons bien sûr en profiter pour renommer ou personnaliser le nom du fichier au passage.

Envoyer une pièce jointe par email

Enregistrer le fichier dans OneDrive

Échanger autour de cet article

Les commentaires utilisent Giscus et GitHub Discussions. Le service externe n’est contacté qu’après activation.