SAP BAPI (Business Application Programming Interface) adalah antarmuka standar untuk business object model di produk SAP.

BAPI adalah cara utama yang dipakai kode kustom maupun aplikasi pihak ketiga untuk berinteraksi dengan produk SAP. BAPI membungkus layer internal dari business object model SAP supaya semua business logic, validasi, dan pengecekan otorisasi tetap dijalankan dengan benar saat mengakses atau mengubah business object.

Bagaimana cara kerja BAPI

BAPI diimplementasikan sebagai function module yang memanggil kode internal SAP. Tergantung set BAPI yang dipakai, mereka bisa memanggil business object model yang didefinisikan lewat Business Objects Processing Framework (BOPF) atau model lama (legacy) yang berbasis program, tabel, dan function module.

BAPI menyediakan antarmuka yang formal dan stabil, sehingga developer (baik dari customer maupun pihak ketiga) bisa mengakses business object SAP dengan cara yang dijamin SAP tetap kompatibel di masa depan. Memang bisa saja langsung akses tabel atau function module non-BAPI di SAP, tapi cara itu tidak dijamin akan tetap bekerja di masa depan, bahkan object-nya bisa saja hilang.

Kalau pakai non-BAPI interface, bisa muncul masalah waktu upgrade, atau butuh patch tambahan kalau ada perubahan signature pada function module internal, sehingga kode yang bergantung padanya jadi invalid.

Penggunaan SAP BAPI

BAPI hanya boleh digunakan oleh developer (customer atau pihak ketiga) kalau statusnya sudah “released”, artinya SAP sudah menandainya siap dipakai dan dijamin stabil di masa depan. Status release bisa dicek lewat field Released On di atribut function module BAPI. Kalau field kosong, berarti BAPI itu belum dirilis dan sebaiknya tidak dipakai.

Untuk menggunakan SAP BAPI di bahasa Advanced Business Application Programming (ABAP), developer bisa menggunakan statement CALL FUNCTION untuk memanggil function module (lihat screenshot 1). Alternatifnya, sebagian besar BAPI sudah remote-enabled, artinya bisa dipanggil lewat Remote Function Call (RFC), web services, atau SAP Java connector.

ABAP CALL FUNCTION
Screenshot penggunaan ABAP CALL FUNCTION untuk mengubah alamat

Fitur SAP BAPI

Ada banyak BAPI yang bisa dipakai untuk otomatisasi penuh sebagian besar business process di setiap produk SAP berbasis ABAP. Dokumentasi setiap produk SAP biasanya menyertakan daftar BAPI yang tersedia. Alternatif lain, bisa juga cari function module yang prefix-nya “BAPI” lewat transaction code SE37 atau SE80 di SAP, atau via ABAP for Eclipse.

Setiap function module BAPI harus punya dokumentasi detail dalam berbagai bahasa, bisa diakses lewat menu Function Module Documentation di SE37. Dokumentasi ini penting dibaca karena struktur dan perilaku tiap BAPI bisa sangat berbeda, dan kadang bisa error dengan pesan yang susah dimengerti kalau requirement-nya tidak terpenuhi.

SAP BAPI code for changing an address
Contoh kode BAPI untuk mengubah alamat

Banyak BAPI yang punya struktur kompleks untuk merepresentasikan business object. Misalnya BAPI untuk update alamat business partner (screenshot 2, sama dengan CALL FUNCTION di screenshot 1) biasanya punya banyak struktur importing dan parameter tabel untuk kirim data tambahan ke/dari BAPI.

Dua parameter penting di screenshot 2 adalah ADDRESSDATA dan ADDRESSDATA_X. Pola seperti ini umum di BAPI, di mana struktur dengan suffix _X berfungsi sebagai flag penanda field mana saja yang harus di-update.

Praktik penggunaan BAPI

Karena BAPI diimplementasikan sebagai function module, mereka tidak sepenuhnya cocok dengan paradigma object-oriented programming (OOP) di ABAP yang berbasis class, method, dan interface. Tapi pada praktiknya, BAPI tetap diorganisir dengan cara yang mirip OOP karena mereka bertindak sebagai interface ke business object SAP.

Di ABAP, function module ini bisa dipanggil dari program, function module lain, atau class. Best practice-nya, BAPI biasanya dibungkus dalam Data Access Object (DAO), yaitu class yang mengenkapsulasi pemanggilan BAPI. Dengan cara ini, developer bisa melakukan unit testing pakai mock DAO, sehingga kode developer bisa dites terpisah dari pemanggilan BAPI-nya langsung.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *