LoginSignup
4
3

More than 3 years have passed since last update.

Microsoft Flow を使って正常性レポートをTeams に書き込む

Last updated at Posted at 2019-10-14

はじめに

このフローではPREMIUM コネクタである「HTTP」アクションを使っているため、実行ユーザー用に有償の Flow per user プランのライセンスがひとつ必要です。

完成イメージ

正常性レポートに掲載されている内容を自動でTeamsに書き込みます。

Microsoft 365管理センターにおける「正常性レポート」画面に表示されている内容と同じです。APIで取得したデータをフィルタすることで、正常性レポートと同じ件数・同じ内容になるようにしています。

実装

Microsoft Flow でフローを作成します。
フロー全体の流れは以下の通りです。

image.png

フロー開始 ~ 障害情報を取得まで

ここまでの設定については、以下の記事がとても分かりやすいです。
この投稿では割愛します。

image.png

障害情報のうち「復旧済み」「事後報告」または「誤検知」であるものを除外する

管理センターに表示されるレポートに合わせるためにフィルタを行います。

@not(or(equals(item()?['Status'], 'Service restored'), equals(item()?['Status'], 'Post-incident report published'), equals(item()?['Status'], 'False positive')))

障害情報をHTML形式の表に変換する

表にします。
「発生日時」と「最終日時」はUTC から日本時間に変換します。

発生日時
formatDateTime(convertTimeZone(item()?['StartTime'], 'UTC', 'Tokyo Standard Time'), 'yyyy/MM/dd HH:mm')
最終更新日時
formatDateTime(convertTimeZone(item()?['LastUpdatedTime'], 'UTC', 'Tokyo Standard Time'), 'yyyy/MM/dd HH:mm')

Teams に投稿するためにスタイルを調整する

作成した表を見やすくするためにスタイルを調整します。
Teams ではStyle タグが使えないので、THやTDをインラインスタイル付きのタグに置き換えます。

表の罫線を表示するためにスタイルを変更する
replace(body('障害情報をHTML形式の表に変換する'),'<table>','<table border="3" bgcolor="87ceeb">')
表の列名を折り返し禁止にするためにスタイルを変更する
replace(outputs('表の罫線を表示するためにスタイルを変更する'),'<th>','<th style="white-space:nowrap;padding:7px">')
表のpaddingを広げるためにスタイルを変更する
replace(outputs('表の列名を折り返し禁止にするためにスタイルを変更する'),'<td>','<td style="padding:7px">')

メッセージを投稿する

あとは「出力」をTeams に投稿するよう設定します。
件名に現在の日時をいれておきます。これで完了です。

現在日時
formatDateTime(convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),'yyyy/MM/dd HH:mm') 

完成イメージ(再掲)

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3