Lumaktaw papunta sa content
cd /languages
  • Ubod ng enterprise
  • Programming
  • Support para sa AST at mga simbolo

ABAP sa Maguyva: mga class graph para sa custom na SAP code

Sinusuportahan ng Maguyva ang ABAP gamit ang AST, mga symbol at graph, para ma-map ng mga AI agent ang mga class, interface, redefinition at exception sa custom na SAP code.

Bakit dapat i-map muna ang ABAP bago ito baguhin

Kadalasang dala ng custom ABAP ang mga business rule na naipon sa loob ng ilang dekada. May bahaging object-oriented ang code at may bahaging procedural, at ang structure ng inheritance at interface ang nagdedesisyon kung aling method ang tatakbo. Hindi iyon makikita kapag isang class lang ang binabasa mo sa bawat pagkakataon.

Ibinibigay muna ng Maguyva sa agent ang class graph, para magsimula ang change plan sa kung ano ang umaasa sa isang class, hindi sa hula.

Ano ang kinukuha ng Maguyva mula sa ABAP

Pina-parse ng Maguyva ang .abap source gamit ang dedikadong ABAP grammar. Kasama sa mga symbol ang mga class definition at implementation, mga interface, mga method declaration at implementation, at mga FORM routine.

Itinatala ng graph ang mga relationship na mahalaga sa mga ABAP developer:

  • Inheritance mula sa CLASS ... INHERITING FROM.
  • Interface implementation mula sa INTERFACES.
  • Mga override mula sa METHODS ... REDEFINITION.
  • Mga exception mula sa RAISE EXCEPTION at CATCH.
  • Mga method call (obj->m( ), cls=>m( ), CALL METHOD), mga type reference mula sa TYPE at TYPE REF TO, at mga export ng public-section method na naka-attribute sa class nila.
  • Mga read, write at control flow (IF, CASE, LOOP, TRY) sa loob ng mga method body.

Mga halimbawang agent prompt

  • “Aling mga class ang nagmamana mula sa zcl_order_base, at aling mga method nito ang nire-redefine nila?” (find_symbol, tapos dependency_search na incoming)
  • “Saan nire-raise ang zcx_pricing_error, at sino ang kumakatch nito?” (dependency_search)
  • “Ibuod kung paano umuusad ang delivery creation flow mula sa report papunta sa persistence class.” (get_task_context)

Mga kilalang limitasyon

  • Hindi pa pina-parse ng kasalukuyang ABAP grammar ang Open SQL (SELECT ... FROM ... INTO), EXEC SQL at AUTHORITY-CHECK, kaya hindi pa graph edge ang mga table read gamit ang SQL. Gamitin ang text_pattern_search para sa mga pangalan ng table.
  • Implementation relationship ang mga INTERFACES statement, hindi import. Sa structural search, mga INCLUDE statement lang ang pinipili bilang import.
  • Ini-index ng Maguyva ang ABAP na nasa Git repository bilang mga .abap file. Hindi ito kumokonekta sa isang SAP system.

Mga susunod na hakbang

Mag-connect ng repository gamit ang quickstart, tapos tingnan ang support matrix sa compatibility page. Para sa iba pang legacy environment, tingnan ang gabay sa COBOL.

Pinakabagay

  • > Mga SAP team na nag-iingat ng custom ABAP sa Git bilang mga `.abap` source file at kailangang maintindihan ito bago ang migration o clean-core review.
  • > Mga object-oriented na ABAP environment kung saan tinatago ng class hierarchy, mga interface at redefinition kung aling implementation talaga ang tumatakbo.
  • > Agent-assisted na impact analysis kung saan ang tanong ay: “ano ang masisira kapag nagbago ang class na ito?”

Mga workflow ng agent

  • > I-map ang mga class na nagmamana mula sa isang base class at ang mga method na nire-redefine nila.
  • > Hanapin ang lahat ng class na nag-i-implement ng isang interface bago magbago ang mga method signature nito.
  • > I-trace kung saan nire-raise ang isang exception class at kung saan ito kinakatch.

Mga detalye ng engine

  • > Pina-parse ang ABAP gamit ang dedikadong grammar. Mga symbol ang mga class, interface, method declaration at implementation, at mga `FORM` routine.
  • > Itinatala ng graph ang inheritance gamit ang `INHERITING FROM`, implementation gamit ang `INTERFACES`, override gamit ang `REDEFINITION`, ang `RAISE EXCEPTION` at `CATCH`, at mga call tulad ng `obj->m( )` at `cls=>m( )`.
  • > Hindi pa pina-parse ng kasalukuyang grammar ang Open SQL, `EXEC SQL` at `AUTHORITY-CHECK`, kaya hindi pa graph edge ang mga table read gamit ang SQL.

Mga kapaki-pakinabang na MCP entry point

  • find_symbol

    Gamitin kasama ang pangalan ng class, interface o method kapag kailangan mo ang definition at mga reference.

  • dependency_search

    Bago magbago, gumamit ng incoming traversal sa isang base class o interface para mahanap ang mga subclass, implementation at tumatawag.

  • text_pattern_search

    Gamitin para sa mga pangalan ng database table at mga SQL statement na hindi pa sakop ng graph.