Power Appsで郵便物管理アプリをつくってみた-Power Automate編-

更新日 : 2024年03月15日

エンジニアじゃなくてもできた!郵便物管理アプリの作成の流れをご紹介します。

前回のコラムでは、SharePointのリストをベースにしてPower Appsでアプリを作成する方法についてご紹介しました。

本コラムは最終回です。Power Appsのアプリから新しいレコードが追加されたら、Microsoft Teamsで宛先社員宛てにチャットが送付されるようPower Automateで自動化の設定をしてみます。


なお、前回のコラムをまだご覧になってない方は、下記からご覧いただけます。

目次

  1. 【Youtube】動画で作成の流れを紹介しています
  2. アプリ作成までの流れと本コラムのフェーズ
  3. Power Automateでフローを作成
    1. 大まかな流れ
    2. フローの作成
  4. つまずいたところ
  5. まとめ
前回のコラムはこちらからご覧いただけます

Power Appsで郵便物管理アプリをつくってみた-Power Apps編-

本コラムでは、Power Appsで郵便物管理アプリを作成してみた流れをご紹介します。第2話はSharePointのリストデータをもとにPower Appsでアプリを作成する方法をご紹介します。

コラムを読む≫

【YouTube】動画で作成の流れを紹介しています

アプリの完成イメージや操作の方法をYouTubeで動画を公開しています。動画自体は約15分程度の内容ですが、本コラムの内容は約5分でまとめています。ぜひ合わせてご覧ください。

アプリ作成までの流れと本コラムのフェーズ

本コラムでは、STEP3(オレンジ色の文字)フェーズにおける設定方法を紹介していきます。

STEP
Microsoft Excel
アプリのベースと社員のリストをExcelで作成します。
STEP
SharePoint
STEP 1で作成したExcelをSharePointのリストやドキュメントとしてアップロードします。
STEP
Power Apps
STEP 2で作成したリストをベースにアプリを作成します。受け取り社員情報については、STEP 2のドキュメントとデータ連携をします。
STEP
Power Automate
Power Appsに入力され、SharePointのリストに新しいレコードが追加された際、Power AutomateでMicrosoft Teamsのチャットを発報するように設定します。宛先社員情報については、SharePointのレコード情報から社員名を検索したり、STEP 2で作成したドキュメントからメールアドレス情報を検索したりします。

Power Automateでフローを作成

まずはフローの流れについて説明します。今回は、SharePointに記入されたレコードにある社員名をキーにして、社員マスタのリストからメールアドレスを取得し、Microsoft Teamsの宛先に指定します。社員名やメールアドレスをいれる箱として、変数を用意します。SharePointのリストをそれぞれ参照したり、変数が2つ出てくるので混乱してしまうかもしれませんが、順番に説明していきます。

フロー全体のイメージ図

Power Appsのアプリにあたらにデータを入力すると、SharePointのリストに反映されます。この記入されたレコードにある社員名をキーにして、社員マスタのリストからメールアドレスを取得し、Microsoft Teamsの宛先に指定します。社員名やメールアドレスをいれる箱として、変数を用意します。

大まかな流れ

Power Automateで設定、確認していく流れとしては大きく8項目あります。

  1. トリガーとして、「SharePointの項目が作成された時」を設定(アプリ作成用のリストに明細が新規で追加されたら)
  2. 変数の初期化(社員名、メールアドレス)
  3. SharePointの項目を取得(アプリ作成用のリスト)
  4. 上記データから新規に追加された明細の社員名を変数(社員名)に格納
  5. 社員マスタ(SharePointのドキュメントにアップロードしたExcel)の表内に存在する行を一覧表示する
  6. 4で取得した社員名をキーに社員マスタにあるメールアドレスを取得
    SharePointのリスト(社員マスタ用)から、4で抽出した社員名をフィルターキーに複数項目の取得
  7. 変数(メールアドレス)に6のデータを格納
  8. Microsoft Teamsでチャットの送信設定(宛先は7のメールアドレス、本文の宛先名に4の社員情報を使用)
  9. テスト

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をこれから導入したい、活用したいという企業のご担当者様はぜひお気軽にご相談ください。

関連サービス
JBサービス株式会社のここがすごい!

JBサービス株式会社のここがすごい!

Microsoftソリューションの導入・構築・運用は、JBサービス株式会社にお任せください。これまでの導入実績や保有資格、ご支援内容についてご紹介します。

詳しく »