モデル駆動型アプリ内の外部データ ソースから、連絡先に関する個人情報にアクセス、作成、更新、削除するとします。 この簡単なチュートリアルでは、外部スキーマにマップされた列を持つ Person という名前の仮想テーブルを、OData Web サービスから実行時にこれらの操作にモデル化します。
データ ソースの詳細
このチュートリアルで使用されるデータ ソースには OData v4 Web サービスがあるため、ユーザーの環境に含まれる OData v4 データ プロバイダーを使用することができます。
Web サービス URL: https://contosowebservice.azurewebsites.net/odata/
Important
- このチュートリアルで使用する Web サービス URL は、機能しているWeb サービスではありません。
- OData v4 データ プロバイダーを使用して別の環境に接続することはできません。
このチュートリアルでは、次の列を含む 1 つの仮想テーブルが必要です。
| 外部列名 | 外部データの種類 | 仮想テーブルのデータ型 | 目的 |
|---|---|---|---|
| ID (アイディー) | Edm.Guid |
プライマリキー | テーブルの主キー |
| ファーストネーム | Edm.String |
1 行テキスト | 名前 |
| LastName | Edm.String |
1 行テキスト | ユーザーの姓 |
| 年齢 | Edm.Int32 |
整数 | 人物の年齢 |
| LastModifiedOn | Edm.DateTimeOffset |
データと時刻 | 個人レコードの最終変更データと時刻 |
外部データ ソースの人物テーブルの OData メタデータ:
データ ソースの作成
OASIS オープン データ プロトコル (OData) のサンプル Web サービスを使用する OData v4 データ プロバイダーに、データソースを作成します。
設定>管理>仮想エンティティ データ ソースの順に移動します。
新規を選び、OData v4 データ プロバイダーを選択し、OK を選択します。
以下の情報を入力または選択します。
フィールド 価値 名前 人物サンプル OData データ ソース URL https://contosowebservice.azurewebsites.net/odataタイムアウト 30 インライン カウントを返す クライアント側のページング インライン カウントを返す 正しい
他の列はそのままにして、保存 & 閉じる を選択してください。
ヒント
独自の Web サービスを使用する場合は、URL が Webブラウザーに貼り付けることで有効であることを確認します。 目的のテーブルに対応する列とデータ型を理解する場合は、URL の末尾に /$metadata を追加して、Web サービス内のテーブルの定義を確認できます。
ソリューション エクスプローラーを開きます
作成するカスタム テーブルの名前の一部は、カスタマイズ プレフィックスです。 これは、作業中のソリューションの発行者に基づいて設定されます。 カスタマイズの接頭辞がこのテーブルに対して必要な接頭辞であるアンマネージド ソリューションで作業するようにします。 詳細情報: ソリューションの発行元プレフィックスを変更する
アンマネージド ソリューションを開く
Power Apps で、左側のナビゲーション ウィンドウから [ソリューション] を選択し、ツール バーの [クラシックに切り替える] を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
[ すべてのソリューション ] の一覧で、目的のアンマネージド ソリューションを開きます。
仮想テーブルを作成する
ソリューション エクスプローラーの左側のナビゲーション ウィンドウで、[ エンティティ] を選択し、メイン ウィンドウから [ 新規 ] を選択します。
[エンティティ: 新しい] フォームで、[仮想テーブル] オプションを選択し、次の情報を入力します。
フィールド 価値 データ ソース 人物のサンプル OData データソース 表示名 Person 複数名 個人 名前 新規ユーザー 外部名 People 外部コレクション名 People ノート (添付ファイルを含む) 選択済み 活動 選択済み 注
OData リソース パス セマンティクスでは、
EntitySetを使用してリソースを識別します。 サンプル OData Web サービスでは、EntitySetは People として定義されています。 この値は、仮想テーブル Person の外部名として使用されます。このエンティティを表示する領域の横にある Sales を選択し、[保存] を選択します (ただし、テーブル フォームは閉じないでください)。
仮想テーブルの列を作成する
[ エンティティ: ユーザー ] ページの左側のナビゲーション ウィンドウで、[ フィールド] を選択します。 このチュートリアルの一環として、既存の 2 つの列を編集し、外部データ ソースで使用できる列をさらに 3 つ追加します。
Important
外部名は大文字と小文字が区別されます。 正しい名前を使用しているか Web サービス メタデータを参照してください。 false の Nullable 値は、属性が必要なことを示します。 主キー列は常にシステム必須であることに注意してください。
new_personid列を開き、次に示す値で次のプロパティを変更します。
外部名: ID
保存して閉じる を選択します。
new_name列を開き、次のプロパティを変更して、ここに示す値を設定します。
- ディスプレイ名: 姓
- 外部名 : LastName
保存して閉じる を選択します。
[ 新規] を選択し、[ フィールド: ユーザーの新規作成 ] ページで次の情報を入力します。
フィールド 価値 表示名 First Name 名前 新_名前 外部名 ファーストネーム フィールド要件 必須項目 データ型 1 行テキスト
保存して閉じる を選択します。
[ 新規] を選択し、[ フィールド: ユーザーの新規作成 ] ページで次の情報を入力します。
フィールド 価値 表示名 年齢 名前 ニューエイジ 外部名 年齢 フィールド要件 必須項目 データ型 整数
保存して閉じる を選択します。
[ 新規] を選択し、[ フィールド: ユーザーの新規作成] ページで次の情報を入力します。
フィールド 価値 表示名 最終修正日 名前 new_lastmodifiedon 外部名 LastModifiedOn フィールド要件 必須項目 データ型 日付と時間
メイン フォームに列を追加する
[ ユーザー ] テーブル ウィンドウで、[ フォーム] を選択します。
メイン フォームを開き、右側のウィンドウから [全般] セクションのフォームに [名]、[年齢]、[最終更新日時] 列をドラッグ アンド ドロップします。
[ ユーザー ] テーブル ウィンドウで、[ 保存して閉じる] を選択します。
既定のビューを構成
- ソリューション エクスプローラーの左側のウィンドウで、 Person エンティティの下にある [ビュー] を選択します。
- [すべてのユーザー] ビューを開きます。
- [ 共通タスク] ウィンドウで、[ 列の追加] を選択します。
- First Name \(名\)、Age、Last Modified On \(最終更新日時\) 列を選択し、OK を選択します。
- [表示: すべてのユーザー] ウィンドウで、左に移動し、右矢印を移動して列の順序を並べ替え、[保存して閉じる] を選択します。
- ソリューション エクスプローラー ウィンドウで、[ すべてのカスタマイズの発行] を選択します。
- すべてのカスタマイズの公開後、ソルーション エクスプローラー ウィンドウを閉じます。
モデル駆動型アプリで仮想テーブルを使用する
モデル駆動型アプリを作成し、 Person テーブルをサイト マップに追加します。 次に、[ ユーザー ] メイン フォームと [ Person Advance Find ] ビューを選択します。 アプリを公開する 詳細: 初めてモデル駆動型アプリを自分ですべて構築する
その後、アプリ ユーザーは、Microsoft Dataverse の他のテーブルと同様に、仮想テーブルを使用して読み取り、作成、更新、削除の操作を実行できます。
仮想テーブルを使用してレコードを作成、表示、削除する
- モデル駆動型アプリを実行します。 [ 新規] を選択し、必要な列を入力して、レコードを保存します。
- もう一度 [新規 ] を選択して、別のレコードを作成して保存します。
- これで、[ すべてのユーザー ] ビューに次のような 2 つのレコードが表示されます。
- レコードを削除するには、個人レコードを選択し、[削除] を選択 します。 確認ページでレコードを削除することを確認します。
こちらも参照ください
OData v4 データ プロバイダーの構成、要件、ベスト プラクティス
外部データ ソースからのデータを含む仮想テーブルを作成および編集する