Czym jest BADI SAP ABAP?

⚡ Inteligentne podsumowanie

BADI w SAP ABAP to skrót od Business Add-In, czyli obiektowego rozszerzenia, które łączy niestandardową logikę ze standardową SAP Funkcjonalność. Ta strona wyjaśnia, czym jest BADI, jakie ma funkcje, jakie są klasyczne i nowe typy, przepływy pracy SE18 i SE19 oraz jak wypada w porównaniu z wyjściami.

  • 🧩 Definicja podstawowa: Dodatek biznesowy to element rozszerzający, podobny do wyjścia klienta, który dołącza niestandardowe funkcje do standardowych SAP bez modyfikowania.
  • 🧱 Obiektowo zorientowany: BADI definiuje interfejs, a rozszerzenie znajduje się w klasie, która je implementuje, a nie w zarezerwowanym elemencie include.
  • 🔁 Wiele implementacji: W przeciwieństwie do wyjścia klienta, BADI można wdrażać wielokrotnie, co jest przydatne w przypadku rozwiązań branżowych i wersji krajowych.
  • 🔓 Upgrade Bezpieczna: BADI nie potrzebuje SAP Rejestracja zmian oprogramowania nie jest uwzględniana przy aktualizacji wersji.
  • 🛠️. Definicja i wdrożenie: Definicja i interfejs są tworzone w SE18, a implementacja wraz z klasą — w SE19.
  • 🆕 Klasyczne i nowe: Klasyczny BADI opiera się na rozszerzeniach, a nowy BADI jądra wprowadzony w NetWeaver dodaje filtry, klasy zapasowe i lepszą wydajność.

Czym jest BADI SAP ABAP

Co to jest BADI?

BADI oznacza Business Add Ins. Podobnie jak wyjścia klientów, BADI pomaga w podłączaniu niestandardowych ulepszeń SAP funkcjonalność. Przykład BADI: W transakcji CAT2 – Time Sheet Entry, HR chce uwzględnić interaktywne potwierdzenie, że świadome przesłanie nieprawidłowych danych jest podstawą do zwolnienia. Można to osiągnąć za pomocą BADI

Przykład BADI

Różnica w stosunku do klasycznego wyjścia ma charakter techniczny. BADI jest zbudowane na obiektach ABAP, więc standardowy program wywołuje metodę interfejsu, a kod niestandardowy znajduje się w klasie, która implementuje tę metodę. Dlatego BADI jest często określane jako obiektowy następca wyjście klienta.

Udogodnienia

  • BADI są zorientowane obiektowo
  • Można je realizować wielokrotnie
  • Nie wymaga SAP Oprogramowanie Zmień rejestrację
  • Brak wpływu uaktualnionej wersji na funkcjonowanie BADI

Te cztery cechy wyjaśniają dlaczego SAP Zaleca BADI zamiast klasycznego wyjścia. Ponieważ ulepszenie znajduje się w osobnej klasie, przetrwa ono ulepszenie bez zmian, a ponieważ BADI można zdefiniować jako wielokrotnego użytku, kilka zespołów może ulepszyć ten sam punkt bez nadpisywania się nawzajem.

Rodzaje BADI

SAP oferuje dwie generacje dodatków biznesowych. Klasyczny BADI to wersja oparta na ulepszeniach opisana powyżej, a nowy BADI, wprowadzony wraz z SAP NetWeaver jest częścią Enhancement Framework i jest szybszy i bardziej elastyczny.

kryteria Klasyczny BADI Nowy (jądro) BADI
Utrzymywane w SE18 i SE19 Konstruktor ulepszeń w miejscu ulepszeń
Filtry Proste wartości filtrów Kombinacje filtrów z wyrażeniami logicznymi
awaryjna Niedostępne Domyślna klasa zapasowa jest uruchamiana, gdy żadna implementacja nie jest aktywna
Instancja CL_EXITHANDLER=>GET_INSTANCE Polecenia GET BADI i CALL BADI
Wydajność Wolniej, obiekt tworzony przy każdym wywołaniu Szybciej, zarządzane przez jądro

