今日もローコードで業務改善をしたい

Power AutomateやPower Appsなど、Power Platformに関して学んだことを書いています。

Microsoft Formsにアップロードした画像をリストにサムネイル表示する

はじめに

Microsoft Formsには「ファイルのアップロード」という機能があります。
Power Automateを使ってアップロードした画像ファイルをSharePointリストにサムネイルとして表示する方法がありますので、ご紹介します。


フロー全体図


用意するもの

Microsoft Forms

今回は「ファイルのアップロード」のみのアンケートを作成しました。

ファイル数の制限:1、単一ファイルサイズの制限:1GBにしています。(ファイルサイズはご自由に)

SharePoint Online リスト または Microsoft Lists

今回はSharePoint Onlineリストで説明します。

任意のサイトで新規のリストを作成します。
「列の追加」より「複数行テキスト」をクリックします。

私は「Image」という名前をつけて、「保存」をクリックしました。

「Image」列が作成できたら「列の設定」から「この列の書式設定」をクリックします。

「Image 列の書式設定」が表示されるので、「詳細モード」をクリックします。

JSONの書式設定が表示されるので、以下のJSONをコピペして「保存」をクリックします。

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "img",
  "attributes": {
    "src": "@currentField"
  }
}


これで事前準備は完了です。

フローの作成手順

ここからがPower Automateの話です。

1.新しい応答が送信されるとき

トリガーにはMicrosoft Formsの「新しい応答が送信されるとき」を選択し、以下を指定します。
フォームID:事前に作成したアンケート

2.応答の詳細を取得する

「+新しいステップ」からMicrosoft Formsの「応答の詳細を取得する」アクションを選択し、以下を指定します。
フォームID:事前に作成したアンケート
応答ID:動的なコンテンツの追加から「新しい応答が送信されるとき」の「応答ID」

3.JSONの解析

「+新しいステップ」からデータ操作の「JSONの解析」アクションを選択し、以下を指定します。
コンテンツ:動的なコンテンツの追加から「応答の詳細を取得する」のファイルのアップロードの設問

スキーマ:「サンプルから生成」をクリックします。
※必ず「サンプルから生成」をしてください。

以下のJSONをコピペして「完了」をクリックします。

[{"name":"PA.png","link":"https:","id":"016HND","type":null,"size":876877,"referenceId":"01DF","driveId":"bviAS","status":1,"uploadSessionUrl":null}]


以下のようになっていればOKです。

4.項目の作成

「+新しいステップ」からSharePointの「項目の作成」アクションを選択し、以下を指定します。
サイトのアドレス:リストを作成したサイト
Microsoft Listsのマイリストでリストを作成された方は、サイトのアドレスの指定方法が少し異なりますので過去の記事をご覧ください。
yuri365lily.hatenablog.com
リスト名:事前に作成したリスト
Title:なんでもいいです。(私は動的なコンテンツの追加から「応答の詳細を取得する」のResponders' Emailを選択しました。)
Image:動的なコンテンツの追加から「JSONの解析」の「link」

「link」を選択すると、「Apply to each」が自動で追加されます。

以上でフローの作成は終了です。

フローの実行

実際に画像をFormsからアップロードしてみましょう!

リストを確認すると、「Image」列に画像がサムネイルとして表示されました。(2度回答したので画像が2つになっています)

ちなみに画像はMicrosoftさんの公式ドキュメントからお借りしました。Power Platformのアイコンがあるのはシラナカッタ!
docs.microsoft.com

さいごに

リストのアイテムをクリックしたときに、Formsでアップロードした画像を確認することができますが、

実は画像自体をクリックするとただのURLになってしまいます。

リストには「画像」列というものが別でありますが、Power Automateで「画像」列にFormsにアップロードした画像を格納することができなかったため、今回の方法をご紹介しました。

もし方法をご存じの方がいましたら、教えてください。
また、方法がわかったら新たに記事を書こうと思います!