お問い合わせや申請のためのFormsアンケートフォームへの回答があった際に、Power AutomateのクラウドフローでSharePointリストに自動転記を行うことができます。
テンプレートもありますので簡単にフローを作成することもできますが、フォームの回答の添付ファイルがある場合に、SharePointリストにどう反映させようか戸惑うことがあります。
SharePointリストの「添付ファイルへのリンク」という列に、フォームの回答のハイパーリンクを表示させる方法をご紹介します。
用意するもの
- Formsアンケートフォーム
- 自身が所有者または共同編集者である必要があります。
- ここでは、Teamsチームに紐づく「グループのフォーム」を使用します。
- SharePointリスト
- 自身がフルコントロールまたは編集権限を持つ必要があります。
Formsアンケートフォーム
今回は、下図のようなフォームを使用します。申請用のフォームで、添付ファイルは1つのみ許可しています。
※グループのフォームで添付ファイルの設問を作成するには、グループの所有者である必要があります。
SharePointリスト
SharePointリストはFormsアンケートフォームの設問に合わせた列を準備します。
添付ファイルへのリンクを表示する列は[リストの設定]画面から列の編集画面を開き、[複数行テキスト]かつ[リッチ テキスト (太字、斜体、テキストの配置、ハイパーリンク)] にします。
※リッチテキストには2種類あるため、下記手順で設定し、画像など余分な情報は追加できずシンプルな書式で利用できるようにすることをおすすめします。
SharePointリストのイメージ図
[複数行テキスト]の列の使用可能なテキストの種類を"リッチテキスト"にする手順
- SharePointリストにアクセスし、画面右上の[歯車] - [リストの設定] をクリックします。
- ”列” の一覧にて、設定を変更したい列名をクリックします。
- 列の編集画面が開いたら、”この列の情報の種類” に「複数行テキスト」と表示されていることを確認し、”列の追加設定” の ”使用可能なテキストの種類を指定してください” の項目で [リッチ テキスト (太字、斜体、テキストの配置、ハイパーリンク)]を選択します。
- [OK] ボタンをクリックして設定を保存します。
Power Automateのフローを作成
早速フローを作成していきましょう。
フロー作成に慣れていない方でもなるべく分かりやすいように、テンプレートを用いて手短に作成できる方法かつ、手順を省略せずに記載しています。
フロー作成イメージ図
フロー作成手順
- 下記テンプレートのURLにアクセスし[今すぐ試す] をクリックします。
https://powerautomate.microsoft.com/ja-jp/templates/details/2be590104bdd11e78896d10a96d3fac3/フォームの回答を-sharepoint-に記録します/ - 「既にアカウントをお持ちですか。」の下部の[サインイン]をクリックします。
※サインイン画面が表示されたら、自身のアカウントでサインインします。 - 画面下部の「このフローの接続先は次のとおりです:」のMicrosoft FormsとSharePointの右に自身のアカウントが表示されていることを確認し、[続行]をクリックします。
- トリガーアクション[When a new response is submitted] にフォームIDを設定します。
※プルダウンメニューに表示されれば選択し、表示されない場合は[カスタム値]を選択して、フォーム編集画面または回答画面のURLの途中にある「v-LL」から最後までの下記のような文字列を指定します。(下記文字列は仮の値です)
v-LL_ABCdefGHIjkLmNoPQrStu123ABCdefGHIjkL-MnOpQ123RstUvwx456YZ123abcDEF789ghIJkLmnOPqRS12Tu - アクション[Get response details] にも同様にフォームIDを設定します。
- アクション[Create item] にて下記を設定します。
- [サイトのアドレス] にてプルダウンメニューから選択もしくは[カスタム値]を選択してURLを入力
- [リスト名] をプルダウンメニューから選択
- [保存] ボタンをクリックして一旦フローを保存します。
- フロー編集画面の右上の[テスト] をクリックして、[手動] を選択して[テスト] をクリックします。
- Formsアンケートフォームの回答画面を開き、添付ファイルをアップロードして回答を送信します。
- 「ご利用のフローが正常に実行されました。」と緑色のバーに表示され、実行履歴が表示されるのを待ちます。
- 実行履歴内の [Get response details] アクションを展開し、出力内の添付ファイルの設問の欄にある、[{"name": から始まる文字列をすべてコピーしてメモ帳等に貼り付けしておきます。
- 画面右上の[編集] ボタンをクリックして、再度フロー編集画面を開きます。
- アクション[When a new response is submitted] と [Get response details] の間に[変数を初期化する] アクションを追加し、各項目を下記のように設定します。
- "名前":Attachment
- "種類":文字列
- "値" :なし
- アクション[Get response details] の下に[ユーザー プロフィールの取得 (V2)]アクションを追加し、"ユーザー (UPN)" の項目に動的なコンテンツとして [Get response details] の[Responder's Email] を追加します。
※詳細オプション内の ”フィールドの選択” の項目は指定無し。 - アクション [ユーザー プロフィールの取得 (V2)] の下に、[条件] アクションを追加し、左の”値の選択” 欄に動的なコンテンツとして [Get response details] のFormsの添付ファイルの設問に対応したものを追加して、”次の値に等しい” が選択されたままで、右の ”値の選択” 欄は空欄のままにします。
- アクション [条件] の下に表示された [はいの場合] にはアクションは何も追加せずそのままにし、[いいえの場合] に[JSONの解析] アクションを追加して各項目を下記のように設定します。
- "コンテンツ":動的なコンテンツとして [Get response details] のFormsの添付ファイルの設問に対応したものを追加
- ”スキーマ”:[サンプルから生成] をクリックし、手順10. でコピーした値を貼り付けして[完了] をクリックします。
- [いいえの場合] の [JSONの解析] アクションの下に [変数の設定] アクションを追加し、各項目を下記のように設定します。
- "名前":Attachment を選択
- "値" :下記 <a から始まり </a>で終わるテキストをまず入力し、図のように動的なコンテンツとして[JSONの解析] の [link] と [name] を追加
<a href=""target="_blank" rel="noopener noreferrer"></a>
※ [変数の設定] アクションの値に[JSONの解析] の [link] または [name] を追加したタイミングで、自動的に[Apply to each] アクションの中に入った状態に変わります。
- アクション [Create item]を展開して、SharePointリストの各列の項目にそれぞれ動的なコンテンツとして、[Get response details] のFormsの設問に対応したものを追加し、添付ファイルへのリンクの列にあたる項目には[変数] の [Attachments] を追加します。
- [保存] をクリックします。
- 画面右上の[テスト] をクリックし、[自動] - [最近使用したトリガーで] - [成功 ●分前] を選択し、[保存&テスト]をクリックします。
動作を確認
テスト実行した結果を、フローの実行履歴とSharePointリストにて確認します。
フローの実行履歴の確認
「ご利用のフローが正常に実行されました。」と表示され、すべてのアクションが緑色のチェックマークになっていることを確認します。
※各アクションをクリックして展開すると、詳細な入力と出力の結果を確認することができます。
実行履歴の画面左上の[←] をクリックしてフローの詳細画面を開くと、下部に28日間の実行履歴も表示されていて、日時の部分をクリックすることで、上図と同じ画面を開くことができます。
SharePointリストの確認
SharePointリストを開き、下図のようにアイテムが作成されていることを確認します。
そして、アイテムをダブルクリックして画面右側に詳細画面を表示させ、添付ファイルへのリンクが表示された部分をクリックして編集状態にします。すると、下図の赤枠のように、ハイパーリンクとして表示されるようなHTMLタグが記載されていることを確認できます。
まとめ
テンプレートに少しプラスするだけで、実用性のあるフローを作成することができました。
[JSONの解析] のスキーマって何を入力して良いか分からない、そんなときは、まずはテスト実行してから実行履歴の[出力] からどのような情報がフローの中で扱われているかを確認し、スキーマの[サンプルから生成] を活用すれば自分でJSONコードを書く必要が無いことも分かりました。
他のフローでも応用できるTipsとしてご活用いただけると嬉しいです。
片山 博恵(日本ビジネスシステムズ株式会社)
プロフェッショナルサービス本部でユーザーサポート業務をしています。Microsoft 365全般とPower Platformを扱っています。インドア人間です。
担当記事一覧