記事公開日
最終更新日
初心者に向けたPower Automateの使い方【 #4 承認フロー編 +α 】

今回は第1回で作成したSharePointリスト と
第3回の事前準備で作成したSharePointリスト の両方取得して、承認フローに組み込む方法、
さらに、取得した2つのリストからwordを作成する方法を説明します。
本ブログでは、Power Automate・SharePointを使用して、
例をもとに「自動化されたワークフローの作成方法」の説明を行います。
元となる例は、実際に弊社で行っている「新人が書く週報の通知・承認フロー」です。
第1回・第2回・第3回のブログは以下からぜひ!
▼初心者に向けたPower Automateの使い方【#1 SharePointとOutlookで通知フロー編】
▼初心者に向けたPower Automateの使い方【#2 Power AppsとSharePoint/時間指定の通知フロー編】
▼初心者に向けたPower Automateの使い方【#3 承認フロー編】
目次
第3回のブログでは、教育担当者から、週報の内容に承認をもらうフローを作成しました。
次は、上長3名に承認をもらうフローを作成していきます。
そのためには、以下の3つの項目が反映されたwordファイルを提出して、承認をもらう必要があります。
- 新人教育担当者が記入した今週の「予定・目標」
- 予定・目標をもとに新人が記入した今週の「作業内容・達成度・反省点」
- 作業内容・達成度・反省点をもとに新人教育担当者が記入した「コメント」
3つの内容はこれまでのブログで作成してきました。その流れが下図の①と②です。
しかし、「予定・目標」と「作業内容・達成度・反省点」の項目は、
それぞれ別のSharePointリストによって内容が記録されています。
③のフローへ進むためには、それら2つのリストを合わせ、
加えて「コメント」の内容も反映させる必要があります。

では、早速2つのリストを取得して、承認フローへ反映させてみましょう!
2つのSharePointリストを取得する方法
第3回で作成した承認フローをもとに作成していきましょう。前回作成した承認フローでは、
すでにトリガーのSharePoint「アイテムが作成または変更されたとき」によって
「作業内容・達成度・反省点」が記入された「作業内容リスト」が取得されています。
もう1つのリストである「目標予定リスト」を取得するためには、
SharePointの「複数の項目の取得」というアクションを使用します。
1.アクション「複数の項目の取得」の追加
トリガーのSharePoint「アイテムが作成または変更されたとき」の下の、「新しいステップを挿入します」をクリックして、アクションを追加します。

「SharePoint」と検索して、「複数の項目の取得」を選びます。

「複数の項目の取得」アクションでは、以下のように設定していきます。

詳細オプションを表示する▽をクリックして、フィルタークエリの設定を行います。
2.フィルタークエリについて
フィルタークエリによって、指定した条件で絞り込んでアイテムを取得することができます。現状では、SharePointの作業内容リストと目標予定リストが結びついておらず、バラバラの状態になっています。
これらを結び付けるために、フィルタークエリを使用する必要があります。
作業内容リストと目標予定リストのどちらにも存在する列、かつ、その列の値が一致するもので条件を絞り込みます。
今回の場合は、列「提出日」の値で条件を絞り込みます。
では、フィルタークエリで条件を絞り込んでいきましょう。
今回のフィルタークエリは以下のような条件にすることで、絞り込むことができます。
条件 | 意味 |
A eq B | AとBは等しい(equal) |
A:目標予定リストの提出日
作業内容リストの「提出日」はトリガーである「アイテムが作成または変更されたとき」の
動的コンテンツを追加することで指定できます。
しかし、目標予定リストの「提出日」は動的コンテンツにはありません。
そのためFieldIDが必要になります。

下図の通りにフィルタークエリに入力することで、条件を絞り込むことができます。
ここで注意しなければならない点が2つあります。
①「OData_」を頭に加えること ※
②動的コンテンツの【提出日】は「‘’」で囲うこと

※列名が日本語の場合、もしくは種類が日付や数値の場合は、
FieldIDが列名とならず、自動生成されるため「OData_ + URLの末尾のFieldID」が必須となります。
列名が英語である場合、かつ種類が日付や数値以外の場合は、OData_を必要とせず、
下図の通りに列名(=FieldID)をそのまま入力することで、 条件を絞り込むことができます。