Oba pokolenia są odnajdywane i wdrażane w podobny sposób, co opisano poniżej.

Jak zdefiniować i wdrożyć BADI

Wymagało to trzech kroków

Krok 1) Tworzenie definicji BADI i jej interfejsu: Transakcja SE18.

Zdefiniuj i zaimplementuj BADI

Krok 2) Utwórz implementację BADI: Transakcja SE19

Zdefiniuj i zaimplementuj BADI

Krok 3) Zdefiniuj klasę implementującą interfejs: Podczas tworzenia implementacji tworzona jest również klasa implementująca interfejs rozszerzenia.

W kodzie standardowy program dociera do implementacji poprzez procedurę obsługi wyjścia. Klasyczny wzorzec tworzy instancję referencji BADI, a następnie wywołuje metodę interfejsu.

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

💡 Wskazówka: Nowy, kernelowy BADI jest wywoływany prościej za pomocą GET BADI i CALL BADI, które również automatycznie obsługują wartości filtrów. Użyj SE18, aby sprawdzić, czy punkt rozszerzenia jest klasycznym, czy nowym BADI przed napisaniem wywołania.

⚠️ Ostrzeżenie: Transakcja SE18 zawiera definicję i interfejs, natomiast SE19 zawiera implementację. Tworzenie implementacji w SE18 lub definicji w SE19 to częsty błąd, który powoduje, że BADI pozostaje nieaktywne.

BADI vs. wyjście klienta vs. wyjście użytkownika

Wszystkie trzy techniki podnoszą standard SAP, ale różnią się technologią i elastycznością. Poniższa tabela umieszcza BADI obok dwóch starszych techniki wyjścia.

kryteria Wyjście użytkownika Wyjście klienta BADI
Technologia Podprogram (FORMULARZ) Moduł funkcyjny, ekran lub menu Obiektowo zorientowany interfejs i klasa
Zakres Tylko moduł SD Wszystkie moduły Wszystkie moduły
Liczba wdrożeń jeden jeden Wielokrotny, gdy jest zdefiniowany jako wielokrotne użycie
Utrzymywane z Bezpośrednia edycja dołączonego elementu SMOD i CMOD SE18 i SE19
Upgrade "bezpiecznym" Sprawdzono w SPAU Tak Tak

Praktyczną zasadą jest używanie BADI, jeśli takie istnieje, ponieważ jest zorientowane obiektowo, można je uaktualniać i można je zaimplementować więcej niż jeden raz.

FAQ

SE18 to BADI Builder, w którym tworzona jest definicja i jej interfejs. SE19 to Implementation Builder, w którym do definicji dołączana jest klasa implementująca. Jedna definiuje hak, a druga go wypełnia.

Wielokrotnego użytku BADI pozwala na jednoczesne uruchomienie więcej niż jednej implementacji, a wszystkie z nich są uruchamiane po wywołaniu metody. Jednorazowy użytek BADI pozwala na uruchomienie tylko jednej implementacji.

Ustaw punkt przerwania dla CL_EXITHANDLER=>GET_INSTANCE, uruchom transakcję i odczytaj nazwę BADI z parametru EXIT_NAME. W celu znalezienia nowych BADI wyszukaj miejsca ulepszeń programu w systemie informacji repozytorium.

Tak. Asystenci AI w narzędziach programistycznych ABAP tworzą klasę implementującą, treść metody i logikę filtru na podstawie opisu wymagania. Deweloper nadal aktywuje implementację w SE19 i ją testuje.

Doradcy ds. sztucznej inteligencji badają standardowy program i zgłaszają dostępne opcje ulepszeń, a następnie rekomendują nowe BADI w miejscu ulepszeń w celu uzyskania nowej pracy.ping klasyczny BADI, w którym dostępna jest tylko ta opcja.

Podsumuj ten post następująco: