Langkau ke kandungan
cd /languages
  • Teras perusahaan
  • Pengaturcaraan
  • Sokongan AST dan simbol

ABAP dalam Maguyva: graf kelas untuk kod SAP tersuai

Maguyva menyokong ABAP dengan AST, simbol dan graf, supaya ejen AI boleh memetakan kelas, antara muka, takrif semula dan pengecualian dalam kod SAP tersuai.

Mengapa ABAP wajar dipetakan sebelum diubah

ABAP tersuai selalunya membawa peraturan perniagaan yang terkumpul selama berdekad-dekad. Kodnya sebahagian berorientasikan objek dan sebahagian prosedural, dan struktur pewarisan serta antara muka menentukan kaedah mana yang berjalan. Perkara itu tidak kelihatan apabila anda membaca satu kelas pada satu masa.

Maguyva memberikan graf kelas kepada ejen dahulu, supaya pelan perubahan bermula daripada apa yang bergantung pada sesuatu kelas, bukan daripada tekaan.

Apa yang diekstrak oleh Maguyva daripada ABAP

Maguyva menghuraikan sumber .abap dengan tatabahasa ABAP khusus. Simbol merangkumi definisi dan pelaksanaan kelas, antara muka, pengisytiharan dan pelaksanaan kaedah, serta rutin FORM.

Graf merekodkan hubungan yang penting kepada pembangun ABAP:

  • Pewarisan daripada CLASS ... INHERITING FROM.
  • Pelaksanaan antara muka daripada INTERFACES.
  • Penggantian daripada METHODS ... REDEFINITION.
  • Pengecualian daripada RAISE EXCEPTION dan CATCH.
  • Panggilan kaedah (obj->m( ), cls=>m( ), CALL METHOD), rujukan jenis daripada TYPE dan TYPE REF TO, serta eksport kaedah bahagian public yang dikaitkan dengan kelasnya.
  • Bacaan, tulisan dan aliran kawalan (IF, CASE, LOOP, TRY) di dalam badan kaedah.

Contoh gesaan ejen

  • “Kelas mana yang mewarisi daripada zcl_order_base, dan kaedah mana yang ditakrif semula?” (find_symbol, kemudian dependency_search arah masuk)
  • “Di mana zcx_pricing_error dibangkitkan, dan siapa yang menangkapnya?” (dependency_search)
  • “Ringkaskan cara aliran penciptaan penghantaran bergerak daripada laporan ke kelas penyimpanan.” (get_task_context)

Had yang diketahui

  • Open SQL (SELECT ... FROM ... INTO), EXEC SQL dan AUTHORITY-CHECK belum dihuraikan oleh tatabahasa ABAP semasa, jadi bacaan jadual melalui SQL belum menjadi tepi graf. Gunakan text_pattern_search untuk nama jadual.
  • Pernyataan INTERFACES ialah hubungan pelaksanaan, bukan import. Dalam carian berstruktur, hanya pernyataan INCLUDE dipilih sebagai import.
  • Maguyva mengindeks ABAP yang berada dalam repositori Git sebagai fail .abap. Ia tidak bersambung ke sistem SAP.

Langkah seterusnya

Sambungkan repositori dengan panduan permulaan pantas, kemudian semak matriks sokongan di halaman keserasian. Untuk persekitaran lama yang lain, lihat panduan COBOL.

Paling sesuai

  • > Pasukan SAP yang menyimpan ABAP tersuai dalam Git sebagai fail sumber `.abap` dan perlu memahaminya sebelum migrasi atau semakan clean core.
  • > Persekitaran ABAP berorientasikan objek, tempat hierarki kelas, antara muka dan takrif semula menyembunyikan pelaksanaan yang benar-benar berjalan.
  • > Analisis impak dibantu ejen, dengan soalan: “apa yang rosak jika kelas ini berubah?”

Aliran kerja ejen

  • > Memetakan kelas yang mewarisi daripada kelas asas dan kaedah yang ditakrif semula oleh kelas itu.
  • > Mencari semua kelas yang melaksanakan sesuatu antara muka sebelum tandatangan kaedahnya berubah.
  • > Menjejak tempat kelas pengecualian dibangkitkan dan tempat ia ditangkap.

Butiran enjin

  • > ABAP dihuraikan dengan tatabahasa khusus. Kelas, antara muka, pengisytiharan dan pelaksanaan kaedah, serta rutin `FORM` ialah simbol.
  • > Graf merekodkan pewarisan melalui `INHERITING FROM`, pelaksanaan melalui `INTERFACES`, penggantian melalui `REDEFINITION`, `RAISE EXCEPTION` dan `CATCH`, serta panggilan seperti `obj->m( )` dan `cls=>m( )`.
  • > Open SQL, `EXEC SQL` dan `AUTHORITY-CHECK` belum dihuraikan oleh tatabahasa semasa, jadi bacaan jadual melalui SQL belum menjadi tepi graf.

Titik masuk MCP yang berguna

  • find_symbol

    Gunakan dengan nama kelas, antara muka atau kaedah apabila anda memerlukan definisi dan rujukan.

  • dependency_search

    Sebelum perubahan, gunakan penjelajahan arah masuk pada kelas asas atau antara muka untuk mencari subkelas, pelaksanaan dan pemanggil.

  • text_pattern_search

    Gunakan untuk nama jadual pangkalan data dan pernyataan SQL yang belum diliputi oleh graf.