実はこのフィルタークエリはeq以外にも様々な条件で絞り込むことができます。
その他の条件は以下の表の通りです。また、条件が複数ある場合はandやor、()を使用することができます。
条件 | 意味 |
A eq B | AとBは等しい(equal) |
A ne B | AとBは等しくない(not equal) |
A gt B | AがBより大きい(greater than) |
A lt B | AがBより小さい(less than) |
A ge B | AがB以上(greater than or equal) |
A le B | AがB以下(less than or equal) |
startswith(A,B) | AがBで始まるもの |
substringof(A,B) | AにBが含まれるもの |
endwith(A,B) | AがBで終わるもの |
例えば、達成度を数値にした場合、
「達成度が50以下であるアイテムを表示して通知するフロー」を作成することも可能です。
その際はフィルタークエリが以下のようになります。
さきほどは【提出日】を「‘’」で囲いましたが、数値の場合は「‘’」で囲う必要はありません。
3.承認アクションの設定
次に承認アクションの設定を変更します。動的コンテンツを以下のように表します。
- 「アイテムが作成または変更されたとき」の動的コンテンツの場合は【】
- 「複数項目の取得」の動的コンテンツの場合は〔〕
特に注意が必要なのは、担当者の項目です。
登録者Emailの動的コンテンツを選び間違えてしまうと、新人に承認フローが届いてしまうので注意しましょう。
承認の種類 | 承認/拒否 – 最初に応答 |
タイトル | 【提出日】提出の承認フロー |
担当者 | 〔登録者 Email〕 |
詳細 | 提出日:【提出日】 ■作業期間:〔2021-XX-XX~〕~〔~2021-XX-XX〕 ■作業内容 ▼〔今週の予定〕 【作業内容】 ▼〔今週の予定2〕 【作業内容2】 ▼〔今週の予定3〕 【作業内容3】 ■それぞれの目標に対する達成度 〔今週の目標〕:【達成度】 〔今週の目標2〕:【達成度2】 〔今週の目標3〕:【達成度3】 ■課題点・反省点 【課題点・反省点】 |
下図での赤枠で囲ってある動的コンテンツが「複数の項目の取得」から追加した動的コンテンツです。

さて最後に、「条件アクション」をドラッグ&ドロップして、
「開始して承認を待機」の下に持ってくる必要があります。
現時点ではフローが下図の通りになっています。
黒矢印の通りに条件をApply to eachの中に移動させましょう。

4.フローのテスト
では、いつも通りフローチェッカーをクリックして、保存とテストを行います。目標予定リストはすでに第1回で作成したものを使用します。
作業内容リストから新規のアイテムを作成してフローを稼働させましょう。
目標予定リスト | 値 |
提出日 | 2021/08/02 |
2021/XX/XX~ | 2021/07/26 |
~2021/XX/XX | 2021/07/30 |
今週の予定 | テスト① |
今週の目標 | テスト① |
目標予定リスト | 値 |
提出日 | 2021/08/02 |
作業内容 | テスト① |
達成度 | 100% |
課題点・反省点 | テスト① |
下図の左の通りに、新人教育担当者へ承認要求が送られていますか?
8月2日分だけでなく8月9日など別の日でもテストを行ってみると、
条件が正しく絞り込まれていることがわかると思います。

これで、「2つのSharePointリスト取得」が完了しました!
取得したSharePointのリストからWordを作成する方法
では次に、先ほど取得した2つのリストが反映されたWordを作成していきましょう。新人教育担当者に「作業内容・達成度・反省点」が承認されて、
コメントが記入されることによって、Word作成フローが稼働します。
Word作成フローとは下図の通りWordファイル「週間作業報告書」へ
SharePointリストに記入した内容が自動的に組み込まれるフローのことです。
※このフローでは、Word Onlineである「Microsoft Wordテンプレートを事前設定します」を使用します。
PREMIUMとなるため、Power Automateの有償プランが必要です。

このブログでは、ひな型として上図のWord文書を使用しますが
下図の通り簡易的なWord文書でも問題ありません。

さて、Word作成フローを作成する前に 事前準備として、Wordの設定とWord文書の設定を行います。
1.事前準備:Wordファイル「週次報告書」の作成
作成したひな型のWordファイルを開きます。①Wordオプション変更(開発の追加)
Wordのオプションを変更して、Wordのリボン(ファイルやホーム、挿入などのタブがあるところ)に「開発」表示させるために、オプションから「開発」を有効にする必要があります。
すでにリボンに「開発」がある方は、以下のところまで進んでください。
規定では無効になっているため、Wordのオプションから有効にする必要があります。
Wordを開いて、ファイル>オプションと選択します。

Wordのオプションのうち、リボンのユーザ設定を選択します。

開発にチェックを入れて、OKをクリックします。

下図の通り、リボンに開発が追加されます。

②テキストコンテンツコントロールを追加する
次にひな型のWord文書に設定を加えていきます。冒頭でお見せした通りに2つのSharePointリストをWord文書に反映させるためには、
値を差し込む箇所を選択して、テキストコンテンツコントロールを追加する必要があります。
今回、値が差し込まれる箇所は下図の赤文字全てです。
※差し込み箇所はword文書のデザインによってお好みで、設定していただいて構いません。

まず、値を差し込む箇所を選択します。

次に、開発のコントロールにある「テキスト コンテンツ コントロール」をクリックします。

その他残りの組み込む箇所も同様に、テキストコンテンツコントロールを追加していきます。
コントロールの「デザインモード」に変更することで、
テキストコンテンツコントロールになった箇所を確認することができます。
水色の両枠に囲われているところが、テキストコンテンツコントロールの追加された箇所です。

③SharePointサイトに保存
SharePointサイトにwordを保存するためのライブラリを作成します。また、この後Power Automateによって作成されたWordファイルを保存する場所も
SharePointサイトに作成します。
Wordファイルの保存先はOneDriveでも問題ありませんが、今回はSharePointに保存します。
SharePointサイトへ移動します。
リストを作成する際と同様に、ホーム>新規を選択し、ドキュメントライブラリをクリックします。
ライブラリの名前は「word化」と設定します。

ライブラリでは、新規から以下の2つのフォルダを作成します。
- 週次報告書
- コメント付き

先ほど作成したWordファイルの「週間作業報告書(ブログ)」は「週次報告書」に保存しておきます。
「コメント付き」は後ほど使用します。
2.「Microsoft Word テンプレートを事前設定します」アクションの追加
事前準備が完了しました。ここからは、Power Automateの画面に戻ります。先ほど作成した承認フローのうち、条件アクションの「はいの場合」にアクションを追加していきます。
Teams「チャットまたはチャネルでメッセージを投稿する」アクションの下に
Word Online(Business)の「Microsoft Word テンプレートを事前設定します」アクションを追加します

「Microsoft Word テンプレートを事前設定します」アクションは下図の通りに設定します。
ファイル以下の設定は、
それぞれの箇所に対応した動的コンテンツを選んでいきます。

新人の名前は「アイテムを作成または変更されたとき」の動的コンテンツから
「更新者DisplayName」を選択しましょう。
こちらでも動的コンテンツを選び間違えてしまうと、
<新人の名前>が、新人教育担当者の名前として反映されてしまうため注意が必要です!

全ての動的コンテンツを入れると下図の通りになります。

3.「ファイルの作成」アクションの追加
最後に、SharePointリストが反映されたWordファイルの保存先を設定します。ここで先ほど作成した「コメント付き」のフォルダを使用します。
まず、SharePointの「ファイルの作成」アクションを、
先ほど作成した「Microsoft Wordテンプレートを事前設定します」アクションの下に追加します。

SharePointの「ファイルの作成」アクションの詳細は、下図の通りに設定します。
ファイル名の「.docx」をつけ忘れないように気を付けましょう。
つけ忘れるとWordファイルとして開けなくなります。

4.テスト
テストを行う前に、目標予定リストに以下の内容の新規アイテムを追加します。目標予定リスト | 値 |
提出日 | 2021/08/30 |
2021/XX/XX~ | 2021/08/23 |
~2021/XX/XX | 2021/08/27 |
今週の予定 | テスト① |
今週の予定2 | テスト② |
今週の予定3 | テスト③ |
今週の目標 | テスト④ |
今週の目標2 | テスト⑤ |
今週の目標3 | テスト⑥ |
目標予定リスト | 値 |
提出日 | 2021/08/02 |
作業内容 | テストA |
作業内容2 | テストB |
作業内容3 | テストC |
達成度 | 100% |
達成度2 | 50% |
達成度3 | 80% |
課題点・反省点 | テストD |
TeamsまたOutlookにて、新人教育担当者へ承認要求が送られているか確認します。
コメントに「テスト0」と記入して承認を行います。
SharePointサイトに移動して、word化ライブラリのコメント付きフォルダを確認します。

ファイルを開くと値が差し込まれていることが確認できました!

以上で完成です!
まとめ
第4回のブログでは、以下の2つについて説明いたしました。- 2つのSharePointリストを取得する方法
- 取得したSharePointのリストからwordを作成する方法
より具体的な承認フローを作成することができました。
次回は、これらの内容を踏まえて アクティビティ図の③、
上長3名から承認をもらうフローを作成していきます。
最後までご覧いただきありがとうございます。
また次回もよろしくお願いします。 お疲れさまでした!
弊社では、Power Platformでのソリューションをご提案しています。
下記のフォームまたはサービス紹介ページから、ぜひ一度お問い合わせください!
▼ソリューション紹介ページ▼
※このブログで参照されている、Microsoft、Power Platform、Power Automate、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。