SAP / Gateway Services

SAP Gateway & OData Services

SAP Gateway & OData Services

Panduan perancangan dan deployment layanan RESTful OData (Open Data Protocol) untuk menghubungkan aplikasi Web modern dengan modul SAP.


1. Arsitektur SAP Gateway

SAP NetWeaver Gateway berfungsi sebagai perantara (middleware/reverse proxy) yang menerjemahkan model data internal SAP menjadi representasi format standar web: JSON dan Atom/XML melalui protokol HTTP/HTTPS.

  • Service Builder (SEGW): Transaksi untuk merancang Entity Type, Entity Set, Association, dan Navigation Property secara grafis.
  • Gateway Service Catalog (/IWFND/MAINT_SERVICE): Transaksi untuk mendaftarkan dan mempublikasikan layanan OData ke endpoint HTTP.
  • Gateway Client (/IWFND/GW_CLIENT): Alat pengujian interaktif untuk menembak query dan payload OData langsung di dalam SAP GUI.

2. Publikasi OData via CDS View

Pada arsitektur modern (S/4HANA / ABAP RESTful Application Programming Model), OData service dapat diekspos secara otomatis langsung dari definisi CDS View menggunakan anotasi @OData.publish: true:

SQL
@AbapCatalog.sqlViewName: &class="tok-comment">#39;ZVI_CUST_ORD'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: class="tok-comment">#CHECK
@EndUserText.label: &class="tok-comment">#39;Customer Sales Order Overview'
@OData.publish: true

define view ZC_SalesOrderOverview
  as select from vbak as Header
  association [1..*] to vbap as _Items
    on $projection.SalesOrder = _Items.vbeln
{
  key Header.vbeln as SalesOrder,
      Header.kunnr as CustomerNumber,
      Header.netwr as TotalNetAmount,
      Header.waerk as Currency,
      Header.erdat as CreationDate,
      
      /* Expose asosiasi item */
      _Items
}

3. Query Parameter Standar OData

Layanan OData mendukung query URL deklaratif tanpa perlu menulis custom logic:

HTTP
GET /sap/opu/odata/sap/ZSALES_SRV/ZC_SalesOrderOverview?$filter=CustomerNumber eq &class="tok-comment">#39;100021' and TotalNetAmount gt 5000000&$top=20&$skip=0&$orderby=CreationDate desc&$format=json
Parameter Fungsi
$select Memilih kolom tertentu untuk memangkas bandwidth jaringan.
$filter Menyaring data secara fleksibel (eq, ne, gt, contains).
$expand Memuat data asosiasi/relasi anak secara bersamaan dalam satu request.
$skip & $top Paginasi data server-side secara efisien.