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.

ABAP CDS View Part 7 : Extend View & Reuse

Extend & Reuse CDS View — Extend View Entity di ABAP CDS | SAP Tutorial

Extend View & Reuse — Memperluas CDS tanpa Mengubah Base View

When projects grow, requirement berubah, atau kamu butuh custom field untuk customer/partner, kita tidak selalu ingin mengubah CDS standar yang sudah ada. CDS View extension memungkinkan developer menambah field atau association ke view yang sudah ada — tanpa memodifikasi object asli. Ini mirip konsep append structure di ABAP Dictionary, tapi untuk CDS. :contentReference[oaicite:1]{index=1}

1) Dua pendekatan utama

  • Extend View Entity (new syntax) — direkomendasikan untuk view entity modern (define view entity). Ada statement baru EXTEND VIEW ENTITY untuk extensibility. :contentReference[oaicite:2]{index=2}
  • Extend / Append style (older templates) — untuk `define view` yang lebih lama, ADT menyediakan template Extend View yang menghasilkan object extension yang menambahkan kolom/association. Banyak tutorial praktis menjelaskan alurnya. :contentReference[oaicite:3]{index=3}

2) Contoh konsep (pattern) — extend via separate data definition

Prinsipnya: kamu buat object CDS baru (extension) yang menunjuk ke CDS base, lalu tambahkan elemen yang diperlukan. Extension ini disimpan di object terpisah dan dapat dideploy/transport secara independen.

2.a — Contoh pola umum (pseudocode / template)

-- Template style (ADT: "Extend View")
@AbapCatalog.sqlViewAppendName: 'ZV_BASE_EXT'    "SQL append name (16 chars)
@EndUserText.label: 'Extension: add extra fields'
extend view ZCDS_BASE with ZCDS_BASE_EXT
{
  -- refer to original data source alias of base view, e.g. "BaseSource.field"
  BaseSource.extra_field,
  AnotherSource.more_field
}

Note: Actual template generated by ADT may use keywords like EXTEND VIEW or EXTEND VIEW ENTITY depending on whether base view is legacy DEFINE VIEW or modern DEFINE VIEW ENTITY. Selalu gunakan template ADT agar format dan atribut transport/activation benar. :contentReference[oaicite:4]{index=4}

2.b — Contoh praktis: menambah field teks ke consumption view

-- Base consumption view (example)
define view ZCDS_MATERIAL_BASE
  as select from mara as M
{
  key M.matnr,
      M.mtart,
      M.matkl
}

-- Extension (contoh)
@AbapCatalog.sqlViewAppendName: 'ZV_MAT_EXT'
@EndUserText.label: 'Extension: add material description'
extend view ZCDS_MATERIAL_BASE with ZCDS_MATERIAL_BASE_EXT
{
  M.maktx   -- refer to data source field (MAKT) via path / alias if allowed
}

Di praktik nyata, kadang kamu perlu menggunakan path expression ke association extension (mis. _Extension) atau extend the E-view dulu sebelum extend R-view (pattern SAP standar). Ini berguna terutama pada standar SAP yang membatasi sumber data ekstensi. :contentReference[oaicite:5]{index=5}

3) Extensibility Control & Annotations penting

Owner dari base view bisa mengontrol apakah view boleh di-extend, dan dari mana extension boleh mengambil data, lewat annotation seperti:

AnnotationFungsi singkat
@AbapCatalog.viewEnhancementCategoryMenentukan bagian view yang boleh di-extend (mis. PROJECTION_LIST, AGGREGATE)
@AbapCatalog.extensibilityKontrol lebih detil atas extensibility (allowNewDatasources, dataSources, elementSuffix, dsb.)
@AccessControlMasih berlaku — extension tetap mengikuti security & DCL jika ada

Dengan pengaturan ini, pemilik object mengatur batasan yang aman untuk ekstensi (mis. tidak membiarkan membaca sembarang tabel baru tanpa izin). :contentReference[oaicite:6]{index=6}

