CDS table function veritabanında uygulanabilen ve CDS içerisinde çağrılabilen tablo işlevleridir.
Veri alma mantığı AMDP metodları içerisine yazılır.
İlk olarak CDS Table Function oluşturuyoruz.
Core Data Services altında Data Definition’ı seçip ve next diyoruz.
Ad ve Açıklama girip, next diyoruz.
Template’i seçip finish diyoruz.
Kod kısmını aşağıdaki gibi düzenliyoruz.
@EndUserText.label: 'Table Function for Get Material' define table function ZED_CTF_GET_MATERIAL with parameters matnr : matnr, spras : spras returns { key client : abap.clnt; mtart : mtart; matkl : matkl; maktx : maktx; } implemented by method zed_cl_info_material=>get_material_info;
Implement the CDS Table Function
Yeni bir sınıf oluşturuyoruz. AMDP Marker interfaces ekliyoruz. (‘IF_AMDP_MARKER_HDB’)
CLASS ZED_CL_INFO_MATERIAL DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES IF_AMDP_MARKER_HDB . CLASS-METHODS: GET_MATERIAL_INFO FOR TABLE FUNCTION ZED_CTF_GET_MATERIAL. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS ZED_CL_INFO_MATERIAL IMPLEMENTATION. METHOD GET_MATERIAL_INFO BY DATABASE FUNCTION FOR HDB LANGUAGE SQLSCRIPT USING MARAV. RETURN SELECT mandt as client, mtart, matkl, maktx from marav WHERE matnr = :matnr and spras = :spras; ENDMETHOD. ENDCLASS.
CDS Table Function’ı test ediyoruz.
Sonuç aşağıdaki gibi olacaktır.