Microsoft Flowを使ってリマインド作業を自動で行う(応用編)

前回はMicrosoft Flowを使ってリマインド作業を自動で行うフローを作成しましたが、いろいろなやり方ができるので条件文を使った、少し応用したフローを今回は作ってみたいと思います。

#1つリマインドにつき、１つのフローを作らないといけないのか

前回の設定方法だと、メール送信時に本文を指定して書きますのでリマインドすることが複数あれば複数のフローを作成します。また、「条件が新しいイベントを作成した時」という条件でしか判断できないので複数のリマインド用のフローを作成すると違うリマインドのフローも重複して起動されてしまいます。ですので極力１つのフローで複数リマインドを実行できるような設計にしていく必要があります。

#Switch case文で実現

Microsoft Flowには、処理を順序どおり行う機能だけでなく、処理の前にその時点の状態に応じて処理を分岐させることができます。それを実現するにさまざまな方法がありますが今回はSwitch Case文を使って実現したいと思います。

Switch Case文とはある値を元に処理を振り分けてくれる処理になりますので、これで様々なバリエーションに対応できるようにしたいと思います。


![WS000056.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/05f966ea-1256-2eec-4154-9dbf042812fd.jpeg)

#フローの作成

まず、前回どおりトリガーとなる処理を作成します。Outlookのリマインド用のカレンダーを参照します。

![WS000034.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/0870344e-5dd2-059c-c5ba-d8cc24ed1dd1.jpeg)


![WS000037.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/c9a576c6-8716-71d3-e25c-61676828d347.jpeg)


次にSwitch Case文を挿入します。


![WS000035.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/e97ef64d-5503-2830-c7ce-90874a71340c.jpeg)

少し分かりにくいですが「さらに追加」から「スイッチケースを追加する」を選択してください。そうすると以下のような画面が新規で追加されます。


![WS000038.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/844dacfb-af09-eb94-636d-4584f922d3f0.jpeg)

「オン」というところに判断元の項目を設定します。今回はカレンダーで設定したタスクの件名を設定します。



![WS000039.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/9e05aeba-7b57-9883-2e85-465154c38f86.jpeg)


![WS000040.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/280bfd7b-88ee-fff3-3a60-6c606f135dc0.jpeg)


その次にケースの場所に該当する件名の条件を記載します。まず最初のケースは「月末締め作業」を定義します。

![WS000042.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/5bfeddf4-7220-b06d-1c79-10dcf59a14e0.jpeg)

その際に実施するアクションはメールの送信とし、件名と本文を前回同様に記載します。

次に、Outlookの件名が違う場合のケースの考慮を追加します。

今度は月末の締め作業とは別に売上表の更新をお願いする作業をリマインドするケースです。その場合はプラスボタンでケースを追加します。

本文の内容をその都度変更したい場合などは毎回フローを直す必要が発生する場合は、以下のようにOutlookのスケジュールに登録したタスクの本文を「動的なコンテンツの追加」から引用することができます。（件名も同じように引用できます。）
※本文をtextで引用する場合は「本文のプレビュー」、htmlで引用したい場合は「Content」を選択する。

![WS000054.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/85ae5f76-12cc-309d-5734-83f024f7d54d.jpeg)

最後はケース１、２の条件に満たない場合、つまり誤って件名を設定したがためにメールが対象者に送信されなかった場合は、その自体に気づく必要があるので自分に対してエラーの内容をメール送信します。それが一番右の「規定」という箇所になります。以下のようにいつ設定したリマインドが送信されていないかを確認するために送信開始時間（スケジュール登録した時間）やその件名、本文がわかるように設定しておきます。

![WS000055.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/0791bca7-a2e3-b0cd-b57a-4a7386ec6aa5.jpeg)

これで設定完了です。

#Outlookスケジュールの設定

まずはケース１の月末締め作業のリマインド設定用のOutlookスケジュールはこちら。フロー側に件名や本文を設定しているので空ですね。キーワードとして件名に「月末締め作業」と設定されています。

![WS000048.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/8bbe26f5-f062-8e6a-ba5e-724523b4a366.jpeg)

次にケース２のリマインド設定として売上表の更新がありましたが、これは件名と本文を取得する方法でした。ですので本文には以下のように毎月変わるような内容のメッセージが入ります。


![WS000049.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/6d98a12e-a002-f31e-6702-a20c915aaf91.jpeg)


最後にセミナーの申し込みのリマインドを送付の設定をしています。これはケース１・２にはないケースなのでエラー発生用です。

![WS000047.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/12f4e195-b634-a346-f1d6-4b389b414af5.jpeg)

これで、リマインドの設定は完了しました。

#フローの実行

フローを実行すると、以下の3通のメールが送付されます。まず設定した宛先に対して月末締め作業と売上表のリマインドメールです。（今回は宛先は私自身となっています。）

![WS000058.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/b8ff9fb0-160e-a0b6-1bb9-7e4a928514b4.jpeg)

![WS000059.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/acd529ff-c8e3-4fa6-e6fb-f37f17780739.jpeg)

最後に私宛にエラー通知メールが送信されています。

![WS000060.JPG](https://qiita-image-store.s3.amazonaws.com/0/159178/0e7ad023-557d-d1a8-1700-0f52eb236d01.jpeg)



これで確認完了です。

#まとめ

突き詰め始めると、いろいろとやりたいことが思い浮かびます。この辺を自由にできないところがノンプログラミングのデメリットの１つだとは思います。とはいえMicrosoftFlowもリリースされたばかりでそのあたりのニーズを収集していたりしますので、直接要望を出してみたいと思います。