今日もローコードで業務改善をしたい

Power AutomateやPower Appsなど、Power Platformに関して学んだことを書いています。

未完了で期限が3日前で自分が割り当てられているPlannerタスク一覧をお知らせする

はじめに

この記事は、Microsoft Power Automate Advent Calendar 2024 12月11日担当分の記事です。
qiita.com


Plannerでタスク管理をしていて、タスクの期限が近づいたらTeamsで通知できるようにしたいという相談がありました。

以前Microsoft To Doで似たような記事を出しましたが、今回はPlannerバージョンを紹介します!
yuri365lily.hatenablog.com


こんな感じで、未完了で、期限が3日前で、自分が割り当てられているPlannerタスク一覧をTeamsでお知らせするフローになります。

フロー全体図


用意するもの

Plannerプラン

今回は自分が割り当てられているタスクすべてを対象としています。(プランは複数あってもOK)

フロー作成手順

1.Recurrence

Power Automateを開き「作成」→「スケジュール済みクラウドフロー」をクリックします。

任意のフロー名と開始日を設定します。
毎日フローを実行させたいので、繰り返し間隔は、1日とします。
「作成」をクリックします。

フローの作成画面になったら、以下を設定します。

Time Zone:(UTC+9:00)大阪、札幌、東京
At These Hours:フローを実行したい時間
At These Minutes:フローを実行したい分

2.マイタスクを一覧表示する

+をクリックし、「アクションの追加」よりPlannerの「マイタスクを一覧表示する」アクションを選択します。

このアクションで設定することはありません。

3.アレイのフィルター処理

+をクリックし、「アクションの追加」よりData Operationの「アレイのフィルター処理」アクションを選択します。

アクションが見つからない場合は、「ランタイム」を「組み込み」にして検索してください。

以下を設定します。
From:動的なコンテンツ(稲妻マーク)より、「マイタスクを一覧表示する」の「値」
「詳細設定モードで編集」をクリックします。

Filter Query:以下の式を貼り付けてください。

@and(
    less(item()?['percentComplete'], 100),
    and(
        not(empty(item()?['dueDateTime'])),
        greaterOrEquals(ticks(item()?['dueDateTime']), ticks(addDays(utcNow(), 3))),
        less(ticks(item()?['dueDateTime']), ticks(addDays(utcNow(), 4)))
    )
)

上記の式で未完了、期限が設定されている、期限が3日前のタスクを絞り込むことができます。

4.選択

+をクリックし、「アクションの追加」よりData Operationの「選択」アクションを選択します。

アクションが見つからない場合は、「ランタイム」を「組み込み」にして検索してください。

以下を設定します。
From:動的なコンテンツ(稲妻マーク)より、「アレイのフィルター処理」の「値」
Map:
 キー1:何もいれません
 値1:・

 キー2:タスク名
 値2:動的なコンテンツより「アレイのフィルター処理」の「値 タイトル」

 キー3:期限日時
 値3:以下式を設定

if(equals(item()?['dueDateTime'], null), '', formatDateTime(item()?['dueDateTime'],'yyyy/MM/dd'))

上記の式で期限日時をyyyy/MM/dd形式にしています。

5.HTMLテーブルの作成

+をクリックし、「アクションの追加」よりData Operationの「HTMLテーブルの作成」アクションを選択します。

アクションが見つからない場合は、「ランタイム」を「組み込み」にして検索してください。

以下を設定します。
From:動的なコンテンツより「選択」の「Output」

6.作成

+をクリックし、「アクションの追加」よりData Operationの「作成」アクションを選択します。

アクションが見つからない場合は、「ランタイム」を「組み込み」にして検索してください。

以下を設定します。

<a href = "Plannerのリンク">Plannerでタスクを確認する</a>


※Teamsに投稿するときにPlannerのリンクをつけたいだけなので、このアクションは必須ではありません。

7.チャットまたはチャネルでメッセージを投稿する

+をクリックし、「アクションの追加」よりTeamsの「チャットまたはチャネルでメッセージを投稿する」アクションを選択します。

以下を設定します。
投稿者:フローボット
投稿先:フローボットとチャットをする
Recipient:自分のメールアドレス
メッセージ:
未完了のタスク一覧をお知らせします。
動的なコンテンツより「HTMLテーブルの作成」の「Output」
動的なコンテンツより「作成」の「出力」


以上で、フローの作成は完了です。

実行してみる

毎日決まった時間に、未完了で、期限が3日前で、自分が割り当てられているPlannerタスク一覧がTeamsに投稿されます。

終わりに

今回はマイタスクすべてを取得しましたが、2個目のアクションを「タスクを一覧表示します」に変えることで、特定のプランだけを指定することも可能です。
他の人に割り当てられたタスクも通知する方法を調べていますが、わかったら共有したいと思います!