コード アプリを使用すると、Power Platform コネクタに接続できます。
注
プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これらの機能は、お客様が早期にアクセスしてフィードバックを提供できるように、公式リリースの前に利用できます。
次の手順に従います。
注
pac code init を使用してアプリを初期化した後、次の手順を使用します。 「方法: コード アプリを最初から作成する」の「コード アプリを初期化する」セクションまでの手順を参照してください。
Important
SQL、SharePoint、Office 365 Users、Office 365 グループ、Azure Data Explorer、職場または学校向け OneDrive、Power Apps for Maker、Microsoft Teams、MSN Weather、Microsoft Translator V2 の各コネクタが正式にサポートされています。 Dataverse の作成、読み取り、更新、削除の各操作 が正式にサポートされています。 他のコネクタは動作することが期待されますが、テストされていません。
Power Apps で接続を作成して設定する
まず 、Power Apps で接続を作成して構成します。 後の手順で使用するために、そこから接続メタデータをコピーします。
Important
最初のリリースでは、 Power Apps で既存の接続を使用するようにコード アプリのみを構成できます。 PAC CLI コマンドを使用して新しい接続を作成することはできません。 新しい接続の作成のサポートは、今後のリリースで追加される予定です。
Power Apps の [接続] ページを起動する
Power Apps に移動し、左側のナビゲーションから [接続] ページに移動します。
Office 365 ユーザー接続の作成例
[ + 新しい接続 ] を選択し、[ Office 365 ユーザー] を選択します。 を選択してを作成します。
注
Office 365 ユーザー接続が既にある場合は、新しい接続を作成する代わりに使用できます。
(省略可能)SQL 接続 (または別の表形式データ ソースの接続) を作成する
ヒント
コード アプリを Azure SQL に接続するための詳細なガイドについては、「 方法: コード アプリを Azure SQL に接続する」を参照してください。
作成されたすべての接続の接続メタデータを取得する
これを行うには、次の 2 つの方法があります。
- PAC CLI pac 接続リスト コマンドを使用します。
- Power Apps の URL からデータを取得します。
PAC CLI を使用する
Power Apps CLI を使用して、利用可能な接続を一覧表示し、 pac 接続リスト コマンドを使用して ID を取得できます。
pac connection listには、データ ソースを追加するときにとして使用される接続 ID と appIdなど、すべての接続のテーブルが表示されます。
Power Apps を使用する
接続の詳細を調べるときに URL を表示することで、Power Apps を使用してこの情報を取得することもできます。
URL に API 名と接続 ID がどのように追加されるかに注目してください。
API 名と接続 ID を PAC CLI から各接続の URL にコピーします。
コード アプリへの接続を追加する
使用する既存の接続を作成または特定し、前の手順の接続メタデータをコピーしたら、それらの接続をアプリに追加します。
データ ソースをアプリに追加すると、型指定された TypeScript モデルとサービス ファイルがリポジトリに自動的に生成されます。 たとえば、Office 365 Users データ ソースでは、 Office365UsersModel と Office365UsersServiceが生成されます。
PAC CLI pac コード add-data-source コマンドを使用して、表形式以外のデータ ソース (Office 365 ユーザーなど) をアプリに追加します。
コマンド ラインから、次のコマンドを実行します。 前の手順で収集した API 名と接続 ID を使用します。
pac code add-data-source -a <apiName> -c <connectionId>例えば次が挙げられます。
pac code add-data-source -a "shared_office365users" -c "aaaaaaaa000011112222bbbbbbbbbbbb"(省略可能)表形式のデータ ソース (SQL や SharePoint など) をアプリに追加します。
同じ PAC CLI pac コード add-data-source コマンドを使用しますが、テーブル ID とデータセット名を含めます。 表形式データ ソースのスキーマでは、これらの値を指定します。 これらがまだない場合は、「 データセット名とテーブル ID を取得する」を参照してください。
pac code add-data-source -a <apiName> -c <connectionId> -t <tableId> -d <datasetName>例えば次が挙げられます。
pac code add-data-source ` -a "shared_sql" ` -c "aaaaaaaa000011112222bbbbbbbbbbbb" ` -t "[dbo].[MobileDeviceInventory]" ` -d "paconnectivitysql0425.database.windows.net,paruntimedb" pac code add-data-source ` -a "shared_sql" ` -c "aaaaaaaa000011112222bbbbbbbbbbbb" ` -t "[dbo].[EmployeeInformation]" ` -d "paconnectivitysql0425.database.windows.net,paruntimedb"(省略可能)SQL ストアド プロシージャをデータ ソースとして追加します。
コマンド ラインから、次のコマンドを実行します。 前に収集した API 名と接続 ID を使用します。
pac code add-data-source -a <apiId> -c <connectionId> -d <dataSourceName> -sp <storedProcedureName>例えば次が挙げられます。
pac code add-data-source ` –a "shared_sql" ` -c "33dd33ddee44ff55aa6677bb77bb77bb" ` -d "paconnectivitysql0425.database.windows.net,paruntimedb" ` -sp "[dbo].[GetRecordById]"(省略可能)必要に応じて、追加後にデータ ソースを削除できます。
コマンド ラインから、次のコマンドを実行します。 前に収集した API 名と接続 ID を使用します。
pac code delete-data-source -a <apiName> -ds <dataSourceName>例えば次が挙げられます。
pac code delete-data-source ` -a "shared_sql" ` -ds "MobileDeviceInventory"Important
接続のスキーマが変更された場合、型指定されたモデルとサービス ファイルを更新するコマンドはありません。 データ ソースを削除し、代わりに読み取った。
接続を呼び出すアプリを更新する
接続が追加されたら、生成されたモデルとサービスを使用するようにアプリを更新できます。
注
これらの変更は、IDE のエージェントを使用して行うこともできます。 たとえば、Visual Studio Code では、GitHub Copilot エージェント モードを使用して、データ ソースが追加された後でそれらを作成できます。
データ呼び出しの前に Power Apps SDK の初期化を確認する
App.tsxファイルで、Power Apps SDK が完全に初期化されるのを待ってからデータ操作を実行するロジックを実装します。 これにより、初期化されていないサービスまたはコンテキストが見つからない場合に発生するエラーが回避されます。 これは 1 回だけ行う必要があります。API 呼び出しを行う前に、非同期関数または状態管理を使用して初期化を確認します。 例えば次が挙げられます。
useEffect(() => { // Define an async function to initialize the Power Apps SDK const init = async () => { try { await initialize(); // Wait for SDK initialization setIsInitialized(true); // Mark the app as ready for data operations } catch (err) { setError('Failed to initialize Power Apps SDK'); // Handle initialization errors setLoading(false); // Stop any loading indicators } }; init(); // Call the initialization function when the component mounts }, []); useEffect(() => { // Prevent data operations until the SDK is fully initialized if (!isInitialized) return; // Place your data reading logic here }, []);必要な型とサービスをインポートする
データ ソースを追加すると、モデル ファイルとサービス ファイルが自動的に生成され、
/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 and 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フォルダーの下に表示されます。Example
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 で実行するようにアプリをプッシュする
npm run build | pac code push
データセット名とテーブル ID を取得する
Important
データセット名とテーブル ID を取得する次の手順は、一時的な回避策です。 これらの値を取得するための簡単なメカニズムを追加する予定です。
テーブルとデータセットの名前がまだない場合は、キャンバス アプリを実行し、ブラウザーネットワークインスペクターから値をコピーすることで取得できます。
Studio で新しいキャンバス アプリを作成します。
キャンバス アプリへの接続を追加します。
ギャラリー コントロールへの接続をバインドします。
アプリを発行して実行します。
ブラウザーの 開発者ツールを開き、[ ネットワーク ] タブに移動し、アプリの読み込み時に行われた要求を調べます。 "invoke" 要求を確認し、その応答に移動します。
接続 ID、データセット名、テーブル ID を含む Azure API Management (APIM) 要求を見つけて、それらの値をコピーします。
APIM を介して次のデータ要求 URL の例を使用して、URL 内の次の場所で
<Connection ID>、<Dataset name>、および<Table ID>の値を探します。https[]()://{id value}.01.common.azure-apihub.net/apim/sharepointonline/<Connection ID>/datasets/<Dataset name>/tables/<Table ID>/items