PowerAutomate x Outlook x Teams | カレンダー | 本日の予定を連絡する
- 2022.06.14
- Power Automate
今日も今日とてPowerAutomateの検証です。
今日は Outlookのスケジュール情報を取得して、Teamsへ連絡する方法を調べます。
作りたいモノ
今回は、手動でフローを起動した際、Outlookに登録しているカレンダーのうち、当日のスケジュールのみ抽出し、Teamsに報告する流れを作ります。
Outlookは以下の様なスケジュールの場合
Teamsに以下のような通知がされればOKです。
作ったフロー
以下のようなフローを作ってみました。
時差対応がめんどくさい…
今日のデータを取得するためには、utcNow()関数を使いますが、日本時間から9時間前の時間が戻り値となります。
日本時間にするには「addHours(utcNow(),9,’yyyy-MM-dd’)」とする必要があります。
※addHoursは時間を加算(減算)する関数で、記述は「addHours(時間, 追加する時間, フォーマット)」となります。
①今日の日付を取得
addHours(utcNow(),9,'yyyy-MM-dd')
②カレンダー情報を取得する
イベントの取得(V4)を利用します。
今日のカレンダー情報を取得するには「フィルタークエリ」を利用します。
フィルタクエリは「oData」で書きますが、書き方は以下を参照ください。
フィルタクエリ
(私の場合だけかもしれませんが…)Outlook365から取得できるカレンダーのイベント情報が、Outlookから見た場合は日本時間ですが、PowerAutomateで取得したデータは「9時間」の時差が発生していました。そこでフィルタリングする際も、以下のような表記を行いました。
今日の日付(例:2022/06/03 00:00:00)から -9時間した日時「以上(ge)」
今日の日付+1日(例:2022/06/04 00:00:00)から-9時間した日時「未満(lt)」
Start/datetime ge '@{addHours(variables('Today'),-9)}'
and
Start/datetime lt '@{addHours(addDays(variables('Today'),1),-9)}'
並び替え順
oDataのorderbyクエリを記載します。今回はStart時間で昇順としたいため以下のように記載します。
Start/datetime asc
③データ格納用の変数を初期化
以下の変数3つを初期化します。
④Jsonデータを作成する
Teamsに投稿する際、HTMLテーブルで通知します。
そのためにデータをJson形式で作成します。
カレンダーのイベント情報から取得される時間は「9時間」の時差が含まれている状態なので、以下の処理を行っています。
開始時間↓
addHours(variables('Kaishi'),9,'yyyy/MM/dd HH:mm:ss')
終了時間↓
addHours(variables('Syuryo'),9,'yyyy/MM/dd HH:mm:ss')
⑤HTMLテーブルを作成し、Teamsに投稿
HTMLテーブルの作成を行い、その出力結果をTeamsに投稿します。
次回の記事ではGoogleカレンダからのデータ取得→Teams投稿の方法を検証します。
以上です。
エラー: データの取得に失敗しました。
-
前の記事
Power Automate | Json形式のデータ変換 | CSVファイルの生成 2022.06.09
-
次の記事
PowerAutomate x Googleカレンダー x Teams | 本日の予定を連絡する 2022.06.14