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.

  • 🧩 Alapvető definíció: Az üzleti bővítmény egy olyan bővítmény, mint egy ügyfélkilépés, amely egyéni funkciókat csatol a szabványos elemekhez. SAP anélkül, hogy módosítaná azt.
  • 🧱 Objektumorientált: A BADI egy interfészt definiál, és a fejlesztés egy azt megvalósító osztályban található, nem pedig egy foglalt include-ban.
  • 🔁 Többszörös megvalósítások: Egy ügyfélkilépéssel ellentétben a BADI többször is megvalósítható, ami megfelel az iparági megoldásoknak és az országváltozatoknak.
  • 🔓 Upgrade Biztonságos: Egy BADI-nak nincs szüksége SAP Szoftvermódosítás-regisztráció, és a kiadásfrissítés nem befolyásolja.
  • 🇧🇷 Meghatározás és megvalósítás: A definíciót és az interfészt az SE18-ban hoztuk létre, az implementációt a hozzá tartozó osztálylal pedig az SE19-ben.
  • 🆕 Klasszikus és új: A klasszikus BADI fejlesztéseken alapul, a NetWeaverben bevezetett új kernel BADI pedig szűrőket, tartalék osztályokat és jobb teljesítményt nyújt.

Mi a BADI? SAP ABAP

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

Példa egy BADI-ra

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

Határozzon meg és hajtson végre egy BADI-t

Step 2) BADI implementáció létrehozása: SE19 tranzakció

Határozzon meg és hajtson végre egy BADI-t

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

GYIK

Az SE18 a BADI Builder, ahol a definíció és a hozzá tartozó interfész létrejön. Az SE19 az Implementation Builder, ahol egy implementációs osztály kapcsolódik a definícióhoz. Az egyik definiálja a hook-ot, a másik kitölti azt.

Egy többszörösen használható BADI egynél több aktív implementációt tesz lehetővé egyszerre, és mindegyik lefut a metódus meghívásakor. Egyszeri használatú BADI csak egy aktív implementációt engedélyez.

Állítson be egy töréspontot a CL_EXITHANDLER=>GET_INSTANCE paraméteren, futtassa a tranzakciót, és olvassa ki a BADI nevet az EXIT_NAME paraméterből. Új BADI-kért keresse meg a program fejlesztési pontjait a Repository Information System-ben.

Igen. Az ABAP fejlesztőeszközökben a mesterséges intelligencia asszisztensei a követelmény leírása alapján tervezik meg a megvalósítási osztályt, a metódus törzsét és a szűrőlogikát. A fejlesztő továbbra is aktiválja a megvalósítást az SE19-ben, és teszteli azt.

A mesterséges intelligencia tanácsadói megvizsgálják a standard programot, és beszámolnak a meglévő fejlesztési lehetőségekről, majd egy fejlesztési helyen belül az új BADI-t javasolják az új munkához, keeping a klasszikus BADI, ahol csak ez a lehetőség van elérhető.

Foglald össze ezt a bejegyzést a következőképpen: