memomoji | nanamoji

Microsoft365周辺、Power Appsの勉強、備忘録

Power Automateで今月分の進捗を入れていない人に通知を送る 前編

わたるふさんの、「20220618_Microsoft Formsのフォームに回答していないひとに対する催促を自動化した話 | ドクセル」を拝見して、自分も毎月入力チェックして督促しているものがあるので作ってみようと思いましたが、色々と簡単にはいかなかったのでメモを残しておきます。

やりたいこと

目標リスト

  1. 毎月1日に、担当者欄の人全員に登録依頼通知を送信する。

  2. 毎月3日に、前月結果欄が空白のものがある担当者に督促通知を送信する。

「mokuhyou2022」はSharePoint Listsです。 今回の記事では1だけを扱います。2はまだこれからです。

おそらく2をやろうとするには、リストを「目標リスト」と「月別結果リスト」の2つに分割して、月別結果リストは1つの目標に対して複数行になるような、いわゆる縦持ちにする方が扱いやすいと思います。ですが、利用者にListsの操作に慣れて欲しいという思いもあり、エクスポートや自動化が各自で好きにできるよう、あえて1つのリストのまま進めたいと思っています。

実装

全体像

フローの全体像です。

1. スケジュール済クラウドフロー

毎月1日の12時に設定しています。翌営業日に見てもらえばいいので曜日は気にしていません。(苦情が来たら検討します)。

2. SharePoint > 複数の項目の取得

目標リストを取得します。

ODataフィルタークエリを使用したらいいんじゃないかと警告が出ますが、このリストの行数が大量になることはないので無視しました。

※2022.08.20追記  気ままに勉強会で、警告の回避方法を教えていただきました。フィルタークエリに「ID gt 0」と入れておきます。「ListsのIDが0より大きい」なので結果は全件になりますが、警告は消えました。感謝です。

3. データ操作 > 選択

選択

上で取得したリストのうち、「担当者」しか使わないのでこの列だけを選択します。次の手順で担当者の重複を除くのに必要な手順です。

4. データ操作 > 作成

作成

3で取得した担当者列から重複を省きます。下記の数式を入れています。

union(body('選択'),json('[]'))

unon関数だと思うけど2個目の配列なんてないぞ? と調べたら、こちらのQiita記事に行きつきました。

Power Automateで一意なデータを取り出す方法 - Qiita

そして、「気ままに勉強会」でMiyake Mitoさんに教えてもらったような気がします。

5. データ操作 > JSONの解析

JSONの解析
Miyake Mitoさんに教わって使えるようになったやつです。

ここまでのデータは「 "担当者": "masaoka@xxxxx.onmicrosoft.com"」という形になっていて、そのままTeamsチャットの宛先に入れてもエラーになります。なので、キーと値のセットから値だけを取り出します。

出力された担当者データ

「サンプルから生成」のところに、4.作成 の結果をペタリと貼り付けておしまいです。

6. Teams > チャットやチャネルにアダプティブカードを投稿する

Teams
チャットの宛先を、JSONの解析で得た「担当者」にすると、勝手に Apply to each で囲まれます。

アダプティブカードの作り方は省略します。これもMiyake Mitoさんに教わって使えるようになったものです。

結果

結果
こんな感じで、ちゃんと担当者にフローボットからアダプティブカードが送られました。この人の目標は2行ありますが、通知は1通だけです。

担当者が決まっているなら別リストにするような方法もあると思いますが、本来は目標進捗入力の担当者はチームのリーダーなのですが、メンバーに担当を委譲する例があります。担当変更の依頼を受けるのも面倒なので、目標ごとに担当者欄を設けています。

目標の進捗が入力されているかを調べて督促する担当の人がいるのですが、月初は忙しいらしくその担当者に督促する仕事が発生してしまうので自動化しました。自動化万歳。督促担当者にはもっとクリエイティブな仕事をやってもらうべきです。

Power Automateを使ってフローボットで督促すると、「わかりました必ず入力します」といった特に返信の必要のないものが届かないのもメリットですね。

作った人の名前は出てしまうので問合せがくる可能性はありますが、「これってどうやってるの? 自分もやりたいんだけど」と言ってもらえれば万々歳です。

謝辞

記事にしながら、周囲の方々から教えてもらったことばっかりで出来ているなと思いました。

気ままに勉強会 - connpass

主催のたなさん、運営のMiyakeさん、登壇されたわたるふさん、Qiitaの記事を書いてくださったh-nagaoさん、その他諸々のお世話になった方々に感謝します。ありがとうございます。