4) Best Practice untuk Reuse & Extension

  • Jangan ubah base view langsung — buat extension object terpisah agar upgrade-safe.
  • Gunakan E-views (extension includes) — SAP sering menyediakan E_* views sebagai target extension; tambah field ke E-view lalu expose ke R-view. Ini pattern aman untuk standard SAP. :contentReference[oaicite:7]{index=7}
  • Limit sumber data — jika owner men-set allowNewDatasources=false, extension hanya boleh membaca dari dataSources yang diizinkan.
  • Dokumentasikan extension — jelaskan kenapa field ditambah, mapping tabel asal, dan impact ke OData/UI.
  • Test data preview & OData exposure setelah aktivasi—pastikan tidak merusak binding ke Fiori Elements atau service metadata.

5) Kapan pakai extension vs membuat view baru?

  • Pakai extension jika: butuh menambah field ke view existing yang banyak dipakai, dan kamu ingin preserve konsistensi nama service/object.
  • Buat view baru jika: requirement berbeda total (struktur output berubah), atau kamu butuh behavior/aggregation berbeda.
Summary:
CDS View extension adalah cara upgrade-safe untuk menambah field atau association tanpa memodifikasi base view. Gunakan template ADT (Extend View / Extend View Entity), perhatikan annotation extensibility yang di-set oleh owner, dan ikuti best practice SAP (pakai E-view pattern bila tersedia). Untuk referensi resmi dan panduan langkah demi langkah, cek dokumentasi SAP dan tutorial ADT. :contentReference[oaicite:8]{index=8}

➡️ Next (Episode 8): CDS untuk OData & Fiori — expose consumption view ke OData, service binding, dan testing via Gateway.

ABAP CDS View Part 6 : CDS View dengan Parameter & Filter

CDS View dengan Parameter & Filter di ABAP | Tutorial SAP S/4HANA

CDS View dengan Parameter & Filter

Di Episode 5 kita belajar JOIN. Sekarang kita fokus pada parameterized CDS View: cara menambahkan input parameters untuk kontrol filter seperti bahasa (sy-langu), rentang tanggal, atau filter optional (opsional). Contoh-contoh di bawah bisa langsung dicoba di ADT Eclipse.

1) Pattern: Parameter Bahasa (sy-langu)

Sering dipakai saat join ke MAKT (material text) agar deskripsi mengikuti bahasa user secara otomatis. Gunakan @Environment.systemField: #SYSTEM_LANGUAGE untuk binding ke sy-langu.

@AbapCatalog.sqlViewName: 'ZV_MAKT_LANG'
@EndUserText.label     : 'Material Text by Language (Param)'

define view with parameters
  p_langu : abap.lang  -- CHAR(1)
    @Environment.systemField: #SYSTEM_LANGUAGE
ZCDS_MAKT_LANG
  as select from makt
{
  key matnr,
      spras,
      maktx
}
where spras = $parameters.p_langu
Tip: Dengan annotation @Environment.systemField: #SYSTEM_LANGUAGE, banyak consumer (mis. Fiori Elements) akan otomatis mengisi parameter sesuai bahasa user, tanpa kamu isi manual.

2) Pattern: Date Range (FROM–TO)

Memfilter data berdasarkan tanggal pembuatan (ERSDA) pada MARA.

@AbapCatalog.sqlViewName: 'ZV_MARA_DATER'
@EndUserText.label     : 'Material by Created Date Range'

define view with parameters
  p_date_from : abap.dats,
  p_date_to   : abap.dats
ZCDS_MARA_DATE_RANGE
  as select from mara
{
  key matnr,
      ersda,
      mtart,
      matkl
}
where ersda between $parameters.p_date_from and $parameters.p_date_to

3) Pattern: Optional Filter (Param Boleh Kosong)

CDS parameter wajib ada, tapi kamu bisa membuatnya “opsional” secara logika—misal, jika parameter kosong maka semua data diambil. Untuk tipe CHAR gunakan perbandingan dengan literal kosong ''.

@AbapCatalog.sqlViewName: 'ZV_MARA_OPT'
@EndUserText.label     : 'Optional Filter by MATNR'

define view with parameters
  p_matnr : abap.char(18)
ZCDS_MARA_OPT
  as select from mara
{
  key matnr,
      mtart,
      matkl
}
where ( $parameters.p_matnr = '' or matnr = $parameters.p_matnr )
Catatan: Untuk tipe tanggal/num, pakai nilai sentinel (mis. '00000000') atau range luas sebagai “mode all”.

