ユーザー定義ビュー
CData JDBC Driver for Microsoft Dynamics 365 Finance and Operations を使用すると、事前設定されたクエリによって内容が決定される仮想テーブルを定義できます。これらはユーザー定義ビューと呼ばれ、ツール からドライバーを使用する場合など、ドライバーに発行されるクエリを直接制御できない場合に役立ちます。 ユーザー定義ビューを使用して、常に適用されるプレディケートを定義することができます。ビューへのクエリで追加のプレディケートを指定すると、それらはビューの一部としてすでに定義されているクエリと結合されます。
ユーザー定義ビューを作成する方法は2つあります。
- 必要なビューを定義したJSON 形式のコンフィギュレーションファイルを作成。
- DDL ステートメント。
コンフィギュレーションファイルでビューの定義
ユーザー定義ビューは、UserDefinedViews.json というJSON 形式のコンフィギュレーションファイルで定義されています。本製品 は、このファイルで指定されたビューを自動的に検出します。また、複数のビュー定義を持ち、UserDefinedViews 接続プロパティを使用して制御することも可能です。このプロパティを使用すると、指定されたビューのみが本製品 によって検知されます。
このユーザー定義ビューのコンフィギュレーションファイルは、次のようにフォーマットされています。
- 各ルートエレメントはビューの名前を定義します。
- 各ルートエレメントには、query と呼ばれる子エレメントが含まれており、この子エレメントにはビューのカスタムSQL クエリが含まれています。
次に例を示します。
{ "MyView": { "query": "SELECT * FROM Accounts WHERE MyColumn = 'value'" }, "MyView2": { "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)" } }UserDefinedViews 接続プロパティを使用して、JSON コンフィギュレーションファイルの場所を指定します。次に例を示します。
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"
DDL ステートメントを使用したビューの定義
本製品 は、CREATE LOCAL VIEW、ALTER LOCAL VIEW、DROP LOCAL VIEW などのDDL ステートメントを介してスキーマを作成したり、変更したりすることもできます。
ビューの作成
DDL ステートメントを使用して新しいビューを作成するには、以下のようにビュー名とクエリを指定します。
CREATE LOCAL VIEW [MyViewName] AS SELECT * FROM Customers LIMIT 20;
JSON ファイルが存在しない場合は、上記のコードで作成されます。ビューはJSON コンフィギュレーションファイルで作成され、検出可能になります。JSON ファイルの場所はUserDefinedViews 接続プロパティで指定されます。
ビューの変更
既存のビューを変更するには、代わりに使用したい新しいクエリと一緒に既存のビュー名を指定します。
ALTER LOCAL VIEW [MyViewName] AS SELECT * FROM Customers WHERE TimeModified > '3/1/2020';
ビューはJSON コンフィギュレーションファイルで更新されます。
ビューの削除
既存のビューを削除するには、代わりに使用したい新しいクエリと一緒に既存のスキーマ名を指定します。
DROP LOCAL VIEW [MyViewName]
これにより、ビューがJSON コンフィギュレーションファイルから削除されます。クエリはできなくなります。
ユーザー定義ビューのスキーマ
ユーザー定義ビューは、デフォルトでUserViews スキーマで公開されます。これは、ビューの名前がデータモデル内の実際のエンティティと衝突しないようにするためです。UserViews で使用されるスキーマの名前は、UserViewsSchemaName プロパティを設定して変更できます。ユーザー定義ビューの使用
例えば、UserViews.RCustomers という名前のユーザー定義ビューを持つSQL ステートメントは、Raleigh の顧客のみをリストします。SELECT * FROM Customers WHERE City = 'Raleigh';ドライバーへのクエリは次のようになります。
SELECT * FROM UserViews.RCustomers WHERE Status = 'Active';ソースへの効果的なクエリは次のようになります。
SELECT * FROM Customers WHERE City = 'Raleigh' AND Status = 'Active';これは、ビュークエリとビュー定義を効果的に組み合わせた、ユーザー定義ビューへのクエリの非常にシンプルな例です。これらのクエリをはるかに複雑なパターンで構成することが可能です。すべてのSQL 操作は両方のクエリでサポートされ、必要に応じて組み合わされます。