Power AutomatePower Platform

【Power Automate】残業申請フローを作る方法|アダプティブカード

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

スポンサーリンク

実現したいこと

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

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

残業申請フローの実行

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

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

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

承認・却下の選択

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

承認結果のチャット通知

※ 今回はデータソース (SharePointリストやExcel) へのデータ保存は実装しません。必要に応じて追加してください。

スポンサーリンク

フローの実装

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

申請フローの全体像

トリガーの作成

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

手動トリガーの作成

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

トリガーの次は、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"
        }
      ]
    },
    {
      "type": "TextBlock",
      "text": "[Designed by Power365Medium](https://power365medium.com/adaptivecard-application-flow/)",
      "size": "Small",
      "color": "Accent",
      "horizontalAlignment": "Right",
      "wrap": true,
      "spacing": "Large"
    }
  ],
  "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の技術を広めています!
デザインに力を入れて、見やすい・分かりやすい記事を投稿していきます

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