正解:B
RESTful アプリケーションプログラミングモデル (RAP) でデータベーステーブルを作成したら、次のステップは、そのデータベーステーブルに投影ビューを作成することです。投影ビューは、テーブル、ビュー、関連付けなど、1 つ以上のデータソースのビューを定義する CDS アーティファクトです。投影ビューでは、データソースのフィールドを選択、名前変更、集計することはできますが、フィールドのプロパティ (読み取り専用かどうかなど) を変更することはできません。フィールドのプロパティは、データソースまたはビジネスオブジェクト12 の動作定義から継承されます。例えば、次のようになります。
次のコード スニペットは、データベース テーブル /DMO/AGENCY に投影ビュー ZI_AGENCY を定義します。
define view ZI_AGENCY as select from /dmo/agency { key agency_id, agency_name, street, city, region, postal_code, country, phone_number, url } 投影ビューは、データベース テーブルのデータをサービス定義に公開するために使用されます。これは、RAP の次のステップです。サービス定義は、サービスのインターフェイスとバインディングを定義する CDS アーティファクトです。サービスは、1 つ以上のビジネス オブジェクトのデータと機能を OData、InA、または SQL サービスとして公開する CDS エンティティです。サービス定義では、サービスのフィールドのプロパティ (フィルター可能、並べ替え可能、集計可能など) を指定できます12。次に例を示します。
次のコード スニペットは、投影ビュー ZI_AGENCY を OData サービスとして公開するサービス定義 ZI_AGENCY_SRV を定義します。
サービス ZI_AGENCY_SRV を定義します { ZI_AGENCY を Agency として公開します。 }
以下のいずれも行うことはできません。
A. メタデータ拡張:メタデータ拡張は、ビジネスオブジェクト、サービス、投影ビューなどのCDSエンティティに追加の注釈を定義するCDSアーティファクトです。メタデータ拡張は、CDSエンティティのフィールドのプロパティ(表示、編集、非表示など)をUIまたは分析目的で指定できます。ただし、メタデータ拡張は、RAPでデータベーステーブルを作成した後の次のステップではありません。データベーステーブルのデータをサービス定義に公開する必要がないためです。メタデータ拡張は、後でサービスを使用するUIまたは分析アプリケーションをカスタマイズするために作成できます12。
C . データ モデル ビュー: データ モデル ビューは、テーブル、ビュー、関連付けなどの 1 つ以上のデータ ソースのビューを定義する CDS 成果物です。データ モデル ビューでは、データ ソースのフィールドを選択、名前変更、集計できるほか、フィールドが読み取り専用かどうかなどのプロパティを変更することもできます。フィールドのプロパティは、データ モデル ビューの注釈または動作定義によって定義されます。データ モデル ビューは、顧客、注文、製品などのビジネス エンティティまたは概念を表す CDS エンティティであるビジネス オブジェクトのデータ モデルを定義するために使用されます。ただし、データ モデル ビューは、RAP でデータベース テーブルを作成した後の次のステップではありません。データベース テーブルのデータをサービス定義に公開する必要がないためです。データ モデル ビューは、データベース テーブルをデータ ソースとして使用するビジネス オブジェクトを定義するために後で作成できます12。
D . サービス定義: サービス定義は、サービスのインターフェースとバインディングを定義する CDS 成果物です。サービスは、1 つ以上のビジネス オブジェクトのデータと機能を OData、InA、または SQL サービスとして公開する CDS エンティティです。サービス定義では、サービスのフィールドのプロパティ (フィルター可能、並べ替え可能、集計可能など) を指定できます。ただし、サービス定義は、RAP でデータベース テーブルを作成した後の次のステップではありません。データベース テーブルのデータを公開するには、投影ビューまたはデータ モデル ビューが必要になるためです。サービス定義は、データベース テーブルに投影ビューまたはデータ モデル ビューを作成した後に作成できます12。