सामग्री पर जाएँ
cd /languages
  • एंटरप्राइज़ का मूल
  • प्रोग्रामिंग
  • AST और सिंबल सपोर्ट

Maguyva में ABAP: कस्टम SAP कोड के लिए क्लास ग्राफ़

Maguyva, ABAP को AST, सिंबल और ग्राफ़ के साथ सपोर्ट करता है, ताकि AI एजेंट कस्टम SAP कोड में क्लास, इंटरफ़ेस, redefinition और exception का नक्शा बना सकें।

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 से टाइप रेफ़रेंस, और पब्लिक-सेक्शन मेथड के export, जो उनकी क्लास से जोड़े जाते हैं।
  • मेथड बॉडी के अंदर रीड, राइट और कंट्रोल फ़्लो (IF, CASE, LOOP, TRY)।

एजेंट प्रॉम्प्ट के उदाहरण

  • “कौन-सी क्लास zcl_order_base से इनहेरिट करती हैं, और वे उसके कौन-से मेथड रीडिफ़ाइन करती हैं?” (find_symbol, फिर incoming दिशा में dependency_search)
  • “zcx_pricing_error कहाँ रेज़ होती है, और उसे कौन catch करता है?” (dependency_search)
  • “डिलीवरी बनाने का फ़्लो रिपोर्ट से persistence क्लास तक कैसे जाता है, इसका सार दो।” (get_task_context)

ज्ञात सीमाएँ

  • Open SQL (SELECT ... FROM ... INTO), EXEC SQL और AUTHORITY-CHECK को मौजूदा ABAP व्याकरण पार्स नहीं करता, इसलिए SQL के ज़रिए टेबल रीड अभी ग्राफ़ एज नहीं हैं। टेबल नामों के लिए text_pattern_search इस्तेमाल करें।
  • INTERFACES स्टेटमेंट इम्प्लीमेंटेशन संबंध हैं, इम्पोर्ट नहीं। स्ट्रक्चरल सर्च में सिर्फ़ INCLUDE स्टेटमेंट ही इम्पोर्ट के रूप में चुने जाते हैं।
  • Maguyva उस ABAP को इंडेक्स करता है जो Git रिपॉज़िटरी में .abap फ़ाइलों के रूप में मौजूद है। यह SAP सिस्टम से कनेक्ट नहीं होता।

अगले कदम

क्विकस्टार्ट से रिपॉज़िटरी जोड़ें, फिर सपोर्ट मैट्रिक्स कम्पैटिबिलिटी पेज पर देखें। दूसरे legacy परिवेशों के लिए COBOL गाइड देखें।

सबसे उपयुक्त

  • > SAP टीमें, जो कस्टम ABAP को Git में `.abap` सोर्स फ़ाइलों के रूप में रखती हैं और माइग्रेशन या clean-core समीक्षा से पहले उसे समझना चाहती हैं।
  • > ऑब्जेक्ट-ओरिएंटेड ABAP परिवेश, जहाँ क्लास पदानुक्रम, इंटरफ़ेस और redefinition यह छिपा देते हैं कि असल में कौन-सा इम्प्लीमेंटेशन चलता है।
  • > एजेंट की मदद से होने वाला इम्पैक्ट एनालिसिस, जहाँ सवाल यह है: “यह क्लास बदली तो क्या टूटेगा?”

एजेंट वर्कफ़्लो

  • > किसी बेस क्लास से इनहेरिट करने वाली क्लास और उनके रीडिफ़ाइन किए गए मेथड का नक्शा बनाना।
  • > मेथड सिग्नेचर बदलने से पहले किसी इंटरफ़ेस को इम्प्लीमेंट करने वाली सभी क्लास ढूँढना।
  • > कोई एक्सेप्शन क्लास कहाँ रेज़ होती है और कहाँ catch होती है, इसे ट्रेस करना।

इंजन विवरण

  • > 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

    बदलाव से पहले सबक्लास, इम्प्लीमेंटेशन और कॉलर ढूँढने के लिए किसी बेस क्लास या इंटरफ़ेस पर incoming ट्रैवर्सल इस्तेमाल करें।

  • text_pattern_search

    डेटाबेस टेबल नामों और उन SQL स्टेटमेंट के लिए इस्तेमाल करें जिन्हें ग्राफ़ अभी कवर नहीं करता।

संबंधित गाइड

रिपॉज़िटरी के संबंधित हिस्से

सभी गाइड ब्राउज़ करें
पुराने सिस्टम की ताक़त प्रोग्रामिंग

Maguyva में COBOL सपोर्ट: लेगेसी आधुनिकीकरण के लिए डिपेंडेंसी विश्लेषण

यहीं पर व्यापक भाषा सपोर्ट सिर्फ़ एक आंकड़ा बनकर नहीं रहता — यह एक आधुनिकीकरण उपकरण बन जाता है।

AST और सिंबल सपोर्ट AST पार्सिंग सिंबल एक्सट्रैक्शन ग्राफ़ रिलेशनशिप्स

एक्सटेंशन

.cbl, .cob, .cpy

गाइड खोलें
एंटरप्राइज़ गहराई प्रोग्रामिंग

Maguyva में Java सपोर्ट: एंटरप्राइज़ रिपॉज़िटरी के लिए कोड इंटेलिजेंस

उपयोगी तब जब रिपॉज़िटरी Spring सर्विसेज़, आंतरिक फ़्रेमवर्क, और कई संगठनात्मक दौर से बचे हुए कोड से भरी हो।

AST और सिंबल सपोर्ट AST पार्सिंग सिंबल एक्सट्रैक्शन ग्राफ़ रिलेशनशिप्स

एक्सटेंशन

.java

गाइड खोलें