Chuyển tới nội dung
cd /languages
  • Lõi doanh nghiệp
  • Lập trình
  • Hỗ trợ AST và symbol

ABAP trên Maguyva: đồ thị lớp cho mã SAP tùy chỉnh

Maguyva hỗ trợ ABAP với AST, ký hiệu và đồ thị, để agent AI có thể lập bản đồ lớp, interface, định nghĩa lại và ngoại lệ trong mã SAP tùy chỉnh.

Vì sao nên lập bản đồ ABAP trước khi thay đổi

ABAP tùy chỉnh thường mang theo quy tắc nghiệp vụ tích lũy qua hàng chục năm. Mã có chỗ hướng đối tượng, có chỗ thủ tục, và cấu trúc kế thừa cùng interface quyết định phương thức nào sẽ chạy. Điều đó không thể thấy khi bạn đọc từng lớp một.

Maguyva đưa cho agent đồ thị lớp trước, để kế hoạch thay đổi bắt đầu từ những gì phụ thuộc vào một lớp chứ không từ phỏng đoán.

Maguyva trích xuất gì từ ABAP

Maguyva phân tích mã nguồn .abap bằng một ngữ pháp ABAP chuyên biệt. Ký hiệu bao gồm định nghĩa và triển khai lớp, interface, khai báo và triển khai phương thức, cùng các routine FORM.

Đồ thị ghi lại những quan hệ quan trọng với lập trình viên ABAP:

  • Kế thừa từ CLASS ... INHERITING FROM.
  • Triển khai interface từ INTERFACES.
  • Ghi đè từ METHODS ... REDEFINITION.
  • Ngoại lệ từ RAISE EXCEPTION và CATCH.
  • Lời gọi phương thức (obj->m( ), cls=>m( ), CALL METHOD), tham chiếu kiểu từ TYPE và TYPE REF TO, và việc export phương thức ở phần public, được gán cho lớp của chúng.
  • Đọc, ghi và luồng điều khiển (IF, CASE, LOOP, TRY) bên trong thân phương thức.

Ví dụ prompt cho agent

  • “Những lớp nào kế thừa từ zcl_order_base, và chúng định nghĩa lại những phương thức nào?” (find_symbol, sau đó dependency_search theo chiều vào)
  • “zcx_pricing_error được raise ở đâu, và ai catch nó?” (dependency_search)
  • “Tóm tắt luồng tạo giao hàng đi từ báo cáo tới lớp lưu trữ như thế nào.” (get_task_context)

Giới hạn đã biết

  • Open SQL (SELECT ... FROM ... INTO), EXEC SQL và AUTHORITY-CHECK chưa được ngữ pháp ABAP hiện tại phân tích, nên thao tác đọc bảng qua SQL chưa phải là cạnh đồ thị. Hãy dùng text_pattern_search cho tên bảng.
  • Câu lệnh INTERFACES là quan hệ triển khai, không phải nhập. Trong tìm kiếm cấu trúc, chỉ câu lệnh INCLUDE được chọn làm nhập.
  • Maguyva lập chỉ mục ABAP nằm trong kho Git dưới dạng tệp .abap. Nó không kết nối với hệ thống SAP.

Bước tiếp theo

Kết nối một kho mã bằng hướng dẫn bắt đầu nhanh, sau đó xem ma trận hỗ trợ trên trang tương thích. Với các môi trường cũ khác, hãy xem hướng dẫn COBOL.

Phù hợp nhất

  • > Các nhóm SAP lưu ABAP tùy chỉnh trong Git dưới dạng tệp nguồn `.abap` và cần hiểu nó trước một đợt di chuyển hoặc review clean core.
  • > Môi trường ABAP hướng đối tượng, nơi hệ thống phân cấp lớp, interface và định nghĩa lại che khuất phần triển khai thực sự chạy.
  • > Phân tích tác động có agent hỗ trợ, nơi câu hỏi là: “nếu lớp này thay đổi thì cái gì sẽ hỏng?”

Workflow agent

  • > Lập bản đồ các lớp kế thừa từ một lớp cơ sở và các phương thức chúng định nghĩa lại.
  • > Tìm mọi lớp triển khai một interface trước khi chữ ký phương thức của nó thay đổi.
  • > Lần theo nơi một lớp ngoại lệ được raise và nơi nó được catch.

Chi tiết engine

  • > ABAP được phân tích bằng một ngữ pháp chuyên biệt. Lớp, interface, khai báo và triển khai phương thức, và routine `FORM` đều là ký hiệu.
  • > Đồ thị ghi lại kế thừa qua `INHERITING FROM`, triển khai qua `INTERFACES`, ghi đè qua `REDEFINITION`, `RAISE EXCEPTION` và `CATCH`, cùng các lời gọi như `obj->m( )` và `cls=>m( )`.
  • > Open SQL, `EXEC SQL` và `AUTHORITY-CHECK` chưa được ngữ pháp hiện tại phân tích, nên thao tác đọc bảng qua SQL chưa phải là cạnh đồ thị.

Điểm khởi đầu MCP hữu ích

  • find_symbol

    Dùng với tên lớp, interface hoặc phương thức khi bạn cần định nghĩa và các tham chiếu.

  • dependency_search

    Trước khi thay đổi, dùng duyệt theo chiều vào trên một lớp cơ sở hoặc interface để tìm lớp con, phần triển khai và nơi gọi.

  • text_pattern_search

    Dùng cho tên bảng cơ sở dữ liệu và câu lệnh SQL mà đồ thị chưa bao phủ.