Power Appsで郵便物管理アプリをつくってみた-Power Automate編-
更新日 : 2024年12月02日
前回のコラムでは、SharePointのリストをベースにしてPower Appsでアプリを作成する方法についてご紹介しました。 本コラムは最終回です。Power Appsのアプリから新しいレコードが追加されたら、Microsoft Teamsで宛先社員宛てにチャットが送付されるようPower Automateで自動化の設定をしてみます。
|
目次 |
Power Appsで郵便物管理アプリをつくってみた-Power Apps編-
![]() |
本コラムでは、Power Appsで郵便物管理アプリを作成してみた流れをご紹介します。第2話はSharePointのリストデータをもとにPower Appsでアプリを作成する方法をご紹介します。 |
【YouTube】動画で作成の流れを紹介しています
アプリの完成イメージや操作の方法をYouTubeで動画を公開しています。動画自体は約15分程度の内容ですが、本コラムの内容は約5分でまとめています。ぜひ合わせてご覧ください。
アプリ作成までの流れと本コラムのフェーズ
本コラムでは、STEP3(オレンジ色の文字)フェーズにおける設定方法を紹介していきます。
Power Automateでフローを作成
まずはフローの流れについて説明します。今回は、SharePointに記入されたレコードにある社員名をキーにして、社員マスタのリストからメールアドレスを取得し、Microsoft Teamsの宛先に指定します。社員名やメールアドレスをいれる箱として、変数を用意します。SharePointのリストをそれぞれ参照したり、変数が2つ出てくるので混乱してしまうかもしれませんが、順番に説明していきます。
フロー全体のイメージ図
大まかな流れ
Power Automateで設定、確認していく流れとしては大きく8項目あります。
- トリガーとして、「SharePointの項目が作成された時」を設定(アプリ作成用のリストに明細が新規で追加されたら)
- 変数の初期化(社員名、メールアドレス)
- SharePointの項目を取得(アプリ作成用のリスト)
- 上記データから新規に追加された明細の社員名を変数(社員名)に格納
- 社員マスタ(SharePointのドキュメントにアップロードしたExcel)の表内に存在する行を一覧表示する
- 4で取得した社員名をキーに社員マスタにあるメールアドレスを取得
SharePointのリスト(社員マスタ用)から、4で抽出した社員名をフィルターキーに複数項目の取得 - 変数(メールアドレス)に6のデータを格納
- Microsoft Teamsでチャットの送信設定(宛先は7のメールアドレス、本文の宛先名に4の社員情報を使用)
- テスト
1.トリガーの作成
![]() |
01.Power Automateにログインします。 |
![]() |
02.「+作成」をクリックし、「インスタントクラウドフロー」をクリックします。 |
![]() |
03.ポップアップが表示されたら「スキップボタン」をクリックします。 |
![]() |
04.画面真ん中の「トリガーの追加」をクリックします。 |
![]() |
05.検索フィールドに「sharepoint」と入力し、SharePointの項目の「さらに表示」をクリックします。 |
![]() |
06.トリガーから「項目が作成されたとき」をクリックします。 |
![]() |
07.STEP 1で作成したSharePointのリスト(アプリ作成用の)を選択します。 |
2.変数の設定
1.社員名を格納する変数の初期化
![]() |
01.+(項目が作成された時)をクリックして、「アクションの追加」をクリックします。 |
![]() |
02.検索フィールドに「変数」と入力し、「さらに表示」をクリックします。 |
![]() |
03.「変数を初期化する」をクリックします。 |
|
04.「変数を初期化する」の箇所をクリックすると項目名を編集できますので、後で見た時に何の項目を初期化しているのかわかりやすいように加筆します。「Name」項目に、送付先の社員名を格納する変数の名称を適当につけます。「Type」項目は「String」を選択します。 |
2.メールアドレスを格納する変数の初期化
|
01.+(項目が作成された時)をクリックして、「アクションの追加」をクリックします。 |
|
02.検索フィールドに「変数」と入力し、「さらに表示」をクリックします。 |
![]() |
03.「変数を初期化する」をクリックします。 |
![]() |
04.「変数を初期化する」の箇所をクリックすると項目名を編集できますので、わかりやすいように加筆します。「Name」項目に、送付先の社員名をメールアドレスを格納する変数の名称を適当につけます。「Type」項目は「String」を選択します。 |
3.新たに追加されたデータから社員名を取得し、変数(社員名)に格納
![]() |
01.+(項目が作成された時)をクリックして、「アクションの追加」をクリックします。 |
![]() |
02.検索フィールドに「sharepoint」と入力し、「さらに表示」をクリックします。 |
![]() |
03.「項目の取得」をクリックします。 |
|
04.SharePointのアプリ作成で使用したリストを選択します。IDのところは、雷マークをクリックすると、IDが選択できます。 |
|
05.+(項目が作成された時)をクリックして、「アクションの追加」をクリックします。 |
|
06.検索フィールドに「変数」と入力し「変数の設定」をクリックします。 |
|
07.Name項目には、STEP 11で作成した変数名を選択します。Value項目には、SharePointの「宛先社員名」を選択します。 |
4.社員マスタの情報からメールアドレスを取得し、変数(メールアドレス)に格納
|
01.+(項目が作成された時)をクリックして、「アクションの追加」をクリックします。 |
|
02.検索フィールドに「excel」と入力し、Excel Online (Business)の「さらに表示」をクリックします。 |
|
03.「表内に存在する行を一覧表示」をクリックします。 |
![]() |
04.STEP 1で作成したSharePointのドキュメントにアップロードした社員マスタ情報を選択します。 |
![]() |
05.+(項目が作成された時)をクリックして、「アクションの追加」をクリックします。 |
![]() |
06.検索フィールドに「sharepoint」と入力し、SharePointの「さらに表示」をクリックします。 |
![]() |
07.「複数項目の取得」をクリックします。 |
![]() |
08.SharePointのリストで社員マスタのリストを選択します。フィルタークエリの項目に「(アプリ作成用のSharePointリストの宛先社員名の列名) eq '(変数:社員名)'」と入力します。 列名の調べ方は次の項目で解説します。 |
※列名の調べ方
![]() |
01.SharePointで社員マスタ用のリストを開きます。右上の歯車マークをクリックし、「リストの設定」をクリックします。 |
![]() |
02.列の一覧から宛先社員名の情報が入っているNameをクリックします。 |
![]() |
03.URLの後ろに「&Field=」という記述があり、この=以降の文字が列名です。(この画像でいうとTitle) |
設定方法の続き
![]() |
04.+(項目が作成された時)をクリックして、「アクションの追加」をクリックします。 |
![]() |
05.検索フィールドに「変数」と入力し「変数の設定」をクリックします。 |
![]() |
06.Nameの項目に変数のメールアドレスを選択し、ValueにはSharePointの項目の取得からMailを選択します。 |
![]() |
07.+(項目が作成された時)をクリックして、「アクションの追加」をクリックします。 |
5.Microsoft Teamsでチャットの送信設定
![]() |
01.検索フィールドに「teams」と入力し「さらに表示」をクリックします。 |
![]() |
02.「チャットまたはチャネルでメッセージを投稿する」をクリックします。 |
![]() |
03.投稿者のプルダウンから「フローボット」を選択し接続先は「Chat with Flow bot」を選択します。Recipientは変数のメールアドレスを選択します。Messageの項目にはチャットで送りたいメッセージ内容を記載します。 |
6.テスト
![]() |
01.保存ボタンをクリックし、テストボタンをクリックします。 |
![]() |
02.手動を選択し、テストボタンをクリックします。PowerAppsで作成したアプリから、適当に1明細追加します。 |
|
03.テストが無事完了しました。各アクションに緑のチェックマークがついています。 |
|
04.Microsoft Teamsのチャットに投稿されました。 |
つまずいたところ
Power Automateを設定している中でいくつかつまずいたところがありますので、対応策を備忘録として残します。
1.複数項目の取得でエラー
エラーとして「列 '〇〇〇'が存在しません。他のユーザーが削除した可能性があります。」と表示されてしまったときは、列名の指定が正しくない可能性があります。SharePointリストの該当列名を日本語にしてしまった場合は、「OData_」を列名の前につける必要があります。
2.Microsoft Teamsでチャットが飛ばない
エラーとして「Bot Framework に対する要求がエラーにより失敗しました: '{"error":{"code":"ConversationBlockedByUser","message":"User blocked the conversation with the bot."}}'。」と表示された場合、受信側のユーザーにMircrosoft TeamsのアプリでWorkflowsを追加してもらい解決しました。
3.同じメッセージが2通飛ぶ
テストをした際に受信者へ同じ内容のチャットが2つ同じメッセージが飛んでしまいました。確認したところ、Microsoft Teamsのアクションに繰り返し処理(ループ)がかかっていたため、削除したところ解決しました。
まとめ
Power Appsで郵便物管理アプリをつくってみた流れを3話にわけてご紹介しました。
知見のある方からすると「もっと効率の良いやり方がある!」「なんでこの機能を使わない!」などさまざまなご意見があるかと思いますが、プログラミング経験のないスタッフでもここまで簡単に作れる、というPower AppsやPower Automateの魅力が伝わりますと幸いです。
JBサービス株式会社ではMicrosoft製品の構築や運用を得意としたエンジニアが多数在籍しています。Microsoft 365をこれから導入したい、活用したいという企業のご担当者様はぜひお気軽にご相談ください。