SAP Tutorial BAPI – Cara Membuat BAPI di ABAP
⚡ Ringkasan Cerdas
BAPI di SAP ABAP adalah metode terstandarisasi dan berkemampuan RFC untuk objek bisnis yang memungkinkan aplikasi eksternal mengakses proses dan data R/3. Halaman ini menjelaskan BAPI terstandarisasi, cara membuatnya di SWO1, pengujian, perilisan, dan cara memanggil BAPI dari ABAP.

Apa itu BAPI?
Antarmuka Pemrograman Aplikasi Bisnis (BAPI) adalah antarmuka pemrograman (metode) standar yang memungkinkan aplikasi eksternal mengakses proses bisnis dan data dalam Sistem R/3.
Mereka menyediakan metode yang stabil dan terstandarisasi untuk mencapai integrasi yang mulus antara Sistem R/3 dan aplikasi eksternal, sistem lama, dan add-on.
BAPI didefinisikan dalam BOR (Repositori objek bisnis) sebagai metode SAP Tipe objek bisnis yang menjalankan fungsi bisnis tertentu. Objek-objek ini diimplementasikan sebagai berikut: Fungsi berkemampuan RFC modul dan dibuat di Pembuat Fungsi di Meja Kerja ABAP.
Beberapa BAPI dan metode menyediakan fungsi dasar dan dapat digunakan untuk sebagian besar orang SAP Objek Bisnis. Ini disebut BAPI TERSTANDARDISASI.
Daftar BAPI Terstandar:
- BAPI untuk Membaca Data – GetList() , GetDetail() , GetStatus() , ExistenceCheck()
- BAPI untuk Membuat atau Mengubah Data- Create() ,Change(),Delete() dan Undelete() ,
- BAPI untuk Pemrosesan Massal -ChangeMultiple(), CreateMultiple(), DeleteMultiple().
Keunggulan BAPI
BAPI lebih disukai daripada teknik berbasis layar karena merupakan antarmuka yang terdokumentasi dan dirilis. SAP Tetap stabil di setiap rilis. Hal ini memberikan beberapa manfaat praktis.
- Antarmuka yang stabil: Tanda tangan BAPI yang telah dirilis tidak berubah saat dilakukan peningkatan versi, sehingga program yang memanggilnya tetap berfungsi.
- Penggunaan kembali logika bisnis: BAPI menjalankan validasi yang sama seperti transaksi, sehingga data yang ditambahkan melaluinya tetap konsisten.
- Akses jarak jauh diaktifkan: Karena BAPI adalah modul fungsi yang mendukung RFC, maka BAPI dapat dipanggil dari modul fungsi lain. SAP sistem, a Java atau program .NET, atau layanan web.
- Tidak ada ketergantungan pada layar: Tidak seperti perekaman input batch, BAPI tidak akan rusak ketika tata letak layar berubah.
Setelah konsep dan manfaatnya jelas, bagian selanjutnya akan membangun BAPI langkah demi langkah.
Cara membuat BAPI
Langkah 1) Buka transaksi swo1 (Alat->Kerangka Bisnis -> Pengembangan BAPI -> Pembuat Objek Bisnis). Pilih objek bisnis, sesuai dengan persyaratan fungsional yang membuat BAPI dibuat.
Langkah 2) Buka objek bisnis dalam mode perubahan. Kemudian Pilih Utilitas -> Metode API -> Tambahkan metode. Kemudian masukkan nama modul fungsi dan pilih Lanjutkan.
Langkah 3) Pada kotak dialog berikutnya, informasi berikut perlu ditentukan:
- Metode : Sarankan nama yang sesuai untuk metode tersebut,
- Teks : Masukkan deskripsi untuk BAPI,
- Tombol radio : Dialog, Synckronik, Tidak bergantung pada instans. BAPI biasanya diimplementasikan secara sinkron.
Langkah 4) Untuk membuat metode pilih Ya di kotak dialog berikutnya.
Langkah 5) Setelah program dibuat dan dieksekusi, periksa program pada metode yang baru saja dibuat. Dengan demikian, BAPI dibuat.
Menguji BAPI
Anda dapat menguji BAPI dengan pengujian metode individual Objek Bisnis di Pembuat Objek Bisnis. (atau seseorang dapat menggunakan transaksi 'SWUD' untuk menguji metode ini).
Melepaskan dan membekukan BAPI
- Untuk melepaskan BAPI, pertama lepaskan modul fungsi (menggunakan transaksi se37).
- Tetapkan status metode menjadi 'dirilis' di Business Object Builder (menggunakan transaksi SWO1 – Edit-> ubah status-> dirilis. )
Anda juga dapat menggunakan BAPI Explorer (Kode Transaksi BAPI) untuk tampilan 360′ di BAPI
Cara Memanggil BAPI di ABAP
BAPI dipanggil seperti modul fungsi berkemampuan RFC lainnya. Aturan pentingnya adalah BAPI tidak pernah mengeluarkan perintah COMMIT WORK sendiri, sehingga pemanggil harus mengkonfirmasi perubahan dengan BAPI_TRANSACTION_COMMIT, atau membatalkannya dengan BAPI_TRANSACTION_ROLLBACK. Contoh di bawah ini membuat pesanan penjualan dengan BAPI standar.
DATA: ls_header TYPE bapisdhd1, lt_items TYPE STANDARD TABLE OF bapisditm, lt_return TYPE STANDARD TABLE OF bapiret2, lv_order TYPE vbeln. * Fill the header and item structures, then call the BAPI CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2' EXPORTING order_header_in = ls_header IMPORTING salesdocument = lv_order TABLES order_items_in = lt_items return = lt_return. * A BAPI does not commit on its own - decide based on the return table READ TABLE lt_return WITH KEY type = 'E' TRANSPORTING NO FIELDS. IF sy-subrc = 0. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. ENDIF.
⚠️ Peringatan: Selalu periksa tabel RETURN untuk pesan bertipe E atau A sebelum melakukan commit. Memanggil BAPI_TRANSACTION_COMMIT setelah terjadi kesalahan akan menyimpan dokumen yang tidak lengkap, yang merupakan salah satu kesalahan BAPI yang paling umum.
BAPI vs BDC vs RFC
BAPI, sebuah BDC, dan RFC biasa semuanya memindahkan data ke SAPNamun, keduanya berbeda dalam hal stabilitas dan apa yang mereka gunakan kembali. Tabel di bawah ini membandingkannya.
| Kriteria | BAPI | BDC | RFC (kustom) |
|---|---|---|---|
| Antarmuka | Metode yang dirilis dari sebuah objek bisnis | Urutan tampilan layar suatu transaksi | Modul fungsi kustom apa pun |
| Stabilitas saat peningkatan | Dijamin untuk BAPI yang dirilis | Akan error jika layar berubah. | Tergantung pada pengembangnya |
| Akses jarak jauh diaktifkan | Ya | Tidak | Ya |
| Validasi bisnis | Lengkap, sama seperti transaksi. | Penuh, menampilkan layar sebenarnya | Hanya apa yang dikodekan oleh pengembang. |
| Terbaik untuk | Integrasi dan antarmuka yang stabil | Muatan yang tidak memiliki BAPI. | Layanan titik ke titik khusus |
Aturan umumnya adalah menggunakan BAPI yang sudah dirilis jika ada, beralih ke BDC jika tidak ada, dan menyimpan RFC kustom untuk layanan khusus.





