Power Apps ポータルを利用した開発について

こんにちは。プロアクシアコンサルティングでオープンソリューション事業部に所属しています D.T です。
今日は、Microsoft のローコード開発ツールである Power Apps ポータルを利用した開発について紹介していきたいと思います。

プロアクシアでの役割とこれまでの経験を教えてください

社会人になった当時は、コンピューター関係とは異なる業種で働いておりましたが、2018年にプロアクシアコンサルティングに入社し、オープン系の開発エンジニアとして働いています。

入社当時は、Web システムを中心に企業向けの業務システムの開発を担当しておりました。
その後、Microsoft より Power Platform がリリースされ、2019年にユーザー様で Power Apps の PoC を行うのをご支援したことを切っ掛けに、Power Platform を利用した開発を担当するようになりました。

現在は、Power Platform を利用したシステム開発を中心に担当しながら、お客様自身で開発を行なえるようになるための研修の実施や、お客様と一緒に伴走型で開発を行いながら技術面での支援をする案件なども担当しております。

Power Platform とはどういった製品ですか

Power Platform は Microsoft が提供するローコード開発ツールで、主にクラウド上でのアプリケーション開発を行うための製品群となっています。
Power Platform は日々開発が進められおり、継続して機能や製品の拡充がされています。導入当初は3種類の製品でしたが現時点では下記の5種類の製品で構成されております。

  • Power Apps : アプリケーション開発ツール
  • Power Automate:自動ワークフロー作成ツール
  • Power BI:データ解析/可視化ツール
  • Power Virtual Agent:チャットボット開発ツール
  • Power Pages:Web ページ開発ツール(プレビュー)

Power Platform の特長として、ブラウザー上の GUI を利用して比較的容易に開発が行えるように設計されています。このため、開発ツールを購入することなくある程度の IT の知識のある人であれば、アプリケーション開発をすることが可能で、社内業務のデジタル化、社内データの活用、ペーパーレス化など、色々な要望にあわせたアプリケーション開発に利用されています。

今回のテーマ―である Power Apps ポータルは Pawer Apps で提供されている開発手法の一つで、組織内外のユーザーへ公開可能な Web サイトを構築を行うための機能です。

  • キャンバスアプリ:ドラッグ&ドロップで画面を自由に作成し、Excel のように関数を活用することでアプリケーションを開発します
  • モデル駆動型アプリ:準備された画面構成を利用して、データソースに接続して利用するアプリケーションを開発します
  • Power Apps ポータル:フォームなどを組み合わせて、組織内外のユーザーへ公開可能な Web サイトを構築します

Power Apps ポータルとはどういった製品ですか

Power Apps ポータルは組織内外に公開できる Web サイトの構築、管理をするためのツールで、Microsoft Build 2022 でプレビューで公開された Power Pages が Power Apps ポータルの進化版となっております。

データべースに Dataverse を利用し Power Apps ポータルで Web ページを開発することで、組織内外からデータにアクセスできる Web アプリケーションを構築することができます。
Power Apps ポータルには複数のテンプレートが準備されており、一から Web ページを作成しなくても、容易に開発ができるようになっています。

Power Apps ポータルには、Web ページの開発だけでなく認証やアクセス権管理などを設定するための機能が準備されており、セキュリティ関連の環境構築が容易に行えるようになっております。

Power Apps ポータルの認証機能

Power Apps ポータルは外部にも公開することもあり、外部ユーザーを管理・認証するために複数の認証方法が準備されています。

  • Azure AD 認証
  • 外部の ID プロバイダー
  • ローカル認証(非推奨)

OpenID Connect、SAML 2.0、OAuth 2.0 などのプロトコルを利用することで、 Facebook、LinkedIn、Google、Twitter、Microsoft などの外部の ID プロバイダ―を利用した認証が可能となります。これにより、ユーザーがすでに持っているユーザー情報を活用して認証を行うことが可能となります。

ローカル認証につきましは、機能としては提供されておりますが推奨されておらず Azure AD B2C を利用した認証環境を利用することが推奨されております。

Power Apps ポータルのアクセス権

Power App ポータルのアクセス権の設定方法は、Web ページ毎とデータ毎の2種類があります。

Web ページごとのアクセス権設定では、誰がどのページを表示できるのかを設定でき、データごとのアクセス権は誰がどのデータにアクセスできるのかを設定できます。

Web ページごとのアクセス権設定する Web ロールは、管理者、認証ユーザー、匿名ユーザーの3種類がありそれぞれのユーザーに合わせて表示するページを制限できます。
また、データ毎のアクセス権を設定することで、認証済のユーザーであっても自分のデータしか参照できないように制御することができます。

Power Apps ポータルの得意な点

Power App ポータルの強みとしては、外部ユーザー向けの公開サイトを構築するための機能が標準で準備されており、短期間にローコードで Web ページの開発ができるところです。
特に、多数のユーザー向けに申請などのシンプルな業務を提供されている業態のシステム化に適しています。

たとえば、自治体などでは多くの住民向けに多くの申請業務を受け付けております。受付で確認や相談しなければ対応できない業務には向いていませんが、申請書類を提出するだけの物や、予約をすることで後日担当者から連絡して処理を行うような業務については、Power Apps ポータルを利用してシステム化することが可能です。

また、短期での開発が可能なため、非常事態などで緊急で新しい受付業務が発生した場合でも、早期にシステム化し利用を開始することが可能です。

Power App ポータルのもう1つの強みとしましては、開発と展開が簡単に素早く行えることです。
Power App ポータルの開発環境自体はすべてクラウド上のサービスとして提供されていますので、開発用サーバの構築や PC への開発ツールのインストールは不要で、ブラウザ環境さえあれば開発することが可能です。

また、開発した Web ページも開発ツール上でバージョン管理され、GUI 上で操作するだけでリアルタイムに公開することが可能です。このように、開発環境の準備や展開作業が短期間で容易にできることで、開発全体の作業期間をさらに短縮することができるようになります

Power Apps ポータルの苦手な点

ローコード開発ツールでブラウザ上の GUI での開発することもあり、大規模なアプリケーションの開発はあまり得意ではありません。

開発途中で変更があった場合などに一括しての修正ができないため、開発規模が大きいほど修正箇所の特定と変更作業に多くの工数を要することになります。
また、開発内容の変更管理を行う場合においても、修正前後の変更差分を取得するなどの機能が標準で提供されていないため、変更履歴を開発ツールで管理することはできません。

開発内容についても、複雑な業務処理や厳密なトランザクション処理が必要になってくるような業務などの開発はあまり得意ではありません。

Power Apps と Power Automate と連携させたり、JavaScript を用いて開発することで複雑な処理の開発も可能ですが、ローコード開発の観点からでは少し特殊な開発になるため、それなりの開発スキルが必要になってきます。

自社開発される場合などは、できるだけ業務をシンプルにして標準機能だけで開発できるようにすることが望ましいです。

Power Apps ポータルでの開発について

Power Apps ポータルを利用したシンプルな機能のサイトを構築するのに、どのぐらいの工数で開発できるか紹介したいと思います。

下記のサンプルは、自治体で行っている粗大ごみ収集の受付を Power App ポータルを利用してシステム化した場合のデモサイトです。開発した機能は、収集依頼を新規登録する機能、登録した内容を編集する機能、申請一覧を参照する機能になります。

これらの機能を実装するために、以下の項目を作成しています。

項目個数詳細
データベース
テーブル
2個・粗大ごみ収集申請テーブル ・品物テーブル
Web ページ6個・ホーム ・粗大ごみ収集申請 ・申請一覧
・申請新規 ・申請編集 ・申請詳細
基本フォーム6個・粗大ごみ収集申請 入力フォーム ・品物 入力フォーム
・粗大ごみ収集申請 編集フォーム ・品物 編集フォーム
・粗大ごみ収集申請 表示フォーム ・品物 表示フォーム

今回のデモサイトの画面デザインの決定及び機能の実装を行うのにかかった時間は約12時間です。
このように、シンプルな機能であれば2日もあれば開発することができます。

まずはメインとなる機能をシンプルに開発してみて、ユーザーに利用してもらいながら機能追加や改善などを考えるのがいいと思います。

また、外部向けの申請機能だけではなく、申請内容に対して社内で実施する業務処理をモデル駆動型アプリで開発し、業務全体のシステム化や効率化に取り組んでみてはいかがでしょうか。

Power Apps ポータルを利用した導入事例

弊社が担当した Power App ポータルを利用した開発事例としましては、HP 上のソリューション事例で紹介させていただいております、経済産業省様のオンライン行政手続のプラットフォーム (gBizFORM) を利用した「JIS マーク表示制度 登録認証機関(産業標準化法) 手続」の電子申請手続環境の構築があります。

詳細につきましては、下記のサイトをご覧ください。
【導入事例】経済産業省様 Microsoft Power Platform を利用した行政手続のオンライン化 | proaxia-consulting K.K.

ローコード開発を成功させるためにどのようなアプローチを行われますか

上記にもあるようにあまり複雑な業務の開発には向かないため、開発する機能についてはできるだけシンプルにできるようにお客様と調整することを心掛けております。

また、開発から公開まで素早くできることを活かして、できるだけお客様に実物の画面を見てもらいながら仕様のすり合わせや機能改善の相談をすることで、より短期間でお客様の要望に適した開発を行えるよう取り組んでいます。

ローコード開発ツールを利用することで、導入後のアプリケーションのメンテナンスや機能拡張など作業をお客様自身で行うことを望まれることも多いです。
このため、設計の段階で Power App ポータルの特性や制限を説明しながら、できるだけ特別な開発は行わずに標準機能だけで実現できるように相談しながら仕様を決定するようにしてます。

開発の中で気を付けているところ、こだわっているところ

個人的には、UI/UX にこだわりを持って開発をしています。

Power App ポータルの開発では、外部公開すること前提にしたアプリケーションになるため、多くの人が情報が見やすく操作しやすい画面構成を心掛けるようにしています。

開発者目線ではより多くの情報を一つの画面内に埋め込みがちですが、利用者目線では必要な情報のみ一覧で見れて、あとの詳細は別画面で見れた方がわかりやすい場合もあります。特に最近はスマートフォンでの利用が増加していることもあり、Web アプリケーションもスマートフォーンの画面サイズや操作性を意識する必要があります。

このため、配色や配置などのデザインを勉強し、見やすさと操作性を向上させるための取り組みを行っています。

今後エンジニアとして、どのように成長していきたいとお考えですか

今興味を持って勉強している物としては、英語と簿記と UI/UX があります。

英語については、言語を習得すること自体が楽しいこともありますが、IT の新しい知識を得るためには海外のサイトを調べることも多いので、英語で直接情報を理解できるようになるためにも勉強を進めています。

簿記については、システムを課題を抱えるクライアントに提供し続けるためには必要な知識です。優れた技術が備わったシステムを開発する思い(=「ロマン」)を持つこと必要ですが、システムの開発にかかるコストや運用コスト(=「そろばん」)も意識しなければなりません。将来仮にリーダーやマネージャーの立場として働く場合には、「ロマン」と「そろばん」をバランスよく持っていたいと思い簿記を勉強しています。

UI/UX に関する知識は、ユーザーにより良いアプリの使用体験を提供するために必要なものです。より多くの情報を優先度をつけて正確に伝えるにはどのようにすればいいのか、どういった配置や配色が好まれるのか、どういったサービスを提供するとユーザーにとっていい体験を得られるのか。Web サイト・モバイルアプリに限らず、日々利用する店舗なども観察するようにしています。

英語、簿記、UI/UX はそれぞれ別々の分野ですがこれらの技能と IT の技術を生かして、カスタマーやクライアントが抱える課題を解決していけるようになっていきたいと考えています。