動機
自分の会社ではメールで週報をチーム内で送付しており、これが期限通りに出されているか部門内でチェックしている。これまではそれは手動集計していたが、手間もかかるのでPowerAutomateで自動化したい。
中身の確認はまた別の話題として、ここでは期限までに間に合っているか、のみを確認する。
またそもそもそういう形式の週報は時代遅れ、みたいな話もあると思うが、いったんそれも置いておく。
Listの準備
結果を登録するためのListを作成する。
項目 | 種類 | 補足 |
---|---|---|
タイトル | 文字列 | デフォルトであるカラムなので適当に使う |
受信日 | 日時 | |
送信者 | ユーザー | |
週報の対象期間 | 日時 | |
判定 | 選択肢 | OK, Late, Too Late |
判定は文字列でもいいのだが、選択肢の方がListを見たときに色で識別できて、なんとなくわかりやすいので選択肢にしている。
ワークフロー作成
全体感は以下
新しいメールが届いたとき(V3)
これはそのまんまなので割愛。仕訳ルールなどで、特定のフォルダに仕分けしておいた方がやりやすいだろう。
条件4(RE:の除外)
これもほぼそのままだが念のため。もっとうまい方法ありそうだけど。
変数を初期化する(週報の対象期間の初日を取得)
split(triggerOutputs()?['body/subject'], ' ')[4]
自分の場合、件名にその週報が対応する期間の記載があるので、この方法で対象の期間を指定している。以下のような件名から、「2022/06/27」を抜き出す。
例: 【チーム名】[文字列] - 週報 2022/06/27 - 2022/07/03 XXXX
変数を初期化する2(何日遅れか)
int(split(dateDifference(triggerOutputs()?['body/receivedDateTime'],formatDateTime(variables('期間'))),'.')[0])
こちらのような式で、提出がどのくらい遅れているかを整数で取得する。
変数を初期化する3(遅れ具合の判定)
いったん遅れ具合を判定する変数を作る。定義時に細かい条件分けできないので、いったんOKをデフォルトとして、受け皿を作る感じ。
条件2(遅れ具合の判定)
自分の場合、翌週の火曜日までに提出するので、9日遅れまでをOKとして、2週間以上の遅れをToo Lateとしている。
項目の作成
後は用意したListに追加するだけ
さらに
List化しているので、これをPower BIなどで可視化するとより見やすくなるだろう。
またこれだと、「そもそも出していない」人は識別できないので、注意が必要。