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.

  • ๐Ÿงฉ Definisi Inti: Business Add-In adalah sebuah fitur tambahan, seperti customer exit, yang menambahkan fungsionalitas khusus ke fitur standar. SAP tanpa mengubahnya.
  • ๐Ÿงฑ Berorientasi Objek: BADI mendefinisikan sebuah antarmuka, dan peningkatan tersebut terdapat dalam kelas yang mengimplementasikannya, bukan dalam include yang dicadangkan.
  • ๐Ÿ” Berbagai Implementasi: Berbeda dengan customer exit, BADI dapat diimplementasikan beberapa kali, yang sesuai dengan solusi industri dan versi negara.
  • ๐Ÿ”“ Upgrade Lemari Besi: BADI tidak memerlukan SAP Registrasi Perubahan Perangkat Lunak tidak terpengaruh oleh peningkatan rilis.
  • ๏ธ Definisi dan Implementasi: Definisi dan antarmuka dibuat di SE18, dan implementasinya beserta kelasnya dibuat di SE19.
  • ๐Ÿ†• Klasik dan Baru: BADI klasik berbasis peningkatan, dan BADI kernel baru yang diperkenalkan di NetWeaver menambahkan filter, kelas cadangan, dan kinerja yang lebih baik.

Apa itu BADI? SAP ABAP

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

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

Definisikan dan Implementasikan BADI

Langkah 2) Buat Implementasi BADI: Transaksi SE19

Definisikan dan Implementasikan BADI

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.

Pertanyaan Umum Demo Slot

SE18 adalah BADI Builder tempat definisi dan antarmuka dibuat. SE19 adalah Implementation Builder tempat kelas implementasi dilampirkan ke definisi tersebut. Yang satu mendefinisikan hook, yang lain mengisinya.

BADI multiguna memungkinkan lebih dari satu implementasi aktif secara bersamaan, dan semuanya akan berjalan saat metode dipanggil. BADI sekali pakai hanya mengizinkan satu implementasi aktif.

Tetapkan breakpoint pada CL_EXITHANDLER=>GET_INSTANCE, jalankan transaksi, dan baca nama BADI dari parameter EXIT_NAME. Untuk BADI baru, cari enhancement spot program di Repository Information System.

Ya. Asisten AI dalam alat pengembangan ABAP membuat draf kelas implementasi, isi metode, dan logika filter dari deskripsi persyaratan. Pengembang tetap mengaktifkan implementasi di SE19 dan mengujinya.

Penasihat AI memeriksa program standar dan melaporkan opsi peningkatan apa yang ada, kemudian merekomendasikan BADI baru di dalam area peningkatan untuk pekerjaan baru, dan seterusnya.ping BADI klasik di mana hanya opsi itu yang ditawarkan.

Ringkaslah postingan ini dengan: