تخطَّ إلى المحتوى
cd /languages
  • جوهر المؤسسة
  • البرمجة
  • دعم AST والرموز

لغة ABAP في Maguyva: رسوم بيانية للفئات في شيفرة SAP المخصصة

يدعم Maguyva لغة ABAP بشجرة AST والرموز والرسم البياني، ليتمكن وكلاء الذكاء الاصطناعي من رسم خرائط الفئات والواجهات وإعادة التعريف والاستثناءات في شيفرة SAP المخصصة.

لماذا يستحق ABAP رسم خريطته قبل تغييره

تحمل شيفرة ABAP المخصصة في الغالب عقودًا من قواعد العمل. الشيفرة كائنية التوجه في مواضع وإجرائية في أخرى، وبنية الوراثة والواجهات هي التي تقرر أي أسلوب يُنفَّذ. وهذا لا يظهر حين تقرأ فئة واحدة في كل مرة.

يمنح Maguyva الوكيل الرسم البياني للفئات أولًا، فتبدأ خطة التغيير مما يعتمد على الفئة لا من التخمين.

ما الذي يستخرجه Maguyva من ABAP

يحلّل Maguyva الشيفرة المصدرية .abap بقواعد نحوية مخصصة للغة ABAP. تشمل الرموز تعريفات الفئات وتنفيذاتها، والواجهات، وتصريحات الأساليب وتنفيذاتها، وإجراءات FORM.

يسجّل الرسم البياني العلاقات التي تهم مطوّري ABAP:

  • الوراثة من CLASS ... INHERITING FROM.
  • تنفيذ الواجهات من INTERFACES.
  • التجاوزات من METHODS ... REDEFINITION.
  • الاستثناءات من RAISE EXCEPTION وCATCH.
  • استدعاءات الأساليب (obj->m( ) وcls=>m( ) وCALL METHOD)، ومراجع الأنواع من TYPE وTYPE REF TO، وتصدير أساليب القسم العام منسوبةً إلى فئتها.
  • القراءات والكتابات وتدفق التحكم (IF وCASE وLOOP وTRY) داخل أجسام الأساليب.

أمثلة على مطالبات الوكلاء

  • “ما الفئات التي ترث من zcl_order_base، وما الأساليب التي تعيد تعريفها؟” (find_symbol ثم dependency_search في الاتجاه الوارد)
  • “أين يُطلَق zcx_pricing_error، ومن يلتقطه؟” (dependency_search)
  • “لخّص كيف ينتقل مسار إنشاء التسليم من التقرير إلى فئة الحفظ.” (get_task_context)

القيود المعروفة

  • لا تحلّل قواعد ABAP الحالية عبارات Open SQL (SELECT ... FROM ... INTO) وEXEC SQL وAUTHORITY-CHECK، لذا فإن قراءات الجداول عبر SQL ليست حوافَّ في الرسم البياني بعد. استخدم text_pattern_search لأسماء الجداول.
  • عبارات INTERFACES علاقات تنفيذ لا استيراد. في البحث البنيوي لا تُختار استيرادًا إلا عبارات INCLUDE.
  • يفهرس Maguyva شيفرة ABAP الموجودة في مستودع Git على شكل ملفات .abap. ولا يتصل بنظام SAP.

الخطوات التالية

اربط مستودعًا عبر دليل البدء السريع، ثم راجع مصفوفة الدعم في صفحة التوافق. وللبيئات القديمة الأخرى، اطّلع على دليل لغة COBOL.

الأنسب لـ

  • > فرق SAP التي تحفظ شيفرة ABAP المخصصة في Git على شكل ملفات مصدرية `.abap` وتحتاج إلى فهمها قبل ترحيل أو مراجعة clean core.
  • > بيئات ABAP كائنية التوجه حيث تُخفي هرميات الفئات والواجهات وإعادة التعريف التنفيذَ الذي يعمل فعلًا.
  • > تحليلات الأثر بمساعدة الوكلاء، حيث يكون السؤال: «ما الذي سينكسر إذا تغيّرت هذه الفئة؟»

سير عمل الوكلاء

  • > رسم خريطة الفئات التي ترث من فئة أساسية والأساليب التي تعيد تعريفها.
  • > العثور على جميع الفئات التي تنفّذ واجهة قبل تغيير توقيعات أساليبها.
  • > تتبّع موضع إطلاق فئة استثناء وموضع التقاطها.

تفاصيل المحرك

  • > يُحلَّل ABAP بقواعد نحوية مخصصة. الفئات والواجهات وتصريحات الأساليب وتنفيذاتها وإجراءات `FORM` كلها رموز.
  • > يسجّل الرسم البياني الوراثة عبر `INHERITING FROM`، والتنفيذ عبر `INTERFACES`، والتجاوزات عبر `REDEFINITION`، و`RAISE EXCEPTION` و`CATCH`، واستدعاءات مثل `obj->m( )` و`cls=>m( )`.
  • > لا تحلّل القواعد الحالية Open SQL و`EXEC SQL` و`AUTHORITY-CHECK`، لذا فإن قراءات الجداول عبر SQL ليست حوافَّ في الرسم البياني بعد.

نقاط دخول مفيدة عبر MCP

  • find_symbol

    استخدمه مع اسم فئة أو واجهة أو أسلوب حين تحتاج إلى التعريف والمراجع.

  • dependency_search

    قبل أي تغيير، استخدم التتبّع في الاتجاه الوارد على فئة أساسية أو واجهة للعثور على الفئات الفرعية والتنفيذات والمستدعين.

  • text_pattern_search

    استخدمه لأسماء جداول قاعدة البيانات وعبارات SQL التي لا يغطيها الرسم البياني بعد.