アプリ開発の調査にかかる
時間を削減したい
内製化支援サービス
アプリを自分たちで
作成できるようになりたい
DX人材育成プログラム
プロに開発を依頼したい
アプリ開発導入支援サービス
SharePoint デザイン拡張サービス
X-SP Style
モダン化から運用管理までサポート
移行・モダン化コンサルティング
Power Appsでアプリを作成する際、SharePointリストやDataverseを用いることが多いと思いますが、もちろんそれ以外の外部DB(例:SQL Server・MySQL・PostgreSQLなど)と連携することも可能です。
それぞれの連携方法に応じて、できること・できないことが異なりますので、今回はPower Appsが外部DBと接続する方法について調査した結果を紹介します。
※あくまで私が調査した結果を紹介していますが、他の方法などあるかもしれません。
もしほかの方法などあれば、連絡してもらえればと思います(笑)
連携方法一覧
今回紹介する連携方法の一覧を表にしました。
Power Appsと外部DBを連携する方法は、全部で5パターンあるかと思います。
連携方法
Dataverseの仮想テーブルを作成し、外部DBとPower Appsを接続する方法
データフローを用いて、外部DBとDataverseの実テーブルを連携し、Power Appsと接続する方法
Power Automateを用いて、外部DBとDataverseの実テーブルを連携し、Power Appsと接続する方法
前提:今回の構成
今回はローカルPC上にSQL Serverを構築しています。 また、SQL Server上のテーブルについて、Power Appsのキャンバスアプリ・モデル駆動型アプリと連携させています。
作成したSQL Server上のテーブル情報は以下の通りです。
列名 | 内容 |
---|---|
id | 主キー |
prefecture_name | 県名 |
capital_city | 県庁所在地名 |
※注意※
ローカルPC上のDBとPower Appsを連携する際には、オンプレミスデータゲートウェイが必要となります。
今回もオンプレミスデータゲートウェイを用いていますが、本ブログの主題とは無関係なため、 構築などの詳細については省略しております。
オンプレミスデータゲートウェイの詳細については、以下URLを参照してください。
オンプレミス データ ゲートウェイとは
以降では、それぞれの連携方法について紹介します。
直接接続
最初に、直接接続する方法です。
こちらはPower Apps キャンバスアプリでのみ対応可能な方法です。
SharePointやDataverseと接続する手順と同様に、キャンバスアプリのデータ → データの追加から外部DBと連携している接続情報を追加します。
こちらの方法で接続する場合、アプリを使用するユーザー数分の有償ライセンスが必要となります。
※注意※
アプリを開発するユーザーの有償ライセンスが必要と思っている方がたまにいらっしゃいますが、 開発するユーザーではなく、アプリを利用するユーザーの有償ライセンスが必要となります。
またこちらの連携方法では、アプリと外部DBが相互同期されます。
相互同期とは、以下の挙動を示します。
外部DB側のCRUD操作が、Power Apps側にも反映される
Power Apps側のCRUD操作が、外部DBにも反映される
仮想テーブル
続いては、Dataverseの仮想テーブルを用いて接続する方法です。
こちらは、Power Apps キャンバスアプリでも、モデル駆動型アプリでも対応可能な方法です。
Dataverseの仮想テーブルとは、テーブルのスキーマ情報のみがDataverseに保存されている状態のテーブルのことを指します。
※実際のレコードデータについては、外部DBに保存されたままとなります。
仮想テーブルの詳細については、以下URLを参照してください。
外部データ ソースからのデータを含む仮想テーブルの作成および編集
Dataverse内で仮想テーブルを作成し、アプリ側では作成した仮想テーブルを用います。
こちらの方法で接続する場合は、アプリを使用するユーザー数分の有償ライセンスが必要となります。
また、アプリと外部DBが相互同期される構成となります。
データフロー
続いては、データフローを用いて、外部DBとDataverseの実テーブルを連携し、Power Appsと接続する方法です。
こちらの接続方法についても、Power Apps キャンバスアプリ・モデル駆動型アプリどちらでも対応可能な方法です。
Dataverse内に実テーブル(仮想テーブルとの違いをわかりやすくするため、「実テーブル」と表記します。)を作成し、 データフローを用いて、外部DBから定期的に実テーブルへ値を反映させます。
データフローの詳細については、以下URLをご参照ください。
Microsoft Power Platform でのデータフローの作成と使用
こちらの方法で接続する場合は、アプリを使用するユーザー数分の有償ライセンスが必要となります。
また同期方法ついては、外部DBからDataverseへデータが連携されるのみとなります。
よって、以下のような挙動となります。
外部DB側のCRUD操作については、Dataverse側(=Power Apps側)へ反映される
※データフローを設定する際、「クエリ出力に存在しない行を削除します」をオンにすることで、外部DBのDelete操作をDataverse側へ反映させることができます。Power Apps側のCRUD操作は、外部DBに反映されない
仮想テーブルと実テーブルを用いる方法の違い
前項で説明して仮想テーブルを用いる方法と、データフローを用いて実テーブルを用いる方法の違いについては、 以下のような点があるかと思います。
連携方法 | 構成 | メリット | デメリット |
---|---|---|---|
仮想テーブルを用いる方法 | レコードデータは外部DBのみに保存される | ・Dataverse内の容量を削減できる | ・データのCRUDが低速 |
実テーブルを用いる方法 | レコードデータはDataverse内にも保存される | ・データのCRUDが高速 | ・Dataverse内の容量が増える |
仮想テーブルを使用する際の制限事項については、以下URLをご参照ください。
仮想テーブルを使用する際の考慮事項
詳細については上記URLを見ていただければと思いますが、私が着目した点は以下です。
仮想テーブルは、、、監査をサポートしていない
計算列をサポートしていない
テーブルの所有者は「組織」のみ
フィールドレベルセキュリティをサポートしていない
Power Automate(Dataverse)
続いては、Power Automateを用いて、外部DBとDataverseの実テーブルを連携し、Power Appsと接続する方法です。
前述した接続方法の場合は、データフローを用いてDataverseの実テーブルと連携しましたが、こちらの方法ではデータフローの代わりにPower Automateを用いて連携しています。
使用できるアプリの種類や必要なライセンス数、同期方法については、データフローを用いて、Dataverseの実テーブルを作成し、接続すると同様です。
本手順については、一応紹介はしてはいますが、データフローの機能を越えるような内容は無いのではないかと思っています。
ただし、Power Automateで連携部分を自作するため、手間はかかりますが、その分作り込むことが可能という点は特長として挙げられます。
よって、データフローでは対応できなかったような機能がある場合は、Power Automateを作り込むことにより対応可能となります。
(本手順の活用内容などある場合は、ご教示ください!)
Power Automate(SharePoint)
最後に、Power Automateを用いて、外部DBとSharePointリストを連携し、Power Appsと接続する方法です。
前述した方法では外部DBとDataverseを連携させましたが、こちらの方法では、SharePointリストと連携させます。
本接続方法の最大のメリットとしては、有償ライセンス数が1つで対応可能という点だと思います。
今まで紹介していた方法の場合は、アプリを使用する全ユーザー数分の有償ライセンスが必要となりますが、 こちらの方法ではPower Automateの所有者のみ有償ライセンスを持っていれば対応可能です。
※注意※
SharePointリストを用いる場合は、委任に関する問題やデータ量・セキュリティに関する制約などがあります。
簡易的なアプリを作成する場合には、SharePointリストで問題ありませんが、複雑なアプリを作成する場合には、Dataverseを用いることを推奨いたします。(お金はかかってしまいますが、、、(笑))
まとめ
前述した各接続方法について、以下にまとめてみました。
| 有償ライセンス数 | 使用できるアプリ | 相互同期 | 更新頻度 |
---|---|---|---|---|
直接接続 | 使用ユーザー数分 | キャンバス | ◯ | リアルタイム |
仮想テーブル | 使用ユーザー数分 | キャンバス・モデル駆動型 | ◯ | リアルタイム |
データフロー | 使用ユーザー数分 | キャンバス・モデル駆動型 | △ | 定期更新 |
Power Automate | 使用ユーザー数分 | キャンバス・モデル駆動型 | △ | 定期更新 |
Power Automate | 1 | キャンバス・モデル駆動型 | △ | 定期更新 |
おわり
今回は、外部DB(例:SQL Server・MySQL・PostgreSQLなど)を用いてPower Appsアプリを作成する際の、
連携方法について調査した結果を紹介しました。
調査してみると、色々な連携方法があり、それぞれに特徴があることがわかりました。
外部DBと連携することを考える際に、ご一読いただけますと幸いです。
最後まで読んでいただき、ありがとうございました!
【こちらも合わせて読みたい】
小刀稱知哉
大分県出身(温泉大好き)、現在は東京都在住
1990年生まれ
30才でメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
主にMicrosoftのローコード(SharePoint・Power Platform)に関するに関する営業活動や設計、開発などを担当しております!
(最近はCopilot Studioについても勉強中)
持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200/SC-100
こんにちは。アーティサン株式会社の小刀稱(ことね)です。