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: