Mi a BADI? SAP ABAP?
⚡ Okos összefoglaló
BADI-ban SAP Az ABAP a Business Add-In rövidítése, egy objektumorientált fejlesztés, amely egyéni logikát csatol a szabványos rendszerhez. SAP funkcionalitás. Ez az oldal elmagyarázza, mi a BADI, milyen funkciói vannak, a klasszikus és az új típusokat, az SE18 és SE19 munkafolyamatot, és hogyan viszonyul a kilépésekhez.

Mi az a BADI?
A BADI azt jelenti Business Add Ins. Csakúgy, mint az Ügyfélkilépéseknél, a BADI is segít az egyéni fejlesztések összekapcsolásában SAP funkcionalitást. Példa a BADI-ra: A CAT2 – Time Sheet Entry tranzakcióba a HR egy interaktív tudomásulvételt kíván beépíteni, hogy a tudatosan hibás adatok benyújtása elbocsátási okot jelent. Ez a BADI segítségével érhető el
A klasszikus kilépési ponttól való különbség technikai jellegű. A BADI ABAP objektumokra épül, így a standard program egy interfész metódust hív meg, az egyéni kód pedig egy olyan osztályban található, amely ezt a metódust megvalósítja. Ezért nevezik a BADI-t gyakran a ügyfél kijárat.
Jellemzők
- A BADI-k objektumorientáltak
- Többször is megvalósíthatók
- Nem igényel SAP szoftver Regisztráció módosítása
- A frissített kiadás nincs hatással a BADI-k működésére
Ez a négy jellemző megmagyarázza, miért SAP a klasszikus kilépés helyett a BADI-t javasolja. Mivel a fejlesztés külön osztályban található, érintetlenül túléli a fejlesztést, és mivel egy BADI többszörös felhasználásként definiálható, több csapat is fejlesztheti ugyanazt a pontot anélkül, hogy felülírnák egymást.
A BADI típusai
SAP két generációs üzleti bővítményeket kínál. A klasszikus BADI a fent leírt, bővítéseken alapuló verzió, az új BADI pedig a ...-val/-vel került bevezetésre. SAP A NetWeaver a fejlesztési keretrendszer része, és gyorsabb, valamint rugalmasabb.
| Kritériumai | Klasszikus BADI | Új (kernel) BADI |
|---|---|---|
| Karbantartva | SE18 és SE19 | A Fejlesztési Helyen Beépített Fejlesztési Létrehozó |
| Szűrők | Egyszerű szűrőértékek | Logikai kifejezésekkel rendelkező kombinációk szűrése |
| Tartalék | Nem érhető el | Egy alapértelmezett tartalék osztály akkor fut, ha nincs aktív implementáció. |
| Példányosítás | CL_EXITHANDLER=>PÉLDÁNY_GET | A GET BADI és CALL BADI utasítások |
| Teljesítmény | Lassabb, minden hívásnál létrejött az objektum | Gyorsabb, a kernel által kezelve |
Mindkét generáció hasonló módon található és valósítható meg, a továbbiakban ismertetjük.
Hogyan definiáljunk és implementáljunk egy BADI-t
Ez három lépésből állt
Step 1) BADI definíció és interfészének létrehozása: SE18 tranzakció.
Step 2) BADI implementáció létrehozása: SE19 tranzakció
Step 3) Definiáljon egy osztályt, amely megvalósítja a felületet: Az implementáció létrehozása során létrejön egy osztály is a bővítés felületének megvalósításához.
Kódban a standard program a kilépési kezelőn keresztül jut el az implementációhoz. A klasszikus minta példányosítja a BADI hivatkozást, majd meghívja az interfész metódust.
* 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.
💡 Tipp: Egy új, kernel BADI-t egyszerűbben a GET BADI és CALL BADI paranccsal hívhatunk meg, amelyek a szűrőértékeket is automatikusan kezelik. A hívás írása előtt az SE18 paranccsal ellenőrizhetjük, hogy a bővítési pont klasszikus vagy új BADI-e.
⚠️ Figyelmeztetés: Az SE18 tranzakció tartalmazza a definíciót és az interfészt, míg az SE19 az implementációt. Az implementáció létrehozása az SE18-ban, vagy a definíció létrehozása az SE19-ben egy gyakori hiba, ami inaktívvá teszi a BADI-t.
BADI vs. Ügyfél kilépés vs. Felhasználói kilépés
Mindhárom technika javítja a színvonalat SAP, de technológiájukban és rugalmasságukban különböznek. Az alábbi táblázat a BADI-t a két régebbi mellé helyezi kilépési technikák.
| Kritériumai | Felhasználói kilépés | Ügyfél kilépés | BADI |
|---|---|---|---|
| Technológia | Alprogram (FORM) | Függvénymodul, képernyő vagy menü | Objektumorientált interfész és osztály |
| Kör | Csak SD modul | Minden modul | Minden modul |
| Megvalósítások száma | egy | egy | Többszörös, ha többszörös felhasználásként definiálják |
| Karbantartva | A beillesztés közvetlen szerkesztése | SMOD és CMOD | SE18 és SE19 |
| Upgrade biztonságos | Ellenőrizve az SPAU-val | Igen | Igen |
A gyakorlati szabály az, hogy mindig használjunk BADI-t, amikor létezik ilyen, mivel objektumorientált, frissítésbiztos, és többször is megvalósítható.



