Tuesday, 30 September 2025

ABAP CDS View Part 8 : CDS untuk OData & Fiori

CDS untuk OData & Fiori | Ekspos Consumption View ke OData SAP

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:

AnotasiFungsi singkat
@OData.publish: trueMenghasilkan (auto-generate) service OData untuk consumption view (cepat untuk dev/testing).
@UI.headerInfoInfo header untuk Fiori Elements
@UI.lineItemMenentukan kolom yang muncul di list (Fiori Elements)
@UI.selectionFieldField yang muncul di filter bar
@AccessControl.authorizationCheckBagian 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)

  1. Aktifkan CDS di ADT (Ctrl+F3).
  2. Buka transaction /IWFND/MAINT_SERVICE pada sistem Gateway (Fiori server atau system yang jadi front-end).
  3. 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*).
  4. Pilih service → klik Add Selected Services → tunggu hingga status “Active”.
  5. 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.
Ringkasan:
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.

No comments:

Post a Comment

ABAP CDS View Part 10 : Authorization & DCL untuk ABAP CDS

Authorization & DCL di ABAP CDS | Panduan Lengkap (PFCG, @AccessControl, DCL) Authorization & DCL untuk ABAP CDS — Pandua...