添付ファイルを含む Microsoft Forms の回答を、SharePoint リストに記録する方法をご紹介します。

今回は、『社内フォトコンテスト』を例にして、作成していきます。
リストにアクセスできるのはフォトコンの主催者社員に制限することで、一般社員は Forms からのみ応募可能とすることができます。

1.事前準備

(1)Forms で応募フォームの作成

Microsoft Formsで、応募フォームのアンケートを作成します。
今回は、単一の画像ファイルのみアップデート可能、テーマとコメントを入力できるようなフォームを作成しました。

(2)保存先の SharePoint リストの作成

リストはこのように、非常にシンプルに作成しました。
Forms から得られた情報のみを保存するようにしています。

(^・ェ・^).oO(実際は、各審査員の点数やコメント、入賞結果を記録する列があった方がベターかもと思いました)

2.フローの作成

フローの全体像

フローの作成手順

①.トリガーに「新しい回答が送信されるとき」を利用します。

②.1つ目のアクションに、「応答の詳細を取得する」を利用します。

項目設定値
フォーム ID作成した Forms のアンケート
応答 ID[新しい応答が送信されるとき – 応答 ID]
@{triggerOutputs()?[‘body/resourceData/responseId’]}

③.2つ目のアクションに、「JSONの解析」を利用します。

項目設定値
コンテンツ[応答の詳細を取得する – 『写真をアップロードする質問』]
@{outputs(‘応答の詳細を取得する’)?[‘『写真をアップデートする質問』’]}
スキーマ{
    “type”: “array”,
    “items”: {
        “type”: “object”,
        “properties”: {
            “name”: {
                “type”: “string”
            },
            “link”: {
                “type”: “string”
            },
            “id”: {
                “type”: “string”
            },
            “type”: {},
            “size”: {
                “type”: “integer”
            },
            “referenceId”: {
                “type”: “string”
            },
            “driveId”: {
                “type”: “string”
            },
            “status”: {
                “type”: “integer”
            },
            “uploadSessionUrl”: {}
        },
        “required”: [
            “name”,
            “link”,
            “id”,
            “type”,
            “size”,
            “referenceId”,
            “driveId”,
            “status”,
            “uploadSessionUrl”
        ]
    }
}

④.3つ目のアクションに、「作成」を利用します。
解析したデータから、ファイル名を抜き取ります。

項目設定
入力first(body(‘JSON_の解析’)).name
@{first(body(‘JSON_の解析’)).name}

⑤.4つ目のアクションに、「パスによるファイル コンテンツの取得」を利用します。
Forms によりアップロードされたファイルの保存先である OneDrive 上のフォルダーを指定して、パスの最後に手順④で作成したファイル名を指定します。

項目設定
ファイルパス/アプリ/Microsoft Forms/『無題のフォーム』/『質問』/[作成 – 出力]
/アプリ/Microsoft Forms/『無題のフォーム』/『質問』/@{outputs(‘作成’)}

⑥.5つ目のアクションに、「項目の作成」を利用します。
SharePoint リストに応募の内容を登録します。

項目設定
サイトのアドレス保存先のサイト
リスト名保存先のリスト
Title写真のタイトル
@{outputs(‘応答の詳細を取得する’)?[‘『Forms の回答』’]}
コメント写真についてのコメント
@{outputs(‘応答の詳細を取得する’)?[‘『Forms の回答』’]}
回答者 Claims回答者
@outputs(‘応答の詳細を取得する’)?[‘body/responder’]

⑦.6つ目のアクションに、「添付ファイルの追加」を利用します。
手順⑥で登録したリスト アイテムに、画像ファイルを添付します。

項目設定
サイトのアドレス保存先のサイト
リスト名保存先のリスト
ID[項目の作成 – ID]
@{outputs(‘項目の作成’)?[‘body/ID’]}
ファイル名[作成 – 出力]
@{outputs(‘作成’)}
ファイル コンテンツ[パスによるファイル コンテンツの取得 – ファイル コンテンツ]
@{outputs(‘パスによるファイル_コンテンツの取得’)?[‘body’]}

3.まとめ

今回は、Forms の回答を、SharePoint リストに収集する方法をご紹介しました。
Forms デフォルトの回答結果画面は、自動でグラフ化されたりして見やすいです!
しかしながら、Power BI で高度な分析を行いたい場合や、後から他の人が回答に対してコメント等を残したい場合などは、リストにまとめた方がいいのかなと思っています。

目安箱やコンペ等に、参考にしていただけますと幸いです。

今回は、データソースに、SharePoint リストを選択しましたが、Dataverse ( Dataverse for Teams)という選択肢も、とてもオススメです😊