Microsoft flowで会議室が普段と違うことを参加者にメールで通知

まだ一年目のペーペーの自分はまあ結構雑務をすることが多かったりします。ひとつひとつはそれほど重くないのでどうってことはありませんが気にせずに済むならそれに越したことはない。

会議室をおさえるのもそのうちの一つ。毎週開かれる会議はだいたい前もって数か月先まで同じ場所をoutlookでとっておくのですがたまにとれないことがあったり、、、、、

そういうときはみんなに「いつもと違うよー」って連絡を入れる必要があるのですがたまになので忘れてしまって直前に気づいてあたふたしたのが先週

社会人たるもの二度目のミスは許されない。でも自分はそれほどできた人間ではない\(^o^)/

よし、自動化しよう。

というわけでやっていきます。最近Microsoft flowPower Automateに名前変わったみたいですね。しかもなにやら強力になったとか、、、
新機能はまたアイデアが思いついたら使ってみたいですね

まず仮に会議が毎週木曜日の午後にあるとすると当日の午前に連絡するのがいいかなと思い、毎週木曜日の9時に動くようにスケジュール

コメント 2019-11-22 211514

次に自分の予定からイベントを取得

コメント 2019-11-22 212244

そしたらかなり大量のイベントデータをまとめてゲットできます。できれば上のフィルタクエリでフィルタリングしたかったのですがなぜか公式のドキュメントの通りにやってもうまくいかなかったんですよね、、、、、、
もう少し勉強して改善したいですが今は結果(自動化)が優先なのでどんなにダサくても実現することが大切。

コメント 2019-11-22 220648

というわけで個別にちまちまフィルタリングしました。必ず治すと誓います
見るのもつらいです、、、
フィルタ1:会議の名前でまずフィルタリング
このままだと過去、未来のこの会議のデータがすべてヒットするので
フィルタ2、フィルタ3で開催日時で当日に絞っています。


少しそれますがこのPower Automateの時間関係の設定がかなりわかりにくい
まずすべての時間がUTC(協定世界時間)なので必要ならば日本時間への変更などを考える必要があります。まあこれは+9時間するだけなのでそれほど嫌でもないです

一番嫌なのがフォーマットがかっちりしてること。定時刻を手で入力するためには“2019-11-22T21:55:25.5881245Z”というフォーマットで入力する必要がある。色々変換する関数は容易されているけれどももっと直感的に時刻をいれたい、、、、

たぶん一番楽なのは現在時刻を取得してそれを基準に関数で時刻設定すること。今回で言えば


まず現在時刻の取得が utcNow()
スケジューリングなどでflowを組んでいるとutcNow()で取得できる時間はだいたい予測できる。(今回だとUTCで0時+数秒、日本時間で午前9時+数秒

addDays( 時刻 , 日数):指定日数プラスする
addHours( 時刻 , 時間数):指定時間数プラスする
addMinutes( 時刻 , 分数):指定分数プラスする
addSeconds( 時刻 , 秒数):指定秒数プラスする

などの関数を用いて指定時刻を作ることができる。
今回は一日分の範囲でフィルタしたので

会議開始時刻:utcNow()以降
会議終了時刻:addDays( utcNow() , 1 )以前
としました。これで目的の会議が絞り込まれました。

最後に条件で会議の場所がいつもと違うかを判定してそれぞれに合った動作を設定します。普段は第一会議室で行われるという設定で条件をつけています。異なる場合はメール内に会議の場所を埋め込むことでどこに変更になっていても臨機応変に対応します。

コメント 2019-11-22 214948

会議の場所が通常通りでもなにかしらアクションするようにしました。
だってサービスが落ちたりしたせいで怒られたら悲しいじゃないですか笑

以上で設定は完了。保存してうまくいってることを何度かテストしたら来週の木曜日のお楽しみ、、、、

コメント 2019-11-22 224049

全体図

いいなと思ったら応援しよう!