2023年1月から、Livestyle では勤怠管理を Power Apps アプリでしています。
在宅ワークや休暇の登録はもちろん、出退勤時間の記録もできる便利なアプリを社内のエンジニアが作ってくれました😊

しかし、システムで管理をすると生まれる問題がヒューマンエラーによる入力漏れです。
打刻ボタンを押し忘れてデータ上出勤してないことになっていたり、翌日になって退勤していないことに気づいたり、といったミスが頻発😅

そこで自分用の打刻通知フローを Power Automate で作成してみました。

1.初代フロー(作成まで10分)

最初に作成した通知フローがこちらです。

わずか2ステップ! 作成時間はおよそ10分!
すぐに作って実用できるのが Power Automate の最大の魅力ですね。
(実はこの前に Windows  標準機能のタスクスケジューラを試してみたのですが、思った通りに動かず断念しました💦)

初代フローでは、毎朝始業前にボタンを押したか Teams でメンション付きでチャットしてくれて、忘れていた場合はすぐにアプリを開けるようにハイパーリンクを挿入しています。
しばらく利用していた初代フローですが、毎日毎日通知が届くため、徐々に煩わしくなってきました。
「せめて土日の通知は止めたいなあ」と思ってフローの改善を検討した結果生まれたのが二代目フローです。

2.二代目フロー(作成まで30分)

生まれ変わった通知フローがこちらです。

変数 [今日は何曜日] が、
 ├はいの場合:月~金
 └いいえの場合:それ以外

によって通知を出すか否かの分岐判断をさせるようにしました。

変数を規定している記述はこのようになっています。

int(dayOfWeek(addHours(utcNow(),9)))

それぞれの関数で何をしているかは下記の表をご参照ください。

関数利用目的記述例
int(‘<value>’)データ型をテキスト型から数値型に変換するint(’10’)
dayOfWeek(‘<timestamp>’)指定した日時の曜日を0~7(日~土)の数字で表すdayOfWeek(‘2018-03-15T13:27:36Z’)

※4(木曜日)が返ってきます。
addHours(‘<timestamp>’, <hours>, ‘<format>’?)指定した日時から指定した時間を加算/減算させるaddHours(‘2018-03-15T00:00:00Z’, 10)
utcNow(‘<format>’)グリニッジ標準時での現在時刻を取得する
※日本とは9時間の時差があります
utcNow()

本稿を書くにあたって Microsoft 公式の関数一覧を読んでいたところ、addHours よりも便利な addToTime という関数を発見しました。
前者は ”何時間” だけしか計算できませんが、後者は動かす単位(年・月・週・日・時間・分・秒)を指定できます。
1つの関数で計算できる幅が広いので、応用が利きそうですよね!

ところで、もっと簡単に通知の曜日を分ける作成方法があることにお気付きですか?

3.三代目フロー(作成まで5分)

実際に現在利用している通知フローがこちらです。

なんと二代目で自作した「曜日を判断する仕組み」は不要でした🤣

スケジュール済みクラウドフローのトリガー < Recurrence > の中で、フローの実行頻度を1週間の間隔に設定して詳細オプションを開くと……?

フローを実行させたい曜日だけを選択できる設定項目を発見!!

発想次第で自由にフローを作れる分、標準機能で足りることに気づかなかった作りこみ失敗ケースは前回の記事でもご紹介しています。

フロー作成の際には詳細オプションの確認をお忘れなく!