4) Konsumsi di ABAP Open SQL

Cara memanggil CDS ber-parameter di ABAP (perhatikan sintaks kurung dan @ escape host variable).

DATA(lv_from) = '20240101'.
DATA(lv_to)   = '20241231'.

" Contoh 1: Date range
SELECT * FROM ZCDS_MARA_DATE_RANGE( p_date_from = @lv_from, p_date_to = @lv_to )
  INTO TABLE @DATA(lt_mara).

" Contoh 2: Language-bound (pakai sy-langu otomatis)
SELECT * FROM ZCDS_MAKT_LANG( p_langu = @sy-langu )
  INTO TABLE @DATA(lt_makt).

" Contoh 3: Optional filter
DATA(lv_matnr) = ''. " kosong = ambil semua
SELECT * FROM ZCDS_MARA_OPT( p_matnr = @lv_matnr )
  INTO TABLE @DATA(lt_opt)
  UP TO 100 ROWS. " limit di ABAP, bukan di CDS

5) Aktivasi & Data Preview di ADT

  • Activate (Ctrl + F3) data definition-nya
  • Klik kanan → Open Data Preview
  • Dialog akan minta nilai parameter → isi sesuai kebutuhan

6) Best Practices & Batasan

  • Gunakan tipe ABAP (mis. abap.lang, abap.dats) agar interoperabilitas lebih mudah
  • Hindari logika kompleks di WHERE—pindahkan ke Table Function bila perlu
  • Parameter bukan field—tidak muncul di output
  • Batasi jumlah parameter agar konsumsi OData/UI tetap simpel
Summary:
Parameter membuat CDS lebih fleksibel: bisa lock ke bahasa user, batasi data dengan date range, atau sediakan filter opsional. Konsumsi di ABAP sangat straightforward dengan sintaks VIEW_NAME( param = @var ).

➡️ Next (Episode 7): Extend View & Reuse — memperluas CDS tanpa modifikasi objek asli, strategi enhancement yang aman untuk upgrade.

ABAP CDS View Part 5 : CDS View dengan Join (Multi Table)

CDS View dengan Join di SAP ABAP | Tutorial SAP S/4HANA

CDS View dengan Join (Multi Table)

Kalau di Episode 4 kita main di single table CDS, sekarang kita naik level. Episode 5 fokus pada JOIN – fitur penting untuk gabung data dari beberapa tabel sekaligus, mirip SELECT JOIN di SQL, tapi lebih elegan dan reusable.

1. Tipe Join dalam CDS

  • Inner Join – hanya data yang cocok di kedua tabel
  • Left Outer Join – semua dari tabel utama + matching dari tabel kedua
  • Right Join jarang dipakai (direkomendasikan hindari)

2. Contoh Join: MARA + MAKT

Contoh umum: Material Master (MARA) dengan Deskripsi Material (MAKT).

@AbapCatalog.sqlViewName: 'ZV_JOIN_MARA'
@EndUserText.label     : 'CDS Join MARA dan MAKT'

define view ZCDS_JOIN_MARA
  as select from mara as A
    inner join makt as B
      on A.matnr = B.matnr
{
  key A.matnr,
      A.mtart,
      A.matkl,
      B.maktx,
      B.spras
}

Alias A dan B membantu membaca struktur dengan lebih jelas.

3. Contoh Left Outer Join

Kalau mau semua material muncul walaupun tidak ada translation:

define view ZCDS_JOIN_LEFT
  as select from mara as A
    left outer join makt as B
      on A.matnr = B.matnr
{
  key A.matnr,
      B.maktx,
      B.spras
}

4. Data Preview & Aktivasi

  • Tekan Ctrl + F3 untuk aktivasi
  • Klik kanan → Open Data Preview
  • Cek hasil join langsung dari Eclipse

5. Contoh Join di Modul SD (Header + Item)

@AbapCatalog.sqlViewName: 'ZV_VBAK_VBAP'
@EndUserText.label     : 'CDS Join VBAP dan VBAK'

define view ZCDS_JOIN_SALES
  as select from vbak as H
    inner join vbap as I
      on H.vbeln = I.vbeln
{
  key H.vbeln,
      H.auart,
      I.posnr,
      I.matnr,
      I.netwr
}

Struktur header–item ini sering dipakai untuk laporan atau OData.

6. Tips & Best Practice

  • Gunakan alias A, B, H, I biar kode clean
  • Hindari wildcard (*)
  • Selalu pakai key field untuk identifikasi
  • Join secukupnya (hindari join 7–8 tabel sekaligus)
Summary:
Join adalah fitur penting dalam CDS untuk gabung data dari beberapa tabel. Gunakan inner atau left join sesuai kebutuhan. Dengan struktur rapi dan alias, CDS View kamu siap dipakai untuk OData, analitik, atau laporan Fiori.

➡️ Next (Episode 6): CDS View dengan Filter & Parameter (misal p_langu, date filter, top N data).

ABAP CDS View Part 4 : Membuat CDS View Basic (Single Table)

Cara Membuat Basic CDS View di ABAP | Panduan SAP S/4HANA

Membuat CDS View Basic (Single Table)

Kalau di Episode 1–3 kita bahas konsep, struktur, dan annotation, sekarang kita langsung masuk ke praktik teknik real. Fokus Episode 4 adalah membuat CDS View basic dari satu tabel saja, misalnya MARA. Cocok untuk pemula dan jadi pondasi sebelum masuk ke join.

1. Lokasi & Naming Pattern

  • Buat di ADT (Eclipse)
  • Folder: core data services → data definitions
  • Prefix object misal ZCDS_*
  • SQL View Name max 16 karakter, huruf kapital

2. Contoh CDS View Basic

@AbapCatalog.sqlViewName: 'ZVBASIC_MARA'
@AbapCatalog.compiler.compareFilter: true
@EndUserText.label: 'CDS View Basic dari Tabel MARA'

define view ZCDS_BASIC_MARA
  as select from mara
{
  key matnr,
      ersda,
      mtart,
      matkl,
      meins
}

Struktur ini adalah pondasi minimal:

  • Annotation untuk nama DB & label
  • define view + nama object
  • select from (tabel utama)
  • daftar field

3. Aktivasi View

Setelah selesai coding:

  • Tekan Ctrl + F3 atau klik Activate
  • View .hdbdip dibuat otomatis di DB
  • Pastikan tidak ada error syntax

4. Data Preview

Untuk cek data:

  • Klik kanan nama view → Open Data Preview
  • Bisa filter langsung dari Eclipse
  • Tampilkan hasil table view

5. Query via ABAP (Optional)

SELECT * FROM ZCDS_BASIC_MARA
  INTO TABLE @DATA(lt_data).

IF lt_data IS NOT INITIAL.
  WRITE / |Total: { lines( lt_data ) }|.
ENDIF.

6. Contoh Lain (But000)

Kalau mau ambil data business partner:

@AbapCatalog.sqlViewName: 'ZVBASIC_BP'
@EndUserText.label     : 'CDS Basic from BUT000'

define view ZCDS_BASIC_BP
  as select from but000
{
  key partner,
      type,
      name_first,
      name_last
}
Summary:
CDS Basic View adalah langkah pertama yang wajib dikuasai. Dengan struktur sederhana (single table), kamu bisa latihan aktivasi, preview data, dan mulai membangun fondasi untuk episode lanjutan seperti join, annotation lanjutan, dan exposure ke OData.

➡️ Next (Episode 5): CDS View dengan Join Antar Tabel (misal MARA + MAKT atau VBAK + VBAP).

ABAP CDS View Part 3 : Annotation dalam CDS View

Annotation Lengkap dalam ABAP CDS View | Panduan SAP S/4HANA

Annotation dalam CDS View

Di Episode 2 kita sudah lihat struktur dasar CDS View. Nah, di Episode 3 ini kita fokus pada annotation — elemen krusial yang bikin CDS powerful. Annotation digunakan untuk memberi metadata tambahan, mengontrol behavior, ekspos data, UI, security, sampai analytic integration.

1. Kategori Annotation Utama

Kategori Fungsi Contoh
Catalog Pengaturan DB View dan compiler @AbapCatalog.sqlViewName
Text/Documentation Label, deskripsi object @EndUserText.label
OData/Exposure Publish sebagai OData Service @OData.publish
Authorization Check akses user @AccessControl.authorizationCheck
UI Annotation Integrasi Fiori/UI5 @UI.lineItem
Analytics OLAP, cube, dimension @Analytics.query

