CDS untuk OData & Fiori — Ekspos Consumption View sebagai OData Service
Di episode ini kita akan membahas bagaimana membuat CDS Consumption View agar bisa diakses sebagai OData service dan digunakan oleh Fiori/UI5 (mis. Fiori Elements). Fokus praktis: anotasi penting, langkah aktivasi service di Gateway, dan cara menguji endpoint OData.
Ringkasan alur kerja
- Buat Consumption View (CDS) yang berisi field & annotation untuk UI/OData.
- Tambahkan anotasi publikasi OData (mis.
@OData.publish: true
) atau buat Service Definition + Service Binding. - Aktifkan / daftarkan service di transaction
/IWFND/MAINT_SERVICE
(SAP Gateway). - Uji endpoint OData via browser/Postman dan integrasikan ke Fiori/UI5 atau Fiori Elements.
1. Anotasi penting untuk OData & Fiori
Beberapa anotasi yang sering digunakan:
Anotasi | Fungsi singkat |
---|---|
@OData.publish: true | Menghasilkan (auto-generate) service OData untuk consumption view (cepat untuk dev/testing). |
@UI.headerInfo | Info header untuk Fiori Elements |
@UI.lineItem | Menentukan kolom yang muncul di list (Fiori Elements) |
@UI.selectionField | Field yang muncul di filter bar |
@AccessControl.authorizationCheck | Bagian security — jika #CHECK, harus ada DCL |
Tip: @OData.publish: true
berguna untuk percepatan pengembangan, tapi di landscape production biasanya tim Basis/NetWeaver mendaftarkan service secara manual dengan Service Definition / Service Binding untuk kontrol lebih ketat.
2. Contoh CDS Consumption View dengan @OData.publish
@AbapCatalog.sqlViewName: 'ZV_CDS_MAT_CONS'
@AbapCatalog.compiler.compareFilter: true
@EndUserText.label: 'Consumption view: Material for OData'
@OData.publish: true
@VDM.viewType: #CONSUMPTION
define view ZCDS_MATERIAL_CONS
as select from mara as M
inner join makt as T on M.matnr = T.matnr
{
key M.matnr as Material,
T.maktx as Description,
M.mtart as MaterialType,
M.matkl as MaterialGroup
}
Jika view di-activate dengan annotation @OData.publish: true
, sistem biasanya mempersiapkan artefak service yang bisa didaftarkan/diaktifkan pada Gateway.
3. Cara mendaftarkan dan mengaktifkan OData Service (ringkasan langkah)
- Aktifkan CDS di ADT (Ctrl+F3).
- Buka transaction
/IWFND/MAINT_SERVICE
pada sistem Gateway (Fiori server atau system yang jadi front-end). - Klik Add Service (Register Service) → pilih backend system alias / technical system → cari service yang generated (nama service biasanya bereferensi ke nama view atau prefix seperti Z*).
- Pilih service → klik Add Selected Services → tunggu hingga status “Active”.
- Jika service membutuhkan authentication atau ICF node, pastikan admin Basis sudah konfigurasi dan ICF service aktif.
Catatan penting: Nama service yang muncul di Gateway dapat berbeda-beda (tergantung konfigurasi). Jika @OData.publish
tidak dipakai, Anda perlu membuat Service Definition (SEGW) atau Service Binding (RAP) secara manual.
4. Testing endpoint OData
Contoh pola URL OData (umum):
https://:/sap/opu/odata/sap//
-- Contoh resource:
https://my.sap.system:443/sap/opu/odata/sap/ZCDS_MATERIAL_CONS/MaterialSet?$top=10
- Buka URL di browser (untuk GET collection) atau gunakan Postman untuk pengujian lebih lanjut (headers, auth).
- Gunakan parameter query standar OData ($filter, $select, $top, $skip, $orderby).
- Jika menggunakan Fiori Elements, service metadata harus lengkap (/sap/opu/odata/sap/
/$metadata).
5. Menghubungkan ke Fiori/UI5 (singkat)
- Jika ingin Fiori Elements: buat aplikasi Fiori Elements List Report yang menunjuk ke OData service (service alias di manifest.json).
- Gunakan annotation UI (di CDS) untuk menyesuaikan layout List, Table, Selection fields, headerInfo.
- Untuk app custom UI5: panggil endpoint OData dari model (OData V2/V4) dan bind ke control table/list.
6. Praktik terbaik & peringatan
- Gunakan @OData.publish untuk dev/test, tapi pertimbangkan proses registrasi service formal di landscape production.
- Pastikan security/DCL sudah benar jika data sensitif (annotation
@AccessControl
dan file DCL terkait). - Jangan expose terlalu banyak field atau field sensitif tanpa filtering/authorization.
- Perhatikan performa: gunakan filter pushdown, batasi result set dengan $top atau implementasi paging.
- Selalu cek
$metadata
— Fiori Elements sangat bergantung pada metadata yang lengkap dan konsisten.
Mengekspos CDS Consumption View ke OData memungkinkan integrasi cepat ke Fiori/UI5. Untuk percepatan gunakan
@OData.publish: true
, namun di production sebaiknya service didaftarkan dan dikontrol oleh tim Basis (registrasi di /IWFND/MAINT_SERVICE
, ICF, dan security). Gunakan annotation UI untuk Fiori Elements agar tampilan lebih rapi tanpa coding UI tambahan.
➡️ Next (Episode 9): CDS Analytical — membahas konsep fact & dimension, annotation analytics, dan penggunaan CDS untuk reporting/embedded analytics.