Power Platform コネクタを使用してコード アプリをデータに接続し、データ ソースを追加し、生成されたサービスをアプリから呼び出す方法について説明します。
次の手順に従います。
注記
pa app initを使用してアプリを初期化した後、次の手順を使用します。
Power Apps CLI を使用した接続の作成と設定
Power Apps CLI を使用してコネクタを検索し、その接続を作成します。 Power Apps CLI から接続を作成し、コマンドによって返された接続 ID を保存します。
次のセクションに示すコネクタを除き、すべてのコネクタが正式にサポートされています。
まだサポートされていないコネクタ
ヒント
コード アプリを Azure SQL に接続するための詳細なガイドについては、「 方法: コード アプリを Azure SQL に接続する」を参照してください。
接続メタデータを取得する
pa connection listを使用して、使用可能な接続を一覧表示し、pa connection createによって返された ID を保存しなかった場合は、その ID を取得します。
pa connection list
このコマンドは、 接続 ID とコネクタ識別子を含む接続のテーブルを示します。 データ ソースを追加するときは、これらの値を使用します。
コード アプリへの接続を追加する
使用する既存の接続を作成または特定し、前の手順の接続メタデータをコピーしたら、それらの接続をアプリに追加します。
データ ソースをアプリに追加すると、型指定された TypeScript モデルとサービス ファイルがリポジトリに自動的に生成されます。 たとえば、Office 365 ユーザー データ ソースでは、 Office365UsersModel ファイルと Office365UsersService ファイルが生成されます。
表形式以外のデータ ソースを追加する
pa app add data-sourceを使用して、Office 365 ユーザーなどの表形式以外のデータ ソースを追加します。
コマンド ラインから、次のコマンドを実行します。 前の手順で収集したコネクタ識別子と接続 ID を使用します。
pa app add data-source --connector <connector-id> --connection-id <connection-id>
例えば次が挙げられます。
pa app add data-source --connector "shared_office365users" --connection-id "aaaaaaaa000011112222bbbbbbbbbbbb"
表形式のデータ ソースを追加する
SQL または SharePoint は、表形式データ ソースの例です。
同じ pa app add data-source コマンドを使用しますが、テーブルとデータセットを含めます。 表形式データ ソースのスキーマでは、これらの値を指定します。 これらの値がまだない場合は、「 使用可能なデータセットとテーブルの検出」を参照してください。
pa app add data-source `
--connector <connector-id> `
--connection-id <connection-id> `
--table <table-id> `
--dataset <dataset-name>
SQL の例
pa app add data-source `
--connector "shared_sql" `
--connection-id "aaaaaaaa000011112222bbbbbbbbbbbb" `
--table "[dbo].[MobileDeviceInventory]" `
--dataset "paconnectivitysql0425.database.windows.net,paruntimedb"
pa app add data-source `
--connector "shared_sql" `
--connection-id "aaaaaaaa000011112222bbbbbbbbbbbb" `
--table "[dbo].[EmployeeInformation]" `
--dataset "paconnectivitysql0425.database.windows.net,paruntimedb"
SharePoint例
SharePointの場合、--tableはリスト名で、--datasetはSharePoint サイトです。
pa app add data-source `
--connector "shared_sharepointonline" `
--connection-id "aaaaaaaa000011112222bbbbbbbbbbbb" `
--table "Travel%20Request" `
--dataset "https://contoso.sharepoint.com/sites/TravelPolicies"
使用可能なデータセットとテーブルを検出する
pa connection コマンドを使用して、接続で使用可能なデータセット、テーブル、ストアド プロシージャを検出します。
pa connection list-datasets --connector <connector-id> --connection-id <connection-id>
pa connection list-tables --connector <connector-id> --connection-id <connection-id> --dataset <dataset-name>
pa connection list-procedures --connection-id <connection-id> --dataset <dataset-name>
SQL Server のワークフローの例:
# Step 1: List available datasets
pa connection list-datasets --connector "shared_sql" --connection-id "aaaaaaaa000011112222bbbbbbbbbbbb"
# Step 2: List tables in the dataset
pa connection list-tables --connector "shared_sql" --connection-id "aaaaaaaa000011112222bbbbbbbbbbbb" `
--dataset "paconnectivitysql0425.database.windows.net,paruntimedb"
# Step 3: Add the table to your code app
pa app add data-source --connector "shared_sql" --connection-id "aaaaaaaa000011112222bbbbbbbbbbbb" `
--table "[dbo].[MobileDeviceInventory]" `
--dataset "paconnectivitysql0425.database.windows.net,paruntimedb"
ヒント
pa app add data-sourceで使用する場合は、コマンド出力から正確な Name 値をコピーします。 名前は大文字と小文字が区別され、特殊文字を含む場合があります。
SQL ストアド プロシージャをデータ ソースとして追加する
コマンド ラインから次のコマンドを実行します。 以前に収集したコネクタ識別子と接続 ID を使用します。
pa app add data-source `
--connector <connector-id> `
--connection-id <connection-id> `
--dataset <dataset-name> `
--procedure <stored-procedure-name>
例えば次が挙げられます。
pa app add data-source `
--connector "shared_sql" `
--connection-id "33dd33ddee44ff55aa6677bb77bb77bb" `
--dataset "paconnectivitysql0425.database.windows.net,paruntimedb" `
--procedure "[dbo].[GetRecordById]"
データ ソースの削除
必要に応じて、データ ソースを追加した後で削除できます。
コネクタ識別子とデータ ソース名で pa app remove data-source を使用します。
pa app remove data-source --connector <connector-id> --name <data-source-name>
例えば次が挙げられます。
pa app remove data-source `
--connector "shared_sql" `
--name "MobileDeviceInventory"
データ ソースの更新
スキーマが変更された場合は、 pa app refresh data-source を使用して、生成されたモデル ファイルとサービス ファイルを更新します。
pa app refresh data-source --name <data-source-name>
接続参照を使用してデータ ソースを追加する
接続参照を使用して、コード アプリにデータ ソースを追加します。 接続参照は、コネクタの特定の接続を指すソリューション コンポーネントです。 アプリをユーザー固有の接続に直接バインドするのではなく、参照にバインドします。 このアプローチにより、ソリューション環境に対応し、開発、テスト、Prod 環境全体で移植可能になり、アプリケーションのライフサイクル管理がスムーズになります。
注記
このセクションでは、Power Apps のソリューションと接続参照に関する基本的な知識があることを前提としています。 ソリューションが既に作成されており、そのソリューションでデータ ソースの接続参照が作成されている必要があります。 そうでない場合は、次のセクションのリンクに記載されている手順に従って作成します。
ソリューション ID を取得する
ソリューション一覧コマンドを使用して、ソリューションの ID を取得します。
コマンド プロンプトまたはターミナル ウィンドウを開きます。
次のコマンドを実行して、 接続している環境のソリューションの一覧を取得します。
pa solution listこのコマンドは、
Id、SolutionUniqueName、Version、およびFriendlyNameソリューションのプロパティを使用して、テーブルをコンソールに出力します。ソリューション
Idをコピーし、後で使用するために保存します。
データ ソースへの接続参照の名前を取得する
Power Apps CLI を使用して、ソリューション内の接続参照を一覧表示します。
コマンド プロンプトまたはターミナル ウィンドウを開きます。
pa connection list-referencesを使用して、データ ソースへの接続参照のソリューション ID と名前を取得します。pa connection list-references --solution-id <solution-id>出力には、ソリューション内の接続参照の表示名、論理名、および説明が含まれます。
接続参照を使用してコード アプリにデータ ソースを追加する
コマンド ラインから、次のコマンドを実行します。 前の手順で収集したソリューション ID と接続参照の論理名を使用します。
pa app add data-source `
--connector <connector-id> `
--connection-ref <connection-reference-logical-name> `
--solution-id <solution-id>
これで、アプリは Power Apps ソリューションの接続参照に関連付けられている接続を使用するようになりました。
接続を呼び出すアプリを更新する
接続を追加したら、生成されたモデルとサービスを使用するようにアプリを更新します。
注記
IDE でエージェントを使用して、これらの変更を行うこともできます。 たとえば、Visual Studio Code では、GitHub Copilot エージェント モードを使用して、データ ソースを追加した後にそれらを作成できます。
必要な型とサービスをインポートする
データ ソースを追加すると、CLI によってモデル ファイルとサービス ファイルが自動的に生成されます。 これらのファイルは、
/generated/services/フォルダーに配置されます。 たとえば、Office365Usersをデータ ソースとして追加すると、ポータルによって次のファイルが作成されます。-
Office365UsersModel.ts–Office365Usersコネクタの要求オブジェクトと応答オブジェクトのデータ モデルを定義します。 -
Office365UsersService.ts–Office365Usersデータを操作するためのサービス メソッドを提供します。
次のようなファイルをコードにインポートして使用します。
import { Office365UsersService } from './generated/services/Office365UsersService'; import type { User } from './generated/models/Office365UsersModel';-
表形式以外のデータ ソース (Office 365 ユーザー など) を使用するようにアプリを更新する
型指定された接続 API の場合は、
src/generated/modelsフォルダーとsrc/generated/servicesフォルダーの下に生成されたファイルを表示します。await Office365UsersService.MyProfile()const profile = (await Office365UsersService.MyProfile_V2("id,displayName,jobTitle,id,userPrincipalName")).data; setUser(profile); if (profile?.id || profile?.userPrincipalName) { // Try both id and userPrincipalName for photo let photoData = null; try { photoData = (await Office365UsersService.UserPhoto_V2(profile.id || profile.userPrincipalName)).data; } catch { // fallback to userPrincipalName if id fails if (profile.userPrincipalName) { photoData = (await Office365UsersService.UserPhoto_V2(profile.userPrincipalName)).data; } } if (photoData) setPhoto(`data:image/jpeg;base64,${photoData}`);(省略可能)表形式のデータ ソース (SQL など) を使用するようにアプリを更新する
型指定された接続 API の場合は、
src/Modelsフォルダーとsrc/Servicesフォルダーの下に生成されたファイルを表示します。例えば次が挙げられます。
await MobileDeviceInventoryService.create(<record>) await MobileDeviceInventoryService.update(id, <record>) await MobileDeviceInventoryService.delete(id) await MobileDeviceInventoryService.get(id) await MobileDeviceInventoryService.getall()await MobileDeviceInventoryService.update(assetId, changedFields); setAssets((prevAssets) => prevAssets.map((asset) => { if (asset.id === assetId) {アプリをローカルで実行して変更を確認する
ターミナルで次のコマンドを使用します。
npm run devPower Apps で実行するようにアプリをプッシュする
アプリをビルドし、
pa app pushを使用して発行します。npm run build pa app push