MoreBeerMorePower

Power Platform中心だけど、ノーコード/ローコード系を書いてます。

Teams向けAdaptive Card送信アクションのちょっとした裏技

はじめに

Power AutomateではTeamsにFlow botとしてAdaptive Cardを送信するアクションが4つあります。 大きくは2種類で、一つは送信して終わり、もう一つはチャンネル/チャットでユーザーのアクションを待つものです。

送信するだけのアクションは、残念ながら(?)、Adaptive CardのJSONを自分で書く、またはAdaptive Cardデザイナーで作成したJSONをコピペする必要があります。

一方の待ち受けがあるアクションでは、(試験的機能を有効にすると) Power Automateに組み込みのAdaptive Cardデザイナーが利用可能になります。 ただし、ユーザーからのアクションが得られるまで、アクションがおわらないという特徴もあります。

f:id:mofumofu_dance:20200414153751p:plain

今回ご紹介するのは、これらの2つの特徴をうまく利用して、

組み込みのAdaptive Cardデザイナーを利用しながらユーザーからの回答待ちをしない、送信アクションの実現方法です。

カスタムタイムアウトと終了(Terminate)

さて、アクションには、それぞれ設定に「タイムアウト」を指定する箇所があります。今回のテクニックでは、このタイムアウトを積極的に利用していきます。

f:id:mofumofu_dance:20200414154711p:plain
アクションのタイムアウト設定

上図の設定に PT1S を設定してあげましょう。これは PeriodTime1Second、つまりタイムアウトまでの待ち時間1秒という設定になります。

この設定により、このアクションは何がともあれ1秒でタイムアウトになる ようになります。

もう一つは「終了 (Terminate)」のアクションです。フローを分岐で終了させたりするときに使いますが、今回もFlowを正常終了とするために利用します。

終了時のステータスは「成功」とし、また、実行条件 (前のステップがどんなステータスを返したときに当該アクションを実行するか) にある 「タイムアウト時」をチェックします。

f:id:mofumofu_dance:20200414155233p:plain
終了アクションの実行条件の設定

勘のいい読者であれば、もう全体を予想できるでしょう。

ユーザーの応答を待つ、Adaptive Card送信アクションを使いつつ、タイムアウトを1Sにして、終了アクションで綺麗に終わらせる!

これで、面倒なJSONのコピペも不要になりますし、カード送信アクションの前のステップで取得した値も使いやすくなります。

f:id:mofumofu_dance:20200414155514p:plain

注意事項

すでに書いていますが、試験的機能はONにしてくださいね!