こんばんは。
本日情シスの方と飲みながらPower Appsで遊んでて得られた知見。
Adaptive Cards機能で変数を使う場合というか、
カードデザイナー内で変数値を参照できるようにする、
ということが理解できたので、自分用メモも込みで書いてみる。
※こちらの記事は試験的機能を含みますので承知おきください。
↓試験的機能に関してはコチラ
Power Automateで絶対おすすめの設定:『試験的機能 ON』 - MoreBeerMorePower (hatenablog.com)
全体像
ざっくりですが、
Power Appsで申請したらその内容を「含んだ」内容が
Power AutomateでAdaptiveCardsを用いて作成され応答を待機
その応答に対して分岐した反応をTeamsで通知するという内容です。
Power Automate
とりあえずPower Automateで承認の形をつくります。
とりあえず作ったのがこんなん。
ポイントは
「アダプティブカードうんぬん」ってactionと
「条件」actionです
まずはPower Appsトリガー作成してもらい、
次に「アダプティブカードをTeamsユーザーに投稿して応答を待機」actionを追加
下記の①~⑤を説明していきます。
①はPower Appsから拾ってきた値「承認者」を突っ込む予定なので、
テキストボックスをクリックすると下記「動的なコンテンツ」が現れるので、
「もっと見る」をクリック
そうするとPower Appsで確認というのが出てくるのでそちらを選択
※こちらはPower Appsの参照項目を変数として持つというコマンドなので、
基本的には一回「間違えて押しちゃっても」あとから編集はできません・・・
次の項目のメッセージの項目で「アダプティブカード内で呼び出したい表示名」を入力します。
そしてそれに応じたPower Appsでの呼び出す値を先ほどと同じ手順で選択していきます。
このとき、「値を入力」欄をクリックしてあげても関数ウインドウは出てこないため、
Ctrl+Spaceで無理矢理ウインドウを出します。
手順は以下、
入力出来たら下のような感じになります。
そうすると中の「…」というボタンから先ほどのメッセージ欄に記載したキーを取得できるようになります。
こちらで対応した箇所でキーを取得してカードを作成し、出来たら「カードの保存」
保存する前に、必ず承認ボタン/差戻ボタンの「id」を任意で設定してください。
画面がもとに戻るので、更新メッセージとカードの処理を選択してください。
次にこのカードの応答に対して分岐をさせたいので、
「コントロール」群から「条件」Actionを作成します。
条件Actionの中身を以下のように書きます。
左側に突っ込む式が「アダプティブカードの応答」を示す式になります
outputs('アダプティブ_カードを_Teams_ユーザーに投稿して応答を待機')?['body/submitActionId']
「アダプティブカードの応答」が「shonin」という値だったならば、
という条件が作れました。
あとは
「はい」の場合と「いいえ」の場合でActionを指定してあげたら終わりです。
ではPower AppsからPower Automateを紐づけます。
「保存」をしてPower Automateを閉じておきます。
Power Apps
続いてPower Appsを作成します。
下のような画面を作成します。
「申請する!」ボタン選択して「アクション」タブから「Power Automate」をクリック
そうすると先ほど作成したflowが選択できる状態になっていますのでクリックして追加
下のような式が追加されます。
さきほどのPower Automateの内容に合わせて表示させたいコントロール名をあてはめます。
これで手順は完了です。
プレビューしてボタンを押すと
Teamsの方に承認依頼がきます。
承認をすると下記のようにきちんと承認したことをメッセージで通知します。
Default設定ではいつまでもいつまでもこの応答を待ってくれるわけではなく、
タイムアウトまでの時間数をPower Automateの方で設定する必要がありますが、
それは覚えていたら別記事で書きたいと思います。
おわりに
はい!
ぶっちゃけHiroさんの記事がなければ絶対にやり方を思い出せなかったものですので、
自分用のメモとして書きました。
Hiroさんの記事はこちら↓
毎度毎度、超助かってます。
好きです!(告白)
結構需要があると思うんですよね承認ルートって。
これを応用すると多段階だとか作れちゃうので、別記事で余裕があったら書きます。
というところで今回は終わりにしておこうと思います。
Let's enjoy the world of Power Platform together!