LoginSignup
9
6

More than 5 years have passed since last update.

On-premises Data Gatewayを使って、MS PowerAppsとオンプレミスのDBを接続

Posted at

はじめに

この記事はオンプレミスのDB内のデータをPowerApps上に表示させるまでを記載しています。

PowerAppsとDBのインストール方法や操作方法の詳細については記載しておりません。

本記事では、Windows7のパソコンに無償の「SQL Server 2012 Express」(オンプレミスのDBとして)と「On-premises Data Gateway」をインストールしたものを使用しました。

On-premises Data Gatewayのインストール

※On-premises Data Gatewayをインストールするパソコンは、DBがインストールされているパソコンである必要はありません。

PowerAppsのdownloadページにてOn-premises Data Gatewayのインストーラーをダウンロード。
odg_ins_01.PNG

ダウンロードしたGatewayInstall.exeを実行して、下図画面が出現するまで「次へ」をクリック。
画面が出現したら、Office365に登録済みの電子メールアドレスを入力して「サインイン」をクリック。
odg_ins_02.PNG

パスワードを入力して「サインイン」をクリック。
odg_ins_03.PNG

新しいon-premise data gatewayの名前と回復キーに任意の値を入力して「構成」をクリック。
odg_ins_04.PNG

PowerAppsが準備完了になっている事を確認して「閉じる」をクリック。
odg_ins_05.PNG

Info:
On-premises Data Gatewayが起動していない時はWindowsの「サービス」アプリで起動可能

PowerApps<-->On-premises Data Gateway<-->SQLServerの接続設定

PowerAppsの画面の左ペインの「データ」-「接続」をクリック。
gw_setting_01.PNG

画面左上の「新しい接続」をクリック。
gw_setting_02.PNG

「[接続するオンプレミス環境のDB]」をクリック。(今回はSQL Server)
gw_setting_03.PNG

オンプレミスのDBに関する情報を入力。(下記はSQL Serverの場合)

  • 「オンプレミス データ ゲートウェイを使用して接続」を選択
  • 「SQL サーバー名」に「SQL Serverのインスタンス名(サーバー名を含む)」を入力
  • 「SQL データベース名」に「SQL Serverのデータベース名」を入力
  • 「認証の種類」から認証方法を選択
    • Windows認証の場合は「Windows」
    • SQL Server認証の場合は「basic」
  • 「ユーザー名」に「オンプレミスのDBにログインする為のユーザー名」を入力
  • 「パスワード」に「オンプレミスのDBにログインする為のパスワード」を入力
  • 「ゲートウェイを選択してください」から「インストールしたOn-premises Data Gatewayの名前」を入力

最後に「作成」ボタンをクリック。
gw_setting_04.PNG

PowerAppsにオンプレミスのDBデータを表示

「ホーム」-「Canvas app from blank」をクリックして、PowerApps Studio(PowerApps開発環境)を開く。

development-by-powerapps-and-onpremisedb_01.PNG

下図画面が出現した場合は「スキップ」をクリック
development-by-powerapps-and-onpremisedb_02.PNG

ゼロから作るのは面倒なので、今回はテンプレートを使用。「ギャラリー」-「縦」をクリック
development-by-powerapps-and-onpremisedb_03.PNG

キャンバス上にテンプレート通りのリスト形式のオブジェクトが配置されます。

最初はサンプルデータが使用されているので、データソースを変更する為に「データ」-「データソース」-「CustomGallerySample」の右にある「V」ボタンをクリックして「データソースの追加」をクリック
development-by-powerapps-and-onpremisedb_04.PNG

データ一覧画面になったら、オンプレミスのDBをクリック
development-by-powerapps-and-onpremisedb_05.PNG

テーブルの一覧が表示されるので、使用するテーブルにチェックをつけて「接続」ボタンをクリック
development-by-powerapps-and-onpremisedb_06.PNG

データ一覧画面に戻るので、各項目に下記内容を設定
- 「データソース」に主となるテーブルを設定(今回はT_Sales)
- 「レイアウト」に自分が望むレイアウトを設定(今回は「タイトル、サブタイトル、本文」のレイアウトを設定)
- ラベルなどの各オブジェクトにDBのカラムを設定

development-by-powerapps-and-onpremisedb_07.PNG

ここまでで、オンプレミスのDBデータをPowerAppsに表示させる設定は完了です。

しかし実際の仕事では、トランザクションテーブルのデータからマスタテーブルの情報を取得できないと使い物になりません。

なので、最後にトランザクションテーブルとマスタテーブルを結合して終わりたいと思います。

結合方法は下記の通りです
1. 対象のオブジェクトをクリック
2. 関数項目にLookUp関数を使った、結合処理を入力

例を用いて説明すると、下記の通りです。

Case: 主テーブル(T_Sales)にマスタテーブル(M_Customer)を連結させ、CompanyCodeが表示されているオブジェクトにCompanyNameを表示させる場合(連結キーはCompanyCodeCustomerCode)

  1. CompanyCodeが表示されているオブジェクトをクリック
  2. 関数項目にLookUp('[dbo].[M_Customer]', ThisItem.CompanyCode=CompanyCode && ThisItem.CustomerCode=CustomerCode,CustomerName)を入力

上記のLookUpを見れば理解できるかと思いますが、LookUp('[連結するテーブル名'], [連結条件], [連結先のテーブルから取得するカラム名])です。

development-by-powerapps-and-onpremisedb_08.PNG

所感

思ったよりも簡単な作業でオンプレミスのDBデータをPowerAppsで扱えるようになりました。

ただ、私自身の経験で言うと、直感的に理解できるUIではなく、本格的に使用するとなると、最初に学習コストが大きくかかりそうな印象です。

しかし、ユースケースによってはメリットが大きいと思います。例えば、イントラネット内でしか使用できないようなレガシーシステムをモバイルアプリ化したい場合などは有用ではないでしょうか?

自分たちの状況によっては非常に有用になりそうな気がします。

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6