はじめに
CDS View(Core Data Service View)でS/4HANAのテーブルのジョインとフィルターをかけて、データを抽出することができます。CDS Viewを利用する場合、抽出ロジックはS/4HANAのHANA DBにプッシュダウンして実行することで、データの抽出処理の時間を大幅に短縮することが可能になります。CI-DSによるS/4HANAからIBPへのデータ連携において、S/4HANA側のデータ件数が多いまたは複雑のテーブルジョインとフィルター処理が必要な場合、CI-DSからS/4HANA側のCDS Viewを利用することでパフォーマンスの向上を図ります。
本ブログは、データ抽出可能なCDS Viewの定義、またはCI-DSでCDS Viewを利用する方法をご紹介します。
1. CDS ViewでS/4HANAからフルデータを抽出する場合
シナリオ:CI-DSでCDS Viewを利用してS/4HANAの全件の品目データを抽出します。
1.1 データ抽出可能なCDS Viewを定義する
マスターデータを抽出するCDS Viewを定義します。下記のCDS Viewは品目マスタデータを抽出するサンプルです。
DS Annotations:
① @AbapCatalog.sqlViewNameで定義したCDS View名は、CI-DSでデータ取得対象のオブジェクト名になる。
②
@analytics.dataCategory:
- #DIMENSION:マスターデータ抽出の場合
- #FACT:トランザクションデータ抽出の場合
- #CUBE:例外ケースの場合(トランザクションとマスターテーブルジョインしてデータを抽出など)
③
@analytics.dataExtraction.enabled : trueで、CDSViewはデータ抽出可能にする。
④ @ObjectModel.representativeKeyで、代表的になキー項目を定義する。マスターデータ抽出の場合のみ定義必要。
CDS Annotationsについて、下記のSAPヘルプをご参考ください。
https://help.sap.com/docs/ABAP_PLATFORM/cc0c305d2fab47bd808adcad3ca7ee9d/630ce9b386b84e80bfade96779f...
1.2 CI-DSでCDS Viewを利用する
CI-DS側でCDS Viewオブジェクトの定義をデータストアにインポートしてから、CDSViewをソースデータとしてデータフローを定義します。
①. CDS Viewオブジェクト定義をインポートする。
②. CDS Viewをデータソースとしてデータフローを定義する。
2. S/4HANAから差分データを抽出する場合
シナリオ:CI-DSでCDS Viewを利用してS/4HANAの差分の受注データを抽出します。
2.1 パラメータ付きCDS Viewを定義する
前回抽出した日時のパラメータ付きのCDS Viewを定義します。下記のCDS Viewは、差分の受注データを抽出するサンプルです。
前回抽出した日時をCDS ViewのパラメータP_LASTLOADDATEとして定義する。
2.2 CI-DSでパラメータ付きCDS Viewの利用
CI-DSデータフローでパラメータ付きのCDS Viewを利用するには、Custom ABAP Transform でABAP FORMを開発してCDS Viewをアクセスする必要があります。
①. Custom ABAP Transformステップを設定する。
②. Custom ABAP TransformステップのOutput項目を設定する。
③. 前回抽出した日時のGlobal Variablesを定義する。
④. Custom ABAP Transformパラメータを定義し、全ステップで定義したGlobal Variablesに紐つける。
⑤. ABAP FORMでCDS Viewをアクセスし、前回抽出した日時をパラメータに引き渡す。
⑥. Preload scriptsに、CI-DSストレージに保存された前回抽出した日時を取得して、Global Variablesにセットする。
⑦. Postload scriptsに、抽出した日時をCI-DSストレージに保存する。
最後に
S/4HANAとIBP間の連携において、S/4HANAの複数のテーブルに対して、複雑なテーブルジョインまたはフィルタリング処理を行って、データを抽出する連携シナリオの場合、パフォーマンスが優れるため、CDS Viewでのご利用が推奨されています。
本ブログが、CI-DSでCDS Viewの利用方法の理解に少しでも役立てば幸いです。