パラメータ付きCDS ViewとHANAでのTable Function

わけあって、パラメータありCDS Viewが HANA上でどう生成されるかを確認しました。

パラメータありCDS Viewを定義します。DDICが生成される少し古いやり方です。

@AbapCatalog.sqlViewName: 'YSAPTEST00'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Test CDS View with parameter'
define view YSAP_Test00 with parameters aaa:abap.dats as select from t000 { $parameters.aaa as TEST
}

HANAのレイヤではこんなTable Functionが作られています。t-cd:SE11 からDDIC View詳細画面でユーティリティ -> データベースオブジェクト -> 照会で 確認。

REATE FUNCTION "YSAPTEST00" ( "AAA" NVARCHAR(000008) ) ETURNS TABLE "TEST" NVARCHAR(000008) ) ANGUAGE SQLSCRIPT AS EGIN RETURN ELECT AAA AS "TEST" ROM T000" "T000" ; END 

こんなSQLでクライアントの件数分、結果取得できます。

SELECT "TEST" FROM "SAPHANADB"."YSAPTEST00"("AAA" => 20220815)