V čem je BADI SAP ABAP?

⚡ Chytré shrnutí

BADI v SAP ABAP je zkratka pro Business Add-In, objektově orientované vylepšení, které propojuje vlastní logiku se standardními SAP funkčnost. Tato stránka vysvětluje, co je BADI, jeho funkce, klasické a nové typy, pracovní postup SE18 a SE19 a jak se srovnává s uživatelskými výstupy.

  • 🧩 Základní definice: Obchodní doplněk je vylepšený prvek, podobně jako zákaznický výstup, který připojuje vlastní funkce ke standardním SAP bez jeho úpravy.
  • 🧱 Objektově orientované: BADI definuje rozhraní a vylepšení se nachází ve třídě, která ho implementuje, nikoli v rezervované třídě include.
  • 🔁 Více implementací: Na rozdíl od zákaznického terminálu lze BADI implementovat několikrát, což vyhovuje řešením v daném odvětví a verzím pro danou zemi.
  • 🔓 Upgrade Trezor: BADI nepotřebuje SAP Registrace změn softwaru a aktualizace verze ji neovlivní.
  • 🛠️ Definice a implementace: Definice a rozhraní jsou vytvořeny v SE18 a implementace s odpovídající třídou je vytvořena v SE19.
  • 🆕 Klasické a nové: Klasický BADI je založen na vylepšeních a nový kernel BADI, představený v NetWeaveru, přidává filtry, záložní třídy a lepší výkon.

V čem je BADI SAP ABAP

Co je BADI?

BADI znamená Bbezstarostnost Add Ins. Stejně jako zákaznické výstupy, i BADI pomáhá propojit vlastní vylepšení s SAP funkčnost. Příklad BADI: V transakci CAT2 – Time Sheet Entry chce HR zahrnout interaktivní potvrzení, že vědomé odeslání nesprávných údajů je důvodem k propuštění. Toho lze dosáhnout pomocí BADI

Příklad BADI

Rozdíl oproti klasickému ukončení je technický. BADI je postaven na objektech ABAP, takže standardní program volá metodu rozhraní a vlastní kód se nachází ve třídě, která tuto metodu implementuje. Proto se BADI často popisuje jako objektově orientovaný nástupce odchod zákazníka.

Funkce

  • BADI jsou objektově orientované
  • Mohou být implementovány vícekrát
  • To nevyžaduje SAP Software a licence Změna registrace
  • Žádný vliv na upgradované vydání na fungování BADI

Tyto čtyři vlastnosti vysvětlují, proč SAP doporučuje BADI před klasickým ukončením. Protože vylepšení sídlí v samostatné třídě, přežije upgrade beze změny, a protože BADI lze definovat jako vícenásobné použití, několik týmů může vylepšit stejný bod, aniž by se navzájem přepisovaly.

Typy BADI

SAP nabízí dvě generace doplňků pro firmy. Klasický BADI je verze založená na vylepšeních popsaná výše a nový BADI, představený s SAP NetWeaver je součástí Enhancement Framework a je rychlejší a flexibilnější.

Kritéria Klasický BADI Nový (jádrový) BADI
Udržováno v SE18 a SE19 Tvůrce vylepšení uvnitř vylepšeného místa
Filtry Jednoduché hodnoty filtru Kombinace filtrů s logickými výrazy
Ustoupit Není k dispozici Výchozí záložní třída se spustí, když není aktivní žádná implementace.
Instanciace CL_EXITHANDLER=>GET_INSTANCE Příkazy GET BADI a CALL BADI
Výkon Pomalejší, objekt vytvářen při každém volání Rychlejší, spravované jádrem

Obě generace jsou nalezeny a implementovány podobným způsobem, jak je popsáno dále.

Jak definovat a implementovat BADI

To zahrnovalo tři kroky

Krok 1) Vytvoření definice BADI a jejího rozhraní: Transakce SE18.

Definujte a implementujte BADI

Krok 2) Vytvoření implementace BADI: Transakce SE19

Definujte a implementujte BADI

Krok 3) Definujte třídu, která implementuje rozhraní: Během vytváření implementace se také vytvoří třída pro implementaci rozhraní vylepšení.

V kódu se standardní program dostane k implementaci prostřednictvím obslužné rutiny ukončení. Klasický vzor vytvoří instanci reference BADI a poté zavolá metodu rozhraní.

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

💡 Tip: Nový, kernelový BADI se volá jednodušeji pomocí GET BADI a CALL BADI, které také automaticky zpracovávají hodnoty filtru. Před zapsáním volání použijte SE18 k ověření, zda je bod vylepšení klasický nebo nový BADI.

Warning️ Varování: Transakce SE18 obsahuje definici a rozhraní, zatímco SE19 implementaci. Vytvoření implementace v SE18 nebo definice v SE19 je častou chybou, která způsobuje, že BADI je neaktivní.

BADI vs. odchod zákazníka vs. odchod uživatele

Všechny tři techniky zvyšují standard SAP, ale liší se technologií a flexibilitou. Tabulka níže řadí BADI vedle dvou starších techniky ukončení.

Kritéria Uživatelský odchod Východ zákazníka BADI
Technika Podprogram (FORMULÁŘ) Funkční modul, obrazovka nebo menu Objektově orientované rozhraní a třída
Rozsah Pouze SD modul Všechny moduly Všechny moduly
Počet implementací Jedna Jedna Vícenásobné, pokud je definováno jako vícenásobné použití
Udržováno s Přímá úprava zahrnutí SMOD a CMOD SE18 a SE19
Upgrade trezor Ověřeno u SPAU Ano Ano

Praktickým pravidlem je používat BADI, kdykoli existuje, protože je objektově orientovaný, bezpečný pro upgrade a lze jej implementovat vícekrát.

Nejčastější dotazy

SE18 je BADI Builder, kde se vytváří definice a její rozhraní. SE19 je Implementation Builder, kde se k definici připojuje implementační třída. Jedna definuje hook, druhá ho vyplňuje.

Vícenásobné použití BADI umožňuje více než jednu aktivní implementaci současně a všechny se spustí při volání metody. Jednorázové použití BADI umožňuje pouze jednu aktivní implementaci.

Nastavte zarážku na CL_EXITHANDLER=>GET_INSTANCE, spusťte transakci a přečtěte si název BADI z parametru EXIT_NAME. Pro nové BADI vyhledejte vylepšení programu v Repository Information System.

Ano. Asistenti umělé inteligence v nástrojích pro vývoj ABAP navrhují implementační třídu, tělo metody a logiku filtru z popisu požadavku. Vývojář stále aktivuje implementaci v SE19 a testuje ji.

Poradci pro AI prozkoumají standardní program a oznámí, jaké možnosti vylepšení existují, a poté doporučí nový BADI v rámci vylepšeného místa pro novou práci, abyping klasický BADI, kde je nabízena pouze tato možnost.

Shrňte tento příspěvek takto: