Apa itu BADI? SAP ABAP?
โก Ringkasan Cerdas
BADI di SAP ABAP adalah singkatan dari Business Add-In, sebuah peningkatan berorientasi objek yang menghubungkan logika kustom ke standar. SAP fungsionalitas. Halaman ini menjelaskan apa itu BADI, fitur-fiturnya, tipe klasik dan baru, alur kerja SE18 dan SE19, serta bagaimana perbandingannya dengan exit.

Apa itu BADI?
BADI adalah singkatan dari Bkegunaan Add ISama seperti Customer Exit, BADI membantu menghubungkan peningkatan kustom ke SAP fungsionalitas. Contoh BADI: Dalam transaksi CAT2 โ Entri Lembar Waktu, HR ingin menyertakan pengakuan interaktif bahwa dengan sengaja mengirimkan data yang salah merupakan alasan pemecatan. Hal ini dapat dicapai dengan menggunakan BADI
Perbedaan dari exit klasik bersifat teknis. BADI dibangun di atas ABAP Objects, sehingga program standar memanggil metode antarmuka, dan kode kustom berada dalam kelas yang mengimplementasikan metode tersebut. Inilah mengapa BADI sering digambarkan sebagai penerus berorientasi objek dari exit klasik. pelanggan keluar.
Fitur
- BADI Berorientasi Objek
- Mereka dapat diterapkan berkali-kali
- Itu tidak membutuhkan SAP Perangkat lunak Ubah Pendaftaran
- Tidak ada efek pada rilis yang ditingkatkan pada fungsi BADI
Keempat fitur ini menjelaskan mengapa SAP Merekomendasikan BADI daripada exit klasik. Karena peningkatan tersebut berada dalam kelas terpisah, ia tetap ada setelah pembaruan tanpa perubahan, dan karena BADI dapat didefinisikan sebagai penggunaan ganda, beberapa tim dapat meningkatkan titik yang sama tanpa saling menimpa.
Jenis-jenis BADI
SAP menawarkan dua generasi Business Add-Ins (BADI). BADI klasik adalah versi berbasis peningkatan yang dijelaskan di atas, dan BADI baru, yang diperkenalkan dengan SAP NetWeaver, merupakan bagian dari Enhancement Framework dan lebih cepat serta lebih fleksibel.
| Kriteria | BADI Klasik | BADI Baru (Kernel) |
|---|---|---|
| Dipertahankan di | SE18 dan SE19 | Pembuat Peningkatan di dalam tempat peningkatan |
| filter | Nilai filter sederhana | Kombinasi filter dengan ekspresi logis |
| Fallback | Tidak tersedia | Kelas cadangan default akan berjalan ketika tidak ada implementasi yang aktif. |
| Instansiasi | CL_EXITHANDLER=>GET_INSTANCE | Pernyataan GET BADI dan CALL BADI |
| Performance | Lebih lambat, objek dibuat setiap kali dipanggil. | Lebih cepat, dikelola oleh kernel. |
Kedua generasi tersebut ditemukan dan diimplementasikan dengan cara yang serupa, yang akan dijelaskan selanjutnya.
Cara Mendefinisikan dan Mengimplementasikan BADI
Ini melibatkan tiga langkah
Langkah 1) Membuat Definisi BADI dan antarmuka-nya: Transaksi SE18.
Langkah 2) Buat Implementasi BADI: Transaksi SE19
Langkah 3) Definisikan kelas yang mengimplementasikan antarmuka: Selama pembuatan implementasi, kelas untuk mengimplementasikan antarmuka peningkatan juga dibuat.
Dalam kode, program standar mencapai implementasi melalui penanganan keluar (exit handler). Pola klasik menginstansiasi referensi BADI dan kemudian memanggil metode antarmuka.
* Reference typed with the BADI interface DATA: lo_badi TYPE REF TO zif_ex_badi_demo. * Get the active implementation(s) CALL METHOD cl_exithandler=>get_instance CHANGING instance = lo_badi. * Call the interface method that carries the custom logic CALL METHOD lo_badi->check_data EXPORTING is_input = ls_input.
๐ก Kiat: BADI kernel baru dipanggil dengan lebih sederhana menggunakan GET BADI dan CALL BADI, yang juga menangani nilai filter secara otomatis. Gunakan SE18 untuk memeriksa apakah titik peningkatan tersebut merupakan BADI klasik atau BADI baru sebelum menulis panggilan.
โ ๏ธ Peringatan: Transaksi SE18 berisi definisi dan antarmuka, sedangkan SE19 berisi implementasi. Membuat implementasi di SE18, atau definisi di SE19, adalah kesalahan umum yang menyebabkan BADI menjadi tidak aktif.
BADI vs Customer Exit vs User Exit
Ketiga teknik tersebut meningkatkan standar. SAPNamun, keduanya berbeda dalam hal teknologi dan fleksibilitas. Tabel di bawah ini menempatkan BADI di samping dua sistem yang lebih lama. teknik keluar.
| Kriteria | Keluar Pengguna | Pelanggan Keluar | BADI |
|---|---|---|---|
| Teknologi | Subrutin (FORMULIR) | Modul fungsi, layar, atau menu | Antarmuka dan kelas berorientasi objek |
| Cakupan | Modul SD saja | Semua modul | Semua modul |
| Jumlah implementasi | Satu | Satu | Banyak, jika didefinisikan sebagai penggunaan ganda |
| Dipelihara dengan | Pengeditan langsung dari yang disertakan | SMOD dan CMOD | SE18 dan SE19 |
| Upgrade Safety | Sudah diperiksa dengan SPAU | Ya | Ya |
Aturan praktisnya adalah menggunakan BADI setiap kali ada, karena BADI berorientasi objek, aman untuk peningkatan versi, dan dapat diimplementasikan lebih dari sekali.



