SharePoint x PowerAutomate x Teams | タスク管理リスト登録→通知の仕組みを作る ~Part2~

SharePoint x PowerAutomate x Teams | タスク管理リスト登録→通知の仕組みを作る ~Part2~

今回は前回の記事の続きで、SharePointのリストで作業の完了報告を行った際に、Teamsへ返信する流れを作ります。

今回も検討段階ですので、今後修正する可能性がありますが、悪しからず。

前回の記事をご覧になっていない方は以下からどうぞ。

リストのステータス変化を検知する

今回、状態が「未着手」から「完了」に変わったことを検知したら、Teamsの依頼元投稿に返信するフローを作ります。

ステータスが変更されると、以下の様にアダプティブカードが返信されます。

PowerAutomateの設計

今回のPowerAutomateのフローは以下の通りです。

①アイテムが作成または変更されたとき

監視対象のSharePointサイトとリスト名を指定します。

②条件:「はい」の場合「チャネル内でアダプティブカードを使用して返信する」

条件は2つ設定しています。以下の2つが成立した場合に、「はい」の中身が実行されます。

・クローズフラグ=0

・状態=完了

クローズフラグ

今回のアクションは「SharePointを更新・作成」した際に実行されるアクションです。

下記(1)の場合に、チャネルへの通知を期待しているのですが、クローズフラグを導入しない場合は(2)の場合でも通知が出てしまいます。

(1)状態が「未着手」→「完了」で保存された場合

(2)状態が「完了」のままだが、別の項目が更新された場合

今回は、上記(1)が最初に成立したタイミングで通知することとし、通知が完了しているか否かを管理するために「クローズフラグ」を導入しました。

ですので、後述しますが「項目の更新」でクローズフラグを0→1に変更させています。

アダプティブカード

今回もアダプティブカードを追加します。不明な場合は前回の記事をご覧ください。

{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.2",
    "body": [
        {
            "type": "TextBlock",
            "text": "処置完了しました",
            "weight": "Bolder"
        },
    ],
    "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "リンクへ飛ぶ",
            "url": "@{triggerOutputs()?['body/{Link}']}"
        }
    ]
}

また、前回同様、このアクションは投稿先を「カスタム値でChannelと入力」しないとエラーになります。

設定した項目は以下の通りです。基本的にはアクション「アイテムが作成・更新されたとき」で取得できるSharePointの項目をそのままコピーします。

ただし、クローズフラグを「0から1」に変更します。

挙動

以下の様に「未着手」を「完了」にした場合に、Teamsへ返信されることを確認できました。

以上です。