Hva er BADI i SAP ABAP?

โšก Smart oppsummering

BADI i SAP ABAP stรฅr for Business Add-In, en objektorientert forbedring som kobler tilpasset logikk til standard SAP funksjonalitet. Denne siden forklarer hva en BADI er, dens funksjoner, de klassiske og nye typene, arbeidsflyten SE18 og SE19, og hvordan den sammenlignes med utganger.

  • ๐Ÿงฉ Kjernedefinisjon: Et Business Add-in er en forbedringshook, som en kundeutgang, som knytter tilpasset funksjonalitet til standard SAP uten รฅ endre den.
  • ๐Ÿงฑ Objektorientert: En BADI definerer et grensesnitt, og forbedringen ligger i en klasse som implementerer det, i stedet for i en reservert include.
  • ๐Ÿ” Flere implementeringer: I motsetning til en kundeutgang, kan en BADI implementeres flere ganger, noe som passer for bransjelรธsninger og landsversjoner.
  • ๐Ÿ”“ Upgrade Safe: En BADI trenger ikke SAP Registrering av programvareendring og pรฅvirkes ikke av en versjonsoppgradering.
  • ๐Ÿ› ๏ธ Definisjon og implementering: Definisjonen og grensesnittet opprettes i SE18, og implementasjonen med klassen opprettes i SE19.
  • ๐Ÿ†• Klassisk og nytt: Den klassiske BADI-en er forbedringsbasert, og den nye kjerne-BADI-en som ble introdusert i NetWeaver, legger til filtre, reserveklasser og bedre ytelse.

Hva er BADI i SAP ABAP

Hva er BADI?

BADI stรฅr for Bbrukervennlighet Add Ins. Akkurat som kundeutganger, hjelper BADI med รฅ koble tilpassede forbedringer til SAP funksjonalitet. Eksempel pรฅ en BADI: I transaksjonen CAT2 โ€“ Time Sheet Entry รธnsker HR รฅ inkludere en interaktiv bekreftelse pรฅ at bevisst innsending av feil data er grunnlag for avskjed. Dette kan oppnรฅs ved รฅ bruke BADI

Eksempel pรฅ en BADI

Forskjellen fra en klassisk exit er teknisk. En BADI er bygget pรฅ ABAP-objekter, sรฅ standardprogrammet kaller en grensesnittmetode, og den tilpassede koden ligger i en klasse som implementerer den metoden. Dette er grunnen til at en BADI ofte beskrives som den objektorienterte etterfรธlgeren til kundeutgang.

Funksjoner

  • BADI-er er objektorienterte
  • De kan implementeres flere ganger
  • Det krever ikke SAP Software Endre registrering
  • Ingen effekt pรฅ utgivelsesoppgradert pรฅ funksjonen til BADI-er

Disse fire funksjonene forklarer hvorfor SAP anbefaler en BADI fremfor en klassisk exit. Fordi forbedringen sitter i en egen klasse, overlever den en oppgradering urรธrt, og fordi en BADI kan defineres som flerbruk, kan flere team forbedre det samme punktet uten รฅ overskrive hverandre.

Typer av BADI

SAP tilbyr to generasjoner av Business Add-ins. Den klassiske BADI er den forbedringsbaserte versjonen beskrevet ovenfor, og den nye BADI, introdusert med SAP NetWeaver er en del av Enhancement Framework og er raskere og mer fleksibel.

Kriterier Klassisk BADI Ny (kjerne) BADI
Vedlikeholdt i SE18 og SE19 Forbedringsbyggeren inne i et forbedringspunkt
Filter Enkle filterverdier Filterkombinasjoner med logiske uttrykk
Falle tilbake Ikke tilgjengelig En standard reserveklasse kjรธrer nรฅr ingen implementering er aktiv
Instantiering CL_EXITHANDLER=>GET_INSTANCE GET BADI- og CALL BADI-setningene
Ytelse Tregere, objektet opprettes ved hvert anrop Raskere, administrert av kjernen

Begge generasjonene finnes og implementeres pรฅ en lignende mรฅte, beskrevet nedenfor.

Hvordan definere og implementere en BADI

Dette innebar tre trinn

Trinn 1) Oppretter BADI-definisjon og grensesnitt: Transaksjon SE18.

Definer og implementer en BADI

Trinn 2) Opprett BADI-implementeringen: Transaksjon SE19

Definer og implementer en BADI

Trinn 3) Definer en klasse som implementerer grensesnittet: Under implementeringsopprettelsen opprettes ogsรฅ en klasse for รฅ implementere forbedringens grensesnitt.

I kode nรฅr standardprogrammet implementeringen gjennom exit-hรฅndtereren. Det klassiske mรธnsteret instansierer BADI-referansen og kaller deretter grensesnittmetoden.

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

๐Ÿ’ก Tips: En ny, kjernebasert BADI kalles enklere med GET BADI og CALL BADI, som ogsรฅ hรฅndterer filterverdiene automatisk. Bruk SE18 til รฅ sjekke om forbedringspunktet er en klassisk eller en ny BADI fรธr du skriver kallet.

โš ๏ธ Advarsel: Transaksjon SE18 inneholder definisjonen og grensesnittet, mens SE19 inneholder implementeringen. ร… opprette implementeringen i SE18, eller definisjonen i SE19, er en vanlig feil som gjรธr at BADI-en blir inaktiv.

BADI vs. kundeutgang vs. brukerutgang

Alle tre teknikkene forbedrer standarden SAP, men de er forskjellige i teknologi og fleksibilitet. Tabellen nedenfor plasserer BADI ved siden av de to eldre exit-teknikker.

Kriterier Brukerutgang Kundeutgang BADI
Teknologi Subrutine (FORM) Funksjonsmodul, skjerm eller meny Objektorientert grensesnitt og klasse
Omfang Kun SD-modul Alle moduler Alle moduler
Antall implementeringer En En Multippel, nรฅr definert som flerbruk
Vedlikeholdt med Direkte redigering av inkluderingen SMOD og CMOD SE18 og SE19
Upgrade trygge Sjekket med SPAU Ja Ja

Den praktiske regelen er รฅ bruke en BADI nรฅr en finnes, fordi den er objektorientert, oppgraderingssikker og kan implementeres mer enn รฉn gang.

Spรธrsmรฅl og svar

SE18 er BADI-byggeren der definisjonen og grensesnittet opprettes. SE19 er implementeringsbyggeren der en implementeringsklasse er knyttet til definisjonen. Den ene definerer kroken, den andre fyller den.

En BADI for flere bruksomrรฅder tillater mer enn รฉn aktiv implementering samtidig, og alle kjรธrer nรฅr metoden kalles. En BADI for รฉn bruk tillater bare รฉn aktiv implementering.

Sett et avbruddspunkt pรฅ CL_EXITHANDLER=>GET_INSTANCE, kjรธr transaksjonen og les BADI-navnet fra EXIT_NAME-parameteren. Sรธk etter forbedringspunktene for programmet i Repository Information System for รฅ finne nye BADI-er.

Ja. AI-assistenter i ABAP-utviklingsverktรธy utarbeider implementeringsklassen, metodekroppen og filterlogikken fra en beskrivelse av kravet. En utvikler aktiverer fortsatt implementeringen i SE19 og tester den.

AI-rรฅdgivere undersรธker standardprogrammet og rapporterer hvilke forbedringsalternativer som finnes, og anbefaler deretter den nye BADI-en pรฅ et forbedringssted for nytt arbeid.ping den klassiske BADI hvor kun det alternativet tilbys.

Oppsummer dette innlegget med: