Powerapps

PowerApps for Office 365を活用して業務アプリを作ろうとして挫折した話

Powerappsを含めて、マイクロソフトのソリューションには複雑なライセンス体系が存在します。

Powerappsにも複数のライセンスが存在します。

詳しくはこちらのサイトにまとめられています。

https://memo.tyoshida.me/power-platform/powerapps/unofficial-powerapps-flow-license-chart/

Powerapps for office365というライセンスはMS365を導入している企業ではだいたい追加コストが必要なく使えるプランです。

Powerapps for office365活用して業務アプリを作成しようとしたときの話を記事にします。

最初はPowerappsの存在もよく知らなかったので、今はやりのローコードプログラミングが無料で使える環境にあるので使ってみよう思いました。

ここからPowerappsを含めて、マイクロソフトのfor office 365ライセンスによる制約によりかなり苦しむことになりました。

ちなみにfor office 365ではないプラン(全機能が利用できるプラン)はユーザあたり一か月4,350円なのでかなり高額です。

10,000人規模とかの企業に導入する場合、1か月で4,350万円。1年間で5億2,200万円かかる計算になります。

これはとんでもない金額になるので、社内アプリをすべてPowerappsに移行するとか、かなり意思をもってやらないとできるレベルではありません。

逆に小さい企業で社内アプリをPowerappsですべて内作していこうというような場合は現時点ではオススメできます。

話を戻して、全機能のライセンスとfor office365のライセンスの価格にこれだけの差があるということは、当然のことながら使える機能にも大きな差があるのです。

私が最初にぶち当たった大きな壁

それは

例えばオンプレミスのシステムのリソースに接続することがほぼできないことです。

無料で提供されているコネクターはかなり限られていてMS365の世界に閉じてしか使えません。

例えば、既存の企業で業務システムを利用しようとした場合には、当然データはデータベースに格納されています。

そのデータベースに接続しようと思うとライセンスが必要になってくるのです。

これでは話にならないので、次に考えた対策

オンプレミスのデータベースの値をPowerapps for office365が接続できるデータベースに同期する

ただ、for office365が利用できるデータベースはエクセルオンラインやSharepointOnlineのリストとかがメインです。

現在はProject OakdaleがTeams上で構築した場合は利用できるので少しは改善しているようです。

まずは、同期の方法を検討するのですが、ここで考えたのがPowerautomateを利用してオンプレミスのデータをSharepointOnlineのリストに同期することを検討しました。

こちらもライセンスが必要なのですが、Powerautomateプランは比較的安価なので検討の余地はありました。

同期にも色々と問題はあったのですが、同期した後にデータベースとしてSharepointOnlineのリストを活用してアプリを組むことを検討しました。

ここで現れるもう一つの壁

SharepointOnlineのリストやエクセルオンラインをデータソースに利用した場合には、格納するレコード数が5,000件を超えてくると様々な問題に直面してきます。

詳細は記載しませんが、仮にオンプレミスのデータを同期できたとしても、正直とても使えるようなものではありませんでした。

次なる対策

PowerBIのレポートの中にPowerappsのアプリを埋め込むことができます。

  1. オンプレミスからのデータを抽出するのはPowerBIで。
  2. 抽出したデータを加工するのはPowerappsで。
  3. オンプレミスのデータソースにデータを書き込むのはSharepointOnlineのリストを経由してPowerautomateで戻す。

これは結構うまく動いたのですが、

PowerBIもライセンスが必要なので注意が必要です。

E5ライセンスをすべてのユーザが保有している場合はこの方法はある意味では使えると思います。もしくはPowerBIのプレミアワークスペースのライセンスを保有している場合ですね。

でも、どういうアプリを作りたいかによるのですが、画面のUIはPowerBIのダッシュボード上にPowerappsを組み込むので画面遷移とかがどうしても作りたいように作れない場合が出てきます。

PowerBIのレポートも色々な方法で画面が遷移しているように見せかけることはできるのですが、やはり違う用途もものを無理に使うと今後苦労しそうなので断念しました。

ここで私が気になったフルスペックのPowerappsの実力

for office365ではない、完全な機能が利用できるPowerappsの場合はどういうことができるのか??

試用版があるので試してみました。

ここで私は驚きました。

オンプレミスのあらゆるデータソースに簡単に接続することができて、それを簡単に操作することができるのです。

さらにはCommon data serviceというものが利用できるようになるのですが、これが半端じゃないくらいに優れた仕組みなのです。

このCommon data serviceという仕組みが如何に優れた仕組みであるかを理解するためにはPowerBIとかExcelに実装されているPowerQuery利用した経験が必要です。

Powerqueryを利用すると、すばらしく簡単に色々なデータソースに接続して、自分の取得したいデータを加工して取得することができるのです。

正にデータインテグレーションという言葉が当てはまるソリューションなのです。

私の経験上、その昔に数億かけて作っていた複雑なSQLの実行が必要だったシステムがほんの少しのUIの操作でできてしまうのです。

さらにはその取得したデータに対して、さまざまな変更を加えていくことができるPowerappsの開発の簡単さにさらに驚きました。

ここで私はfor office 365でアプリを作ることを断念

for office 365の機能制限の中で色々と苦労して設計することは、後々の仕様変更も含めて耐えられるアプリにはなり得ないと思ったからです。

逆に使えるものならPowerappsのすべての機能を活用して、すべてのアプリを外注するのをやめて内作してしまえばどれほどの費用対効果が出るのかと考えるとわくわくしました。

これはあくまでオンプレミスに存在するデータソースに接続する必要があるアプリを作る場合の話です。

for office 365の機能でもProject Oakdaleもリリースされているのでデータソースをfor office365のコネクターで接続できるところに置ければかなり色々なアプリケーションがfor office 365の無料で使える中で作成することができます。

ローコードプログラミングの他のソリューションというものを私がまださわったことがないのですが、Powerappsを含むPowerplatformとは以前にスクラッチ開発でアプリケーションを開発したことがある人からすると実にとんでもない可能性を秘めているソリューションです。

今回私は、業務アプリを作るという点では断念しましたが、継続してこのソリューションを使いこなせるようにしていこうと思います。

SQLをゴリゴリ組んでいるような方でもし、PowerBIを経験したことがなければ、ぜひ一度お試しください。

あまりのすごさに。。。。