Power AutomatePower Platform

【Power Automate】Power Appsなしで申請アプリを実装する(アダプティブカード)

今回は、Power Automateのみで簡易的な申請アプリを実装する方法をお伝えします。
ライセンスの関係などでPower Appsが使えない場合でも、アダプティブカードの技術を利用するとリッチな入力画面を用意できます。

スポンサーリンク

実現したいこと

完成イメージは次の通りです。

1. (申請者画面)申請フロー実行ボタンを押す

残業申請フローの実行

2. (申請者画面)Teamsチャットに届いたフォームに申請内容を入力する

フォームへの申請内容入力

3. (承認者画面)入力された申請内容が承認者に届くため、承認・却下を選択する

承認・却下の選択

4. (申請者画面)承認・却下の内容が申請者のTeamsチャットに届く

承認結果のチャット通知

フローの実装

フローの全体像は以下の通りです。

申請フローの全体像

トリガーの作成

トリガーは「手動でフローをトリガーします」を選択します。
(入力には特に何も追加しません)

手動トリガーの作成

アダプティブカード送信アクションの設定

トリガーの次は、Teamsコネクタの「アダプティブ カードを投稿して応答を待機する」アクションを追加します。
まずは「メッセージ」以外のパラメータを下記の通り設定しました。Recipientには動的なコンテンツから「ユーザーの電子メール」を選択します。

アダプティブカードアクションの設定

「メッセージ」パラメータにはアダプティブカードのJSONを設定します。今回は下記のようなJSONを入力しました。

{
    "type": "AdaptiveCard",
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.4",
    "body": [
        {
            "type": "TextBlock",
            "text": "残業申請",
            "wrap": true,
            "id": "残業申請",
            "size": "medium",
            "weight": "bolder"
        },
        {
            "type": "Input.Text",
            "placeholder": "承認者のメールアドレスを入力してください",
            "label": "承認者Email",
            "isRequired": true,
            "id": "承認者Email",
            "errorMessage": "適切なメールアドレスを入力してください"
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "Input.Date",
                            "label": "残業日",
                            "isRequired": true,
                            "id": "残業日",
                            "errorMessage": "適切な残業日を入力してください"
                        }
                    ],
                    "id": "残業日列"
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "Input.Time",
                            "label": "終業予定時刻",
                            "isRequired": true,
                            "id": "終業予定時刻",
                            "errorMessage": "適切な終業予定時刻を入力してください"
                        }
                    ],
                    "id": "終業予定時刻列"
                }
            ],
            "id": "残業日時列"
        },
        {
            "type": "Input.Text",
            "placeholder": "残業予定時間を入力してください",
            "label": "残業予定時間(h)",
            "isRequired": true,
            "id": "残業予定時間(h)",
            "errorMessage": "適切な残業予定時間を時間単位で入力してください"
        },
        {
            "type": "Input.Text",
            "placeholder": "残業理由を入力してください",
            "label": "残業理由",
            "isMultiline": true,
            "isRequired": true,
            "id": "残業理由",
            "errorMessage": "適切な残業理由を入力してください"
        },
        {
            "type": "ActionSet",
            "actions": [
                {
                    "type": "Action.Submit",
                    "title": "承認申請",
                    "id": "承認申請",
                    "style": "positive"
                }
            ]
        }
    ],
    "id": "残業申請カード"
}

ご自身でアダプティブカードを作成したい場合は、下記のリンクを参考にしてください。
直感的な操作でJSONを作成することができます。

承認アクションの設定

アダプティブカードの設定が完了したら、「開始して承認」アクションを追加します。
承認者に送信する内容をお好みで設定してください。

承認アクションの設定

条件分岐の設定

最後に条件分岐を追加し、承認結果(承認/却下)によって送信されるメッセージが変わるよう設定していきます。

条件式の左辺には、動的なコンテンツから「結果」を指定します。右辺には「Approve」と入力することで、承認/却下によって分岐が発生します。

条件分岐の設定

「はいの場合」「いいえの場合」には、それぞれTeamsコネクタの「チャットまたはチャネルでメッセージを投稿する」アクションを追加します。(動的なコンテンツを設定すると、必要に応じて自動でApply to eachで囲まれます)

承認時のチャットを設定
却下時のチャットを設定

トリガー用URLの取得

最後に、フローをトリガーするためのURLを取得しておきます。

今回作成したフローの詳細画面に入り、URLバーに表示されている「/details」以降のURLを「/run」に置き換えます。

詳細画面URLから実行画面URLへの変更方法

このURLにアクセスすると、実行用のページが表示されます。
頻繁に使うフローであれば、このURLをブックマークやTeamsのタブに入れておくとよいでしょう。

フロー実行画面

まとめ

今回の記事では、Power Appsなしで簡易的な申請アプリを作成する方法をお伝えしました。
アダプティブカードを使うことで、自由度・デザイン性の高い入力画面を用意することができます。途中で紹介したアダプティブカードのJSONをカスタマイズいただき、デザインの幅を広げていただければと思います。

スポンサーリンク
Hiromaru

普段からPower Platform・SharePointの技術を広めています!
デザインに力を入れて、見やすい・分かりやすい記事を投稿していきます

シェアする
タイトルとURLをコピーしました