Power Appsとadaptive cardsを使って作る承認フロー

こんばんは。

本日情シスの方と飲みながらPower Appsで遊んでて得られた知見。

Adaptive Cards機能で変数を使う場合というか、

カードデザイナー内で変数値を参照できるようにする、

ということが理解できたので、自分用メモも込みで書いてみる。

 

※こちらの記事は試験的機能を含みますので承知おきください。

↓試験的機能に関してはコチラ

Power Automateで絶対おすすめの設定:『試験的機能 ON』 - MoreBeerMorePower (hatenablog.com)

 

 

全体像

ざっくりですが、

Power Appsで申請したらその内容を「含んだ」内容が

Power AutomateでAdaptiveCardsを用いて作成され応答を待機

その応答に対して分岐した反応をTeamsで通知するという内容です。

f:id:hanakuso365:20210404011056p:plain

Power Automate

とりあえずPower Automateで承認の形をつくります。

とりあえず作ったのがこんなん。

ポイントは

「アダプティブカードうんぬん」ってactionと

「条件」actionです

f:id:hanakuso365:20210404013937p:plain

 

まずはPower Appsトリガー作成してもらい、

次に「アダプティブカードをTeamsユーザーに投稿して応答を待機」actionを追加

下記の①~⑤を説明していきます。

f:id:hanakuso365:20210404014245p:plain

①はPower Appsから拾ってきた値「承認者」を突っ込む予定なので、

テキストボックスをクリックすると下記「動的なコンテンツ」が現れるので、

「もっと見る」をクリック

f:id:hanakuso365:20210404014616p:plain

 

そうするとPower Appsで確認というのが出てくるのでそちらを選択

※こちらはPower Appsの参照項目を変数として持つというコマンドなので、

基本的には一回「間違えて押しちゃっても」あとから編集はできません・・・

 

f:id:hanakuso365:20210404014645p:plain

 

次の項目のメッセージの項目で「アダプティブカード内で呼び出したい表示名」を入力します。

そしてそれに応じたPower Appsでの呼び出す値を先ほどと同じ手順で選択していきます。

このとき、「値を入力」欄をクリックしてあげても関数ウインドウは出てこないため、

Ctrl+Spaceで無理矢理ウインドウを出します。

手順は以下、

 

f:id:hanakuso365:20210404015501p:plain

入力出来たら下のような感じになります。

 

f:id:hanakuso365:20210404015837p:plain

 

そうすると中の「…」というボタンから先ほどのメッセージ欄に記載したキーを取得できるようになります。

こちらで対応した箇所でキーを取得してカードを作成し、出来たら「カードの保存」

f:id:hanakuso365:20210404020157p:plain

 

保存する前に、必ず承認ボタン/差戻ボタンの「id」を任意で設定してください。

f:id:hanakuso365:20210404020722p:plain

 

画面がもとに戻るので、更新メッセージとカードの処理を選択してください。

f:id:hanakuso365:20210404020251p:plain

 

次にこのカードの応答に対して分岐をさせたいので、

「コントロール」群から「条件」Actionを作成します。

f:id:hanakuso365:20210404020412p:plain

 

条件Actionの中身を以下のように書きます。

 

f:id:hanakuso365:20210404021313p:plain

左側に突っ込む式が「アダプティブカードの応答」を示す式になります

 


 outputs('アダプティブ_カードを_Teams_ユーザーに投稿して応答を待機')?['body/submitActionId']
  

 「アダプティブカードの応答」が「shonin」という値だったならば、

という条件が作れました。

 

あとは

「はい」の場合と「いいえ」の場合でActionを指定してあげたら終わりです。

ではPower AppsからPower Automateを紐づけます。

「保存」をしてPower Automateを閉じておきます。

Power Apps

続いてPower Appsを作成します。

下のような画面を作成します。

f:id:hanakuso365:20210404023007p:plain



 

「申請する!」ボタン選択して「アクション」タブから「Power Automate」をクリック

 

f:id:hanakuso365:20210404022120p:plain

 

そうすると先ほど作成したflowが選択できる状態になっていますのでクリックして追加

下のような式が追加されます。

f:id:hanakuso365:20210404022300p:plain

 

さきほどのPower Automateの内容に合わせて表示させたいコントロール名をあてはめます。

f:id:hanakuso365:20210404022849p:plain

 

これで手順は完了です。

 

プレビューしてボタンを押すと

Teamsの方に承認依頼がきます。

f:id:hanakuso365:20210404023103p:plain

承認をすると下記のようにきちんと承認したことをメッセージで通知します。

f:id:hanakuso365:20210404023212p:plain

 

Default設定ではいつまでもいつまでもこの応答を待ってくれるわけではなく、

タイムアウトまでの時間数をPower Automateの方で設定する必要がありますが、

それは覚えていたら別記事で書きたいと思います。

おわりに

はい!

ぶっちゃけHiroさんの記事がなければ絶対にやり方を思い出せなかったものですので、

自分用のメモとして書きました。

Hiroさんの記事はこちら↓

mofumofupower.hatenablog.com

 

毎度毎度、超助かってます。

好きです!(告白)

 

結構需要があると思うんですよね承認ルートって。

これを応用すると多段階だとか作れちゃうので、別記事で余裕があったら書きます。

というところで今回は終わりにしておこうと思います。

 

Let's enjoy the world of Power Platform together!