Přeskočit na obsah
cd /languages
  • Jádro podniku
  • Programování
  • Podpora AST a symbolů

ABAP v Maguyva: grafy tříd pro vlastní kód SAP

Maguyva podporuje ABAP s AST, symboly a grafem, takže AI agenti mapují třídy, rozhraní, redefinice a výjimky ve vlastním kódu SAP.

Proč se vyplatí ABAP zmapovat před změnou

Vlastní ABAP často nese desítky let obchodních pravidel. Kód je místy objektově orientovaný, místy procedurální a to, která metoda se spustí, rozhoduje struktura dědičnosti a rozhraní. Při čtení jedné třídy po druhé to vidět není.

Maguyva dá agentovi nejdřív graf tříd, takže plán změny začíná u toho, co na třídě závisí, a ne u odhadu.

Co Maguyva v ABAP extrahuje

Maguyva parsuje zdrojový kód .abap vyhrazenou gramatikou ABAP. Symboly zahrnují definice a implementace tříd, rozhraní, deklarace a implementace metod a rutiny FORM.

Graf zaznamenává vazby, na kterých vývojářům ABAP záleží:

  • Dědičnost z CLASS ... INHERITING FROM.
  • Implementaci rozhraní z INTERFACES.
  • Přepisy z METHODS ... REDEFINITION.
  • Výjimky z RAISE EXCEPTION a CATCH.
  • Volání metod (obj->m( ), cls=>m( ), CALL METHOD), odkazy na typy z TYPE a TYPE REF TO a exporty metod z veřejné sekce přiřazené jejich třídě.
  • Čtení, zápisy a tok řízení (IF, CASE, LOOP, TRY) v tělech metod.

Ukázkové prompty pro agenty

  • „Které třídy dědí z zcl_order_base a které její metody redefinují?“ (find_symbol, pak dependency_search incoming)
  • „Kde se vyvolává zcx_pricing_error a kdo ji zachytává?“ (dependency_search)
  • „Shrň, jak tok vytváření dodávek vede od reportu ke třídě perzistence.“ (get_task_context)

Známá omezení

  • Open SQL (SELECT ... FROM ... INTO), EXEC SQL a AUTHORITY-CHECK současná gramatika ABAP neparsuje, takže čtení tabulek přes SQL zatím nejsou hranami grafu. Pro názvy tabulek použijte text_pattern_search.
  • Klauzule INTERFACES jsou vazby implementace, ne importy. Ve strukturním vyhledávání se jako importy vybírají jen příkazy INCLUDE.
  • Maguyva indexuje ABAP uložený v repozitáři Git jako soubory .abap. K systému SAP se nepřipojuje.

Další kroky

Připojte repozitář podle rychlého startu a pak si prohlédněte matici podpory na stránce kompatibility. Pro další starší systémy si přečtěte průvodce jazykem COBOL.

Nejlépe se hodí pro

  • > Týmy SAP, které vlastní ABAP ukládají v Gitu jako zdrojové soubory `.abap` a potřebují mu porozumět před migrací nebo revizí clean core.
  • > Objektově orientované prostředí ABAP, kde hierarchie tříd, rozhraní a redefinice zakrývají, která implementace se skutečně spouští.
  • > Analýzy dopadu s podporou agentů, kde zní otázka: „co se rozbije, když se tato třída změní?“

Workflow agentů

  • > Zmapovat, které třídy dědí ze základní třídy a které metody redefinují.
  • > Najít všechny třídy implementující rozhraní, než se změní signatury jeho metod.
  • > Dohledat, kde se třída výjimky vyvolává a kde se zachytává.

Podrobnosti enginu

  • > ABAP se parsuje vyhrazenou gramatikou. Symboly jsou třídy, rozhraní, deklarace a implementace metod a rutiny `FORM`.
  • > Graf zaznamenává dědičnost přes `INHERITING FROM`, implementaci přes `INTERFACES`, přepisy přes `REDEFINITION`, `RAISE EXCEPTION` a `CATCH` a volání jako `obj->m( )` a `cls=>m( )`.
  • > Open SQL, `EXEC SQL` a `AUTHORITY-CHECK` současná gramatika neparsuje, takže čtení tabulek přes SQL zatím nejsou hranami grafu.

Užitečné vstupní body MCP

  • find_symbol

    Použijte s názvem třídy, rozhraní nebo metody, když potřebujete definici a odkazy.

  • dependency_search

    Před změnou použijte procházení incoming na základní třídě nebo rozhraní a najdete podtřídy, implementace i volající.

  • text_pattern_search

    Použijte pro názvy databázových tabulek a příkazy SQL, které graf zatím nepokrývá.