Siirry sisältöön
cd /languages
  • Yrityksen ydin
  • Ohjelmointi
  • AST- ja symbolituki

ABAP-tuki Maguyva-palvelussa: luokkagraafit SAP-räätälöinneille

Maguyva tukee ABAPia AST-jäsennyksellä, symboleilla ja graafilla, jotta tekoälyagentit voivat kartoittaa SAP-räätälöintien luokat, rajapinnat, uudelleenmäärittelyt ja poikkeukset.

Miksi ABAP kannattaa kartoittaa ennen muutoksia

Räätälöity ABAP kantaa usein vuosikymmenten liiketoimintasääntöjä. Koodi on paikoin olio-ohjelmoitua ja paikoin proseduraalista, ja perintä- ja rajapintarakenne ratkaisee, mikä metodi suoritetaan. Sitä ei näe lukemalla luokan kerrallaan.

Maguyva antaa agentille ensin luokkagraafin, joten muutossuunnitelma lähtee siitä, mikä luokasta riippuu, eikä arvauksesta.

Mitä Maguyva poimii ABAPista

Maguyva jäsentää .abap-lähdekoodin omalla ABAP-kieliopilla. Symboleihin kuuluvat luokkien määrittelyt ja toteutukset, rajapinnat, metodien esittelyt ja toteutukset sekä FORM-rutiinit.

Graafi tallentaa suhteet, joista ABAP-kehittäjät välittävät:

  • Periytyminen lauseesta CLASS ... INHERITING FROM.
  • Rajapinnan toteutus lauseesta INTERFACES.
  • Ylikirjoitukset lauseesta METHODS ... REDEFINITION.
  • Poikkeukset lauseista RAISE EXCEPTION ja CATCH.
  • Metodikutsut (obj->m( ), cls=>m( ), CALL METHOD), tyyppiviittaukset lauseista TYPE ja TYPE REF TO sekä julkisen osion metodien viennit omalle luokalleen kohdistettuina.
  • Luvut, kirjoitukset ja ohjausvuo (IF, CASE, LOOP, TRY) metodien rungoissa.

Esimerkkikehotteita agenteille

  • “Mitkä luokat perivät luokan zcl_order_base, ja mitkä sen metodeista ne määrittelevät uudelleen?” (find_symbol, sitten dependency_search incoming)
  • “Missä zcx_pricing_error nostetaan, ja kuka ottaa sen kiinni?” (dependency_search)
  • “Tiivistä, miten toimituksen luontiprosessi kulkee raportista pysyvyysluokkaan.” (get_task_context)

Tunnetut rajoitukset

  • Nykyinen ABAP-kielioppi ei jäsennä Open SQL:ää (SELECT ... FROM ... INTO), lausetta EXEC SQL eikä lausetta AUTHORITY-CHECK, joten SQL:n kautta tehdyt taululuvut eivät vielä ole graafin kaaria. Käytä taulujen nimille työkalua text_pattern_search.
  • INTERFACES-lausekkeet ovat toteutussuhteita eivätkä tuonteja. Rakenteellisessa haussa tuonneiksi valitaan vain INCLUDE-lauseet.
  • Maguyva indeksoi ABAP-koodia, joka on Git-repositoriossa .abap-tiedostoina. Se ei muodosta yhteyttä SAP-järjestelmään.

Seuraavat vaiheet

Yhdistä repositorio pikaoppaan avulla ja tarkista sitten tukimatriisi yhteensopivuussivulta. Muita vanhoja ympäristöjä varten katso COBOL-opas.

Parhaiten sopii

  • > SAP-tiimit, jotka säilyttävät omaa ABAP-koodia Gitissä `.abap`-lähdetiedostoina ja joiden on ymmärrettävä se ennen migraatiota tai clean core -katselmointia.
  • > Olio-ohjelmoidut ABAP-ympäristöt, joissa luokkahierarkiat, rajapinnat ja uudelleenmäärittelyt kätkevät, mikä toteutus oikeasti suoritetaan.
  • > Agenttiavusteiset vaikutusanalyysit, joissa kysymys kuuluu: "mikä hajoaa, jos tämä luokka muuttuu?"

Agenttien työnkulut

  • > Kartoittaa, mitkä luokat perivät kantaluokan ja mitkä metodit ne määrittelevät uudelleen.
  • > Löytää kaikki rajapinnan toteuttavat luokat ennen kuin sen metodien allekirjoituksia muutetaan.
  • > Jäljittää, missä poikkeusluokka nostetaan ja missä se otetaan kiinni.

Moottorin yksityiskohdat

  • > ABAP jäsennetään omalla kieliopilla. Luokat, rajapinnat, metodien esittelyt ja toteutukset sekä `FORM`-rutiinit ovat symboleja.
  • > Graafi tallentaa periytymisen lauseesta `INHERITING FROM`, toteutukset lauseesta `INTERFACES`, ylikirjoitukset lauseesta `REDEFINITION`, lauseet `RAISE EXCEPTION` ja `CATCH` sekä kutsut kuten `obj->m( )` ja `cls=>m( )`.
  • > Nykyinen kielioppi ei jäsennä Open SQL:ää eikä lauseita `EXEC SQL` ja `AUTHORITY-CHECK`, joten SQL:n kautta tehdyt taululuvut eivät vielä ole graafin kaaria.

Hyödylliset MCP-liittymäkohdat

  • find_symbol

    Käytä sitä luokan, rajapinnan tai metodin nimellä, kun tarvitset määrittelyn ja viittaukset.

  • dependency_search

    Käytä ennen muutosta incoming-läpikäyntiä kantaluokkaan tai rajapintaan löytääksesi aliluokat, toteutukset ja kutsujat.

  • text_pattern_search

    Käytä sitä tietokantataulujen nimiin ja SQL-lauseisiin, joita graafi ei vielä kata.