U čemu je BADI SAP ABAP?

⚡ Pametni sažetak

BADI u SAP ABAP je kratica za Business Add-In, objektno orijentirano poboljšanje koje spaja prilagođenu logiku sa standardnim SAP funkcionalnost. Ova stranica objašnjava što je BADI, njegove značajke, klasične i nove vrste, tijek rada SE18 i SE19 te kako se uspoređuje s izlazima.

  • 🧩 Osnovna definicija: Poslovni dodatak je dodatak za poboljšanje, poput izlaza za korisnike, koji standardnoj funkcionalnosti pridaje prilagođenu funkcionalnost. SAP bez njegovog mijenjanja.
  • 🧱 Objektno orijentirano: BADI definira sučelje, a poboljšanje se nalazi u klasi koja ga implementira, a ne u rezerviranom uključenom elementu.
  • 🔁 Višestruke implementacije: Za razliku od izlaza korisnika, BADI se može implementirati više puta, što odgovara industrijskim rješenjima i verzijama za različite zemlje.
  • 🔓 Upgrade Sef: BADI ne treba SAP Registracija promjena softvera i na nju ne utječe nadogradnja izdanja.
  • 🛠️ Definicija i provedba: Definicija i sučelje su kreirani u SE18, a implementacija sa svojom klasom je kreirana u SE19.
  • 🆕 Klasično i novo: Klasični BADI temelji se na poboljšanjima, a novi kernel BADI uveden u NetWeaveru dodaje filtere, rezervne klase i bolje performanse.

U čemu je BADI SAP ABAP

Što je BADI?

BADI je kratica za BUSINESS Add Ins. Baš kao i izlazi za korisnike, BADI pomaže u povezivanju prilagođenih poboljšanja s SAP funkcionalnost. Primjer BADI: U transakciji CAT2 – Unos radnog vremena, HR želi uključiti interaktivnu potvrdu da je svjesno podnošenje netočnih podataka osnova za otkaz. To se može postići pomoću BADI

Primjer BADI

Razlika u odnosu na klasični izlaz je tehničke prirode. BADI je izgrađen na ABAP objektima, tako da standardni program poziva metodu sučelja, a prilagođeni kod se nalazi u klasi koja implementira tu metodu. Zato se BADI često opisuje kao objektno orijentirani nasljednik izlaz kupca.

Značajke

  • BADI-ji su objektno orijentirani
  • Mogu se implementirati više puta
  • Ne zahtijeva SAP Softver Promjena registracije
  • Nema utjecaja na otpuštanje nadograđeno na funkcioniranje BADI-ja

Ove četiri značajke objašnjavaju zašto SAP preporučuje BADI umjesto klasičnog izlaza. Budući da se poboljšanje nalazi u zasebnoj klasi, ono preživi nadogradnju netaknuto, a budući da se BADI može definirati kao višestruka upotreba, nekoliko timova može poboljšati istu točku bez međusobnog prepisivanja.

Vrste BADI-ja

SAP nudi dvije generacije poslovnih dodataka. Klasični BADI je verzija temeljena na poboljšanjima opisana gore, a novi BADI, predstavljen s SAP NetWeaver je dio Enhancement Frameworka i brži je i fleksibilniji.

Kriteriji Klasični BADI Novi (jezgra) BADI
Održava se u SE18 i SE19 Alat za izradu poboljšanja unutar mjesta poboljšanja
Filteri Jednostavne vrijednosti filtera Kombinacije filtera s logičkim izrazima
rezervna Nije dostupno Zadana rezervna klasa se izvršava kada nije aktivna nijedna implementacija
Instanciranje CL_EXITHANDLER=>GET_INSTANCE Naredbe GET BADI i CALL BADI
Izvođenje Sporije, objekt se kreirao svakim pozivom Brže, upravljano jezgrom

Obje generacije su pronađene i implementirane na sličan način, opisan u nastavku.

Kako definirati i implementirati BADI

To je uključivalo tri koraka

Korak 1) Izrada BADI definicije i njenog sučelja: Transakcija SE18.

Definirajte i implementirajte BADI

Korak 2) Izrada BADI implementacije: Transakcija SE19

Definirajte i implementirajte BADI

Korak 3) Definirajte klasu koja implementira sučelje: Tijekom stvaranja implementacije, stvara se i klasa za implementaciju sučelja poboljšanja.

U kodu, standardni program dolazi do implementacije putem izlaznog rukovatelja. Klasični uzorak instancira BADI referencu, a zatim poziva metodu sučelja.

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

💡 Savjet: Novi, kernel BADI se jednostavnije poziva pomoću GET BADI i CALL BADI, koji također automatski obrađuju vrijednosti filtera. Koristite SE18 za provjeru je li točka poboljšanja klasični ili novi BADI prije pisanja poziva.

⚠️ Upozorenje: Transakcija SE18 sadrži definiciju i sučelje, dok SE19 sadrži implementaciju. Stvaranje implementacije u SE18 ili definicije u SE19 česta je pogreška koja ostavlja BADI neaktivnim.

BADI vs. izlaz kupca vs. izlaz korisnika

Sve tri tehnike poboljšavaju standard SAP, ali se razlikuju u tehnologiji i fleksibilnosti. Tablica u nastavku smješta BADI pored dva starija tehnike izlaza.

Kriteriji Izlaz korisnika Izlaz kupca BADI
Tehnologija Podprogram (FORM) Funkcijski modul, zaslon ili izbornik Objektno orijentirano sučelje i klasa
Djelokrug Samo SD modul Svi moduli Svi moduli
Broj implementacija jedan jedan Višestruko, kada se definira kao višestruka upotreba
Održava se s Izravno uređivanje uključivanja SMOD i CMOD SE18 i SE19
Upgrade sigurna Provjereno sa SPAU-om Da Da

Praktično pravilo je koristiti BADI kad god postoji, jer je objektno orijentiran, siguran za nadogradnju i može se implementirati više puta.

Pitanja i odgovori

SE18 je BADI Builder gdje se stvaraju definicija i njezino sučelje. SE19 je Implementation Builder gdje se toj definiciji pridružuje implementacijska klasa. Jedna definira hook, a druga ga ispunjava.

Višestruka upotreba BADI-ja dopušta više aktivnih implementacija istovremeno, a sve se izvršavaju kada se metoda pozove. Jednokratna upotreba BADI-ja dopušta samo jednu aktivnu implementaciju.

Postavite breakpoint na CL_EXITHANDLER=>GET_INSTANCE, pokrenite transakciju i pročitajte BADI naziv iz parametra EXIT_NAME. Za nove BADI-je, potražite mjesta za poboljšanja programa u Repository Information Systemu.

Da. AI asistenti u ABAP razvojnim alatima izrađuju implementacijsku klasu, tijelo metode i logiku filtera iz opisa zahtjeva. Programer i dalje aktivira implementaciju u SE19 i testira je.

Savjetnici za umjetnu inteligenciju pregledavaju standardni program i izvještavaju o postojećim mogućnostima poboljšanja, a zatim preporučuju novi BADI unutar područja poboljšanja za novi rad, održavajuping klasični BADI gdje se nudi samo ta opcija.

Sažmite ovu objavu uz: