技術情報ブログ
Power Platform
2022.03.16

Power Apps キャンバスアプリ:承認機能の設計方針

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

Power AppsやPower Automateを用いて申請・承認を行うアプリを作成したことはありますか?
弊社でも、申請・承認アプリは特に要望の多いアプリの1つです。

承認機能を実装する際には、Power Automateの承認アクションを用いることが一般的です。
一方で、お客様からは「Power Appsのアプリ上で承認したい」という要望を頂くことも多いです。

そこで、今回は承認機能の設計方針について説明いたします。
Power Apps キャンバスアプリを設計にする際に参考にしていただけますと幸いです。

内容としては、既にPower Apps・Power Automateでアプリを作成したことがある方に向けた記事です。

 

承認機能の設計方針

承認機能を実装するには、以下の方針が考えられます。

以下では、それぞれの方法について説明します。

 

Outlook/Teams上から承認/拒否を実施

Power Automateの承認アクションを用いる方法です。
※承認アクション:「開始して承認を待機」アクションや「承認を作成」アクションを指します。

Power Automateでの承認アクション
Power Automateでの承認アクション

この方法を用いると、OutlookやTeams上で承認/拒否を実施可能となります。
(承認アクションを1つ設定するだけで、Outlook・Teamsへ同時に通知されます。)

Outlook/Teams上での承認画面
承認画面(左:Teams、右:Outlook)

メリットとしては、Power Automateの標準機能を用いて構築するため、実装の難易度が低いことが挙げられます。
また、承認者が都度アプリを起動する必要がないため、承認処理の手間は小さくなります。

一方、デメリットとしては、Power Appsのアプリ上では承認処理を行うことはできないことです。
よって、承認者が自身の未承認一覧を把握し、承認を行いたい場合、 「OutlookやTeams上で未承認の通知を探し出し、承認作業を実施する」という作業が必要となります。

上記を手間を減らすためには、Power Automateが標準で提供している承認画面を用いる方法もあります。
※標準の承認画面は、アプリに関係なく、そのユーザーが対応すべき全ての申請情報が表示されています。

承認画面のURLは、Office 365へログインし、Power Automate → 実施項目 → 承認 → 受信済みと進んだ際の画面です。
この画面で、自分が承認処理の行う必要があるアイテム一覧を確認し、承認/拒否を実施することができます。

Power Automate_承認画面のURL
Power Automate_承認画面のURL

 

Power Apps キャンバスアプリ上から承認/拒否を実施

Power Automateの承認アクションを用いることなく、自力で承認処理を実装する方法です。
Power Apps キャンバスアプリのサンプル画面を以下に示します。

Power Apps キャンバスアプリ上での承認画面
Power Apps キャンバスアプリ上での承認画面

メリットとしては、Power Apps キャンバスアプリ上から承認/拒否を実施させることが可能である点です。
よって、承認者が自身の未承認一覧を把握し、承認を行いたい場合、「キャンバスアプリ上で未承認一覧を把握→そのまま承認を実施する」というシナリオが対応可能です。

また、自力で実装するため、承認画面や機能をある程度自由に設計できる点も挙げられます。
(例:拒否を行う場合は、コメントを必須とするなど)

一方、デメリットとしては、Outlook/Teams上から承認/拒否の実施はできないことです。
また、自力で承認処理を構築するため、実装の難易度は高くなります。

キャンバスアプリ構築のイメージとしては以下です。

  • 申請者が承認処理を実施すると、承認者へメールを送信する。

    Power Automateにて、「申請ボタンを押下した際、承認者へメールを送信する」フローを作成します。
    また、送信するメールの中に、キャンバスアプリのURLと申請ID値を記載します。

    Power Apps上で承認する際のメール画面
    Power Apps上で承認する際のメール画面
  • 承認者用のキャンバスアプリは、URLに申請ID値が含まれている場合は、対象の申請詳細画面を開くように実装する。

    param()関数を用いて実装します。
    詳細は以下をご参考にしてください。

    Power Apps の Launch および Param 関数

     

  • 承認者用のキャンバスアプリでは、画面上に承認/拒否ボタン及びコメント用のテキストボックスを追加する。

    Power Apps キャンバスアプリ上での承認画面詳細
    Power Apps キャンバスアプリ上での承認画面詳細

    実際の運用を行う際には、以下の機能も実装することをお勧めします。

    1. 自身が承認者となっていない場合は、承認/拒否ボタンを非活性させる。

    2. 他の承認者が先に承認した場合、レコードが上書きできないように、データの排他制御処理を行う。

    Power Automateの承認アクションは自動的に排他制御(他の人が承認したら、自身は承認できなくなる)が実装されていますが、このような機能も自力で実装していく必要があります。

 

まとめ

今回紹介した対応方針について、メリット・デメリットを以下にまとめました。

 

メリット

デメリット

Teams/Outlook上から承認/拒否を実施

・実装の難易度が低い

・通知の文面上で承認ができるため、承認処理の手間が比較的小さい

・未承認一覧から承認を行う場合、手間が大きい
※Power Automateの承認画面から一覧の把握は可能
・承認画面や機能は固定

Power Apps キャンバスアプリ上から承認/拒否を実施

・未承認一覧から承認を行う場合、手間が小さい

・承認画面や機能をある程度自由に設計できる

・実装の難易度が高い

・アプリを起動した後承認を行うため、承認処理の手間が比較的大きい

 

参考:Teams/Outlook上、かつPower Appsキャンバスアプリ上から承認/拒否を実施することはできるのか?

参考として、上記2つの方法の組み合わせた方法が実装できるのかについて検討します。

TeamsやOutlook上で承認/拒否を行うことが可能であり、かつPower Appsのキャンバスアプリ上からでも同様の処理ができるイメージです。
実装の難易度としては、非常に高くなることが考えられます。

理由としては、前項で説明したデータの排他制御に加え、Power Apps・Power Automate間で承認処理の同期をとる必要があるからです。
(Power Apps上で承認した場合は、Power Automateの承認アクションを終了させるなど)

アプリを利用するユーザーの立場から考えると、一番使いやすいアプリになるかもしれませんが、
実装の難易度が格段に高くなるため、アプリを提供するまでの期間が長くなることやバグが発生しやすくなることを考慮すると、 前述した2つの方法のどちらかで対応することを推奨いたします。

ローコードアプリを作成する際の設計思想については、以下をご参考にしてください。

本記事では、承認機能の設計方針について説明しました。
アプリを設計にする際に参考にしていただけますと幸いです。

 

【こちらも合わせて読みたい】

 

 

弊社ではPower Platform(Power AppsやPower Automateなど)を用いてお客様の業務を自動化するご支援を数多く承っております。

業務の中で、「普段手動でやっている業務を自動化できないか」というような疑問がある場合には、お気軽にアーティサン株式会社までお問い合わせください。

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:小刀稱知哉

小刀稱知哉

大分県出身(温泉大好き♥♥)、現在は東京都在住

1990年4月9日生まれ

30才にしてメーカーの技術営業からIT業界にジョブチェンジ!!!

趣味は読書

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!

シェアする
記事カテゴリ
最新記事
 
2022.05.18

Power Automateのベストプラクティス・アンチパターン(4)【アクションの入れ子を回避】

 
2022.05.11

Power Automate:メール送信時にメッセージIDを取得する方法

 
2022.04.27

Power Apps の実践的なノウハウ まとめ

人気記事ランキング
1
2020.10.02

世界に広がる Power Apps「モデル駆動型アプリ」のココがスゴイ!【第1回】

2
2021.07.14

【Power AutomateでExcelデータをSharePointにインポートするために考えること 第2回】フロー作成でエラー発生!

3
2021.06.23

【Power AutomateでExcelデータをSharePointにインポートするために考えること 第1回】4つのシーンごとに手法を比較、その最適解とは?

4
2021.09.03

【Power AutomateでExcelデータをSharePointにインポートするために考えること 第8回】トリガーの条件の指定方法

5
2021.08.11

【Power AutomateでExcelデータをSharePointにインポートするために考えること 第5回】ExcelファイルIDを動的取得

   
PageTop
ページトップに戻る