Power Automateを使って勤怠登録リマインドフローを作成してみた

勤怠登録忘れを防止するため、また、マネージャーがグループメンバーの提出有無を把握するために、以下機能を組み込んだ「勤怠登録リマインドフロー」をPower Automateで作成しました。

  • Teamsチャネルにリマインド投稿
  • Microsoft Plannerにてタスク作成・管理

勤怠登録リマインドフローの概要

まずは、今回作成したフローで実現した機能の概要をご紹介します。

Teamsチャネルにリマインド投稿

月初かつ平日の9:00に、Teamsのチャネルに以下が投稿されます。

Microsoft Plannerにてタスク作成・管理

チャネルに投稿された後、メンバーに勤務表提出のタスクが割り当てられます。

ユーザーはこのタスクをPlanneで確認し、勤務表提出後、自分に割り当てられたタスクを"完了"とします。

フロー図

今回作成したフローのフロー図は以下の通りです。

作成手順

続いて、実際に、フローを作成する手順をご紹介します。

事前準備

Outlookの予定表で日本の休日を追加する

適切なタイミングに本機能を稼働させるため、日時判断処理をフローに追加します。

その処理を実施するために、Outlookの予定表機能へ「日本の休日」を追加する必要があります。

  1. Outlookを開きます
  2. [ファイル]>[オプション]>[予定表]にて[祝日の追加]を選択します
  3. [日本]のチェックボックスをオンにします。

Teamsにアプリタブを追加する

Microsoft Planner および Microsoft To Doにてタスク作成・管理を行うため、チームのチャネルへアプリタブを追加する必要があります。​

また、タスク管理場所として任意の名前のバケットを作成する必要があります。​

  1. Teamsを開きます
  2. 任意のチームを選択し、[タブを追加]から[Planner および To Do タスク]を追加する
  3. [新しいバケットの追加]から任意の名前のバケットを作成する。

フローの作成

1.[スケジュール済みクラウドフロー]を選択し、下記項目に任意の値を入力します。

  • フロー名
  • 開始日
  • 繰り返し間隔

今回は、平日の9:00に開始されるように設定しています。

2.[現在の時刻]→[タイムゾーンの変換]を追加し、日本時間に変更します。次に、Outlookの[イベントのカレンダービューの取得(V3)]を追加し、下記の通り設定します。

  • カレンダーID:日本 の休日
  • 開始時刻:[変換後の時間]
  • 終了時刻:[変換後の時間]

3.[変数を初期化]を追加し、下記の通り設定します。今回は3つの変数を使用します。

4.[条件]を追加し、条件とそれぞれの分岐の処理を設定します。

今回は月初の営業日にリマインドを実施したいため、月の5日以内かつ祝日ではないことを条件とします。

  • 条件:"And"条件にて2つの条件を設定
    • dayOfMonth(body('タイム_ゾーンの変換')) , 次の値以下 , 5
    • length(outputs('イベントのカレンダー_ビューの取得_(V3)')?['body/value']) , 次の値に等しい , 0
  • いいえの場合
    • [終了]でフローを終了する
  • はいの場合
    • Plannerの[タスクを一覧表示します]を追加し、TeamsのチームとPlannerのプランを選択して、対象のタスクリストを取得
    • 各タスク名を取得するために[Apply to each]→[文字列変数に追加]を追加し、下記の通り設定
  •  

5.次に、[Apply to each]の中に[条件]を作成し、タスクの達成率情報を設定します。

  • 条件:値達成率 , 次の値に等しい , 0
  • はいの場合
    • タスク状態を未完とする
  • いいえの場合
    • タスク状態を完了とする

6.[条件]を追加し、タスクの存在を確認するために、分岐を設定します。

ここでは、タスク一覧から情報を取得し、タスクが作成・実施されてるかを確認します。

  • 条件:"And"条件にて2つの条件を設定
    • タスク状態 , 次の値を含む , 未完
    • タスクタイトル , 次のもので終わる , "勤務表"提出
  • はいの場合
    • [終了]とする
  • いいえの場合
    • [時間から減算]→[変数の設定]を追加し、下記の通り設定
    • 今回は前月の勤務表のリマインドを実施したいため、1ヶ月減算を行っている。

7.[条件]を追加し、分岐を設定します。

今回はリマインドを月に1度のみ実施したいためため、完了タスク一覧でタスクの存在を確認しています。

  • 条件:"And"条件にて2つの条件を設定
    • タスクタイトル , 次に値を含まない , 今月タスクタイトル
    • タスク状態 , 次の値を含む , 完了
  • はいの場合
    • Teamsの[タグの@mentionトークンを取得する]→[チャットまたはチャネルでメッセージを投稿する]→[タグのメンバーを一覧表示する]を追加
  • いいえの場合
    • 処理無し

最後に、[Apply to each]の中にPlannerの[タスクを作成する]を追加して、タスクを作成します。

最後に

本記事では、Power AutomateをTeams、Microsoft Plannerと繋げてリマインド機能を作成する方法を紹介させていただきました。

今回のフローを作成するにあたって、祝日の判定方法や複数のサービスとの連携に苦労しました。

Power Automateを利用してリマインドフローを作成したい方の参考になれば幸いです。

なお、今回の手順を応用し、タスク管理にPlannerではなくMicrosoft To Doを利用する事も可能です。ぜひお試しください。

執筆担当者プロフィール
佐藤 鈴花

佐藤 鈴花(日本ビジネスシステムズ株式会社)

Csol本部 MW2部に所属。Microsoft製品にかかわる業務に携わっています。

担当記事一覧