SAP CDS Views は、データへのアクセスと操作を容易にするために、SAP S/4HANA システムでデータ モデルとビューを定義するために使用されるモデリング ツールです。「補足フィルター」は CDS ビューの重要な概念であり、CDS ビューに追加のフィルター条件を適用して、ビューから返されるデータを動的に制限できます。この記事では「補助フィルター」の背景や目的、事例などについて詳しく解説します。
背景
SAP S/4HANA システムでは、データが企業運営の核となります。CDS ビューを使用すると、開発者はアプリケーションで直接使用してデータを取得および処理できる柔軟なデータ モデルを作成できます。ただし、場合によっては、特定のコンテキストや条件に基づいてデータをさらにフィルタリングする必要がある場合があり、これが「補助フィルタ」の出番です。
使用
「補足フィルター」を使用すると、CDS ビューに基づいて追加のフィルター条件を定義し、ビジネス ニーズに応じてクエリによって返されるデータの量を動的に制限できます。これにより、特定のシナリオごとに複数の異なる CDS ビューを作成する必要がなく、さまざまなシナリオで同じ CDS ビューを簡単に使用できますが、必要に応じて異なるフィルターを適用できます。
例
「補助フィルター」の使用法を例を挙げて説明しましょう。SAP S/4HANA システムでの販売データ分析を担当しており、販売注文データを取得するための CDS ビューを作成しているとします。
まず、すべての販売注文データを取得する基本的な CDS ビューを作成しましょう。
@AbapCatalog.sqlViewName: 'ZCDS_SALES_ORDERS'
@AbapCatalog.compiler.compareFilter: true
define view ZSalesOrders as select from sdbarco.sales_orders {
key sales_order,
customer,
order_date,
total_amount
}
この基本的な CDS ビューでは、特定の状況下で特定の基準を満たす販売注文データのみを返す「補足フィルター」を定義できます。特定の日付範囲内のデータをクエリしたい場合は、次のように「補足フィルター」を定義できます。
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Sales Orders with Date Range'
define view ZSalesOrdersWithDateRange
with parameters p_start_date : abap.dats,
p_end_date : abap.dats
as select from ZSalesOrders
{
key sales_order,
customer,
order_date,
total_amount
}
where order_date between :p_start_date and :p_end_date;
この例では、CDS ビュー「ZSalesOrdersWithDateRange」の 2 つの入力パラメーター、開始日 (p_start_date) と終了日 (p_end_date) を定義しました。次に、WHERE 句で「補足フィルター」を使用して、指定された日付範囲内の販売注文データにクエリを制限します。
この CDS ビューを「補足フィルター」とともに使用すると、実行時に必要に応じて開始日と終了日を渡し、指定された日付範囲を満たす販売注文データのみを取得できます。これにより、異なる日付範囲ごとに異なる CDS ビューを作成する代わりに、同じ CDS ビューにフィルターを動的に適用できます。
要約する
「補足フィルタ」は SAP CDS ビューの重要な機能であり、これを使用すると、さまざまなビジネス ニーズを満たすために、CDS ビューに基づいて追加のフィルタ条件を動的に適用できます。CDS ビュー定義に入力パラメータを導入し、WHERE 句で使用することにより、特定の条件に基づいてデータ フィルタリングを実装できるため、データ モデルの柔軟性と再利用性が向上します。この機能は、SAP S/4HANA システムで柔軟で高度にカスタマイズされたデータ アクセス レイヤーを構築するのに非常に貴重であり、開発者が企業の変化するニーズをより適切にサポートできるようになります。