Przejdź do treści
cd /languages
  • Rdzeń przedsiębiorstwa
  • Programowanie
  • Obsługa AST i symboli

ABAP w Maguyva: grafy klas dla własnego kodu SAP

Maguyva obsługuje ABAP przez AST, symbole i graf, dzięki czemu agenci AI mapują klasy, interfejsy, redefinicje i wyjątki we własnym kodzie SAP.

Dlaczego warto zmapować ABAP przed jego zmianą

Własny ABAP często niesie dziesięciolecia reguł biznesowych. Kod jest w jednych miejscach obiektowy, w innych proceduralny, a to struktura dziedziczenia i interfejsów decyduje, która metoda się wykona. Czytanie klasy po klasie tego nie pokazuje.

Maguyva najpierw daje agentowi graf klas, więc plan zmiany zaczyna się od tego, co zależy od klasy, a nie od zgadywania.

Co Maguyva wyodrębnia w ABAP

Maguyva parsuje kod źródłowy .abap za pomocą dedykowanej gramatyki ABAP. Symbole obejmują definicje i implementacje klas, interfejsy, deklaracje i implementacje metod oraz procedury FORM.

Graf zapisuje relacje, na których zależy programistom ABAP:

  • Dziedziczenie z CLASS ... INHERITING FROM.
  • Implementację interfejsów z INTERFACES.
  • Nadpisania z METHODS ... REDEFINITION.
  • Wyjątki z RAISE EXCEPTION i CATCH.
  • Wywołania metod (obj->m( ), cls=>m( ), CALL METHOD), odwołania do typów z TYPE i TYPE REF TO oraz eksporty metod z sekcji publicznej przypisane do ich klasy.
  • Odczyty, zapisy i przepływ sterowania (IF, CASE, LOOP, TRY) w ciałach metod.

Przykładowe prompty dla agentów

  • „Które klasy dziedziczą po zcl_order_base i które z jej metod redefiniują?” (find_symbol, potem dependency_search incoming)
  • „Gdzie zgłaszany jest zcx_pricing_error i kto go przechwytuje?” (dependency_search)
  • „Podsumuj, jak przepływ tworzenia dostaw przechodzi od raportu do klasy trwałości.” (get_task_context)

Znane ograniczenia

  • Open SQL (SELECT ... FROM ... INTO), EXEC SQL i AUTHORITY-CHECK nie są parsowane przez obecną gramatykę ABAP, więc odczyty tabel przez SQL nie są jeszcze krawędziami grafu. Do nazw tabel używaj text_pattern_search.
  • Klauzule INTERFACES to relacje implementacji, a nie importy. W wyszukiwaniu strukturalnym jako importy wybierane są tylko instrukcje INCLUDE.
  • Maguyva indeksuje ABAP przechowywany w repozytorium Git jako pliki .abap. Nie łączy się z systemem SAP.

Kolejne kroki

Podłącz repozytorium za pomocą szybkiego startu, a potem sprawdź macierz obsługi na stronie zgodności. W przypadku innych systemów legacy zajrzyj do przewodnika po COBOL-u.

Najlepsze dopasowanie

  • > Zespoły SAP, które trzymają własny ABAP w Gicie jako pliki źródłowe `.abap` i muszą go zrozumieć przed migracją lub przeglądem clean core.
  • > Obiektowe zasoby ABAP, w których hierarchie klas, interfejsy i redefinicje ukrywają, która implementacja faktycznie się wykonuje.
  • > Analizy wpływu wspierane przez agentów, w których pytanie brzmi: „co się zepsuje, jeśli ta klasa się zmieni?”

Workflow agentów

  • > Zmapować, które klasy dziedziczą po klasie bazowej i które metody redefiniują.
  • > Znaleźć wszystkie klasy implementujące interfejs przed zmianą sygnatur jego metod.
  • > Prześledzić, gdzie klasa wyjątku jest zgłaszana i gdzie jest przechwytywana.

Szczegóły silnika

  • > ABAP jest parsowany za pomocą dedykowanej gramatyki. Klasy, interfejsy, deklaracje i implementacje metod oraz procedury `FORM` są symbolami.
  • > Graf zapisuje dziedziczenie z `INHERITING FROM`, implementację z `INTERFACES`, nadpisania z `REDEFINITION`, `RAISE EXCEPTION` i `CATCH` oraz wywołania takie jak `obj->m( )` i `cls=>m( )`.
  • > Open SQL, `EXEC SQL` i `AUTHORITY-CHECK` nie są parsowane przez obecną gramatykę, więc odczyty tabel przez SQL nie są jeszcze krawędziami grafu.

Przydatne punkty wejścia MCP

  • find_symbol

    Używaj go z nazwą klasy, interfejsu lub metody, gdy potrzebujesz definicji i odwołań.

  • dependency_search

    Przed zmianą użyj przejścia incoming na klasie bazowej lub interfejsie, aby znaleźć podklasy, implementacje i wywołujących.

  • text_pattern_search

    Używaj go do nazw tabel bazy danych i instrukcji SQL, których graf jeszcze nie obejmuje.