2. Contoh Annotation Dasar

@AbapCatalog.sqlViewName: 'ZV_MARA_ANN'
@AbapCatalog.compiler.compareFilter: true
@EndUserText.label: 'CDS with Annotation Example'
@AccessControl.authorizationCheck: #CHECK
@OData.publish: true

define view ZCDS_MARA_ANN
  as select from mara
{
  key matnr,
      ersda,
      mtart,
      matkl
}
  • @OData.publish: true → otomatis generate service
  • @AccessControl.authorizationCheck: #CHECK → integrasi ke DCL
  • @AbapCatalog.sqlViewName → nama di database

3. Contoh UI Annotation

@UI.lineItem: [
  {
    position: 10,
    label: 'Material',
    value: matnr
  },
  {
    position: 20,
    label: 'Material Type',
    value: mtart
  }
]
define view ZCDS_UI_DEMO
  as select from mara
{
  key matnr,
      mtart,
      matkl
}

Annotation ini sering dipakai kalau CDS akan dihubungkan ke Fiori Elements tanpa perlu coding tambahan.

4. Authorization Annotation

@AccessControl.authorizationCheck: #NOT_REQUIRED
-- atau
@AccessControl.authorizationCheck: #CHECK

Kalau pakai #CHECK, maka harus ada DCL (Data Control Language) yang mengatur role-based access.

5. Contoh Analytic Annotation (Singkat)

@Analytics.query: true
@VDM.viewType: #CONSUMPTION

Biasanya dipakai untuk reporting (misalnya embedded analytics).

Summary:
Annotation adalah “superpower”-nya CDS View. Dengan anotasi, satu object bisa sekaligus jadi source OData, UI Fiori, analytic cube, atau dilindungi security.

➡️ Next Episode (4): Praktik Membuat CDS Basic View
(dari tabel MARA, join sederhana, dan aktivasi).

Monday, 29 September 2025

ABAP CDS View Part 2 : Struktur & Sintaks Dasar ABAP CDS View

Struktur & Sintaks Dasar ABAP CDS View | Tutorial SAP S/4HANA

Struktur & Sintaks Dasar ABAP CDS View

Setelah memahami konsep CDS di Episode 1, sekarang kita lanjut ke bagian teknis: bagaimana struktur dasar CDS View, elemen pentingnya, dan contoh sederhana yang bisa langsung dicoba di ADT Eclipse.

1. Komponen Utama dalam CDS View

  • Define View — deklarasi utama
  • SQL Source — tabel / source data
  • Annotation — metadata tambahan
  • Field List — kolom yang diekspose

2. Contoh Struktur Dasar

@AbapCatalog.sqlViewName: 'ZV_MARA_DEMO'
@AbapCatalog.compiler.compareFilter: true
@EndUserText.label: 'Contoh CDS View Sederhana'

define view ZCDS_MARA_DEMO
  as select from mara
{
  matnr,
  ersda,
  mtart,
  matkl
}

Penjelasan singkat:

  • @AbapCatalog.sqlViewName → nama view di level DB
  • @EndUserText.label → nama yang tampil di UI
  • define view → deklarasi object
  • select from → ambil data dari tabel
  • Field list → kolom yang diekspos

3. Annotation Dasar yang Wajib Diketahui

  • @AbapCatalog.sqlViewName — identifier level DB
  • @EndUserText.label — deskripsi object
  • @AccessControl.authorizationCheck — security
  • @OData.publish — expose ke OData

4. Aktivasi & Testing

Setelah kode dibuat di ADT Eclipse:

  • Tekan Ctrl + F3 atau klik Activate
  • Gunakan Data Preview untuk cek data
  • Bisa juga query via SELECT * FROM di ABAP

Contoh Preview Query di ABAP

SELECT * FROM ZCDS_MARA_DEMO
  INTO TABLE @DATA(lt_mara).
Summary:
Struktur CDS sangat sederhana: annotation, define view, select from, dan daftar field. Dengan format ini, kita bisa mulai membangun view yang reusable dan performa tinggi.

➡️ Up Next (Episode 3): Annotation lengkap CDS View (kategori teknis, UI, OData, authorization, dan contoh penerapannya).

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...