ABAP में मॉड्यूलरीकरण: मैक्रो, सबरूटीन्स और फ़ंक्शन मॉड्यूल
जब आप स्रोत कोड को मॉड्यूलर करते हैं, तो आप ABAP कथनों का एक क्रम मॉड्यूल में रखते हैं। फिर, अपने मुख्य कार्यक्रम में सभी कथनों को रखने के बजाय, आप बस मॉड्यूल को कॉल करते हैं। जब कार्यक्रम तैयार होता है, तो मॉड्यूलरीकरण इकाई में स्रोत कोड को इस तरह से माना जाता है जैसे कि वह वास्तव में मुख्य कार्यक्रम में भौतिक रूप से मौजूद हो।
मॉड्यूलरीकरण की आवश्यकता
- कार्यक्रम की संरचना में सुधार करें.
- कोड को पढ़ना आसान
- कोड को बनाए रखना आसान
- अतिरेक से बचें और कोड पुनः उपयोग को बढ़ावा दें
विभिन्न मॉड्यूलरीकरण तकनीकें
- मैक्रोज़ का उपयोग
- सम्मिलित फ़ाइलों का उपयोग
- सबरूटीन्स
- फ़ंक्शन मॉड्यूल
आइये इनमें से प्रत्येक पर विस्तार से नजर डालें:
SAP- ABAP मैक्रो
यदि आप किसी प्रोग्राम में कथनों के एक ही सेट को एक से अधिक बार पुनः उपयोग करना चाहते हैं, तो आप उन्हें मैक्रो में शामिल कर सकते हैं।
आप मैक्रो का उपयोग केवल उस प्रोग्राम के भीतर ही कर सकते हैं जिसमें इसे परिभाषित किया गया है, तथा इसे केवल इसकी परिभाषा के बाद प्रोग्राम की पंक्तियों में ही बुलाया जा सकता है।
मैक्रोज़ लंबी गणनाओं या जटिल WRITE कथनों के लिए उपयोगी हो सकते हैं।
वाक्य - विन्यास
DEFINE <macro_name> 'Macro Statements END-OF-DEFINITION
मैक्रोज़ पैरामीटर्स का उपयोग कर सकते हैं &N जहाँ एन = 1,2,3…
उदाहरण:-
DATA: number1 TYPE I VALUE 1. DEFINE increment. ADD 1 to &1. WRITE &1. END-OF-DEFINITION. Increment number1. WRITE number1.
आउटपुट: १
कार्यक्रम शामिल करें
सम्मिलित कार्यक्रम केवल स्रोत कोड को मॉड्यूलर बनाने के लिए होते हैं, तथा इनमें कोई पैरामीटर इंटरफ़ेस नहीं होता।
शामिल प्रोग्राम आपको अलग-अलग प्रोग्राम में एक ही सोर्स कोड का उपयोग करने की अनुमति देते हैं। यदि आपके पास लंबी डेटा घोषणाएँ हैं जिन्हें आप अलग-अलग प्रोग्राम में उपयोग करना चाहते हैं तो वे उपयोगी हो सकते हैं।
वाक्य - विन्यास
Include <include program Name>
नोट करने के लिए अंक
- सम्मिलित कार्यक्रम स्वयं को कॉल नहीं कर सकते।
- सम्मिलित कार्यक्रमों में पूर्ण विवरण होना चाहिए।
उदाहरण:
INCLUDE ZILX0004. WRITE: / 'User', SY-UNAME,/ 'Date', SY-DATUM. ================================ PROGRAM ZRPM0001. INCLUDE ZILX0004.
सबरूटीन्स
सबरूटीन ऐसी प्रक्रियाएं हैं जिन्हें आप किसी भी रूप में परिभाषित कर सकते हैं एबीएपी कार्यक्रम और किसी भी प्रोग्राम से कॉल भी कर सकते हैं। सबरूटीन को आम तौर पर आंतरिक रूप से कॉल किया जाता है, यानी, उनमें कोड या एल्गोरिदम के सेक्शन होते हैं जो अक्सर स्थानीय रूप से उपयोग किए जाते हैं। यदि आप चाहते हैं कि कोई फ़ंक्शन पूरे सिस्टम में दोबारा इस्तेमाल किया जा सके, तो फ़ंक्शन मॉड्यूल का उपयोग करें।
वाक्य - विन्यास-
FORM <Subroutine> [<pass>]. <Statement block>. ENDFORM.
= सबरूटीन का नाम
= पारित किये जा रहे पैरामीटर
सबरूटीन्स के प्रकार
- आंतरिक
- उसी प्रोग्राम में परिभाषित सबरूटीन जिसे बुलाया जा रहा है।
- मुख्य ABAP/4 प्रोग्राम में घोषित सभी डेटा ऑब्जेक्ट तक पहुँच सकता है।
- बाहरी
- बुलाए जा रहे प्रोग्राम के बाहर परिभाषित सबरूटीन.
- का उपयोग करने की आवश्यकता है मेमोरी के सामान्य भागों में डेटा ऑब्जेक्ट्स को विकल्प या घोषित करें।
एक सबरूटीन को कॉल करना
आंतरिक सबरूटीन्स
PERFORM <subroutine> [<pass>]
= सबरूटीन का नाम
= पारित किये जा रहे पैरामीटर
मुख्य प्रोग्राम में घोषित डेटा स्वचालित रूप से उपलब्ध होता है।
बाहरी सबरूटीन्स
PERFORM <subroutine>(<Program>) [<pass>]. PERFORM <subroutine> (<Program>) [<pass>] [IF FOUND]. PERFORM (<subroutine>) IN PROGRAM (<Program>) [<pass>] [IF FOUND]. PERFORM <index> OF <subroutine1> <subroutine2> <subroutine3> [<pass>].
नोट करने के लिए अंक
- सबरूटीन्स में नेस्टेड कॉल की अनुमति है (अर्थात FORM के भीतर PERFORM … ENDFORM )।
- पुनरावर्ती कॉल भी संभव है।
- स्थानीय डेटा को परिभाषित करने के लिए, FORM के बाद DATA कथन का उपयोग करें। हर बार जब आप सबरूटीन में प्रवेश करते हैं, तो डेटा फिर से बनाया जाता है (प्रारंभिक मान के साथ) और अंत में (स्टैक से) जारी किया जाता है।
- सबरूटीन में इस्तेमाल किए जाने वाले वैश्विक डेटा को परिभाषित करने के लिए, FORM के बाद LOCAL कथन का उपयोग करें। जब आप सबरूटीन में प्रवेश करते हैं तो मान सहेजे जाते हैं और फिर अंत में (स्टैक से) जारी किए जाते हैं।
फ़ंक्शन मॉड्यूल
फ़ंक्शन मॉड्यूल सामान्य प्रयोजन ABAP/4 रूटीन हैं जिनका उपयोग कोई भी कर सकता है। वास्तव में, बड़ी संख्या में मानक फ़ंक्शन मॉड्यूल उपलब्ध हैं।
फ़ंक्शन मॉड्यूल को फ़ंक्शन समूहों में व्यवस्थित किया जाता है: तार्किक रूप से संबंधित फ़ंक्शनों का संग्रह। फ़ंक्शन मॉड्यूल हमेशा फ़ंक्शन समूह से संबंधित होता है।
वाक्य - विन्यास-
FUNCTION <function module> <Statements> ENDFUNCTION.
फ़ंक्शन मॉड्यूल से संबंधित महत्वपूर्ण जानकारी
- प्रशासन
- आयात/परिवर्तित/निर्यात पैरामीटर.
- तालिका पैरामीटर/अपवाद.
- दस्तावेज़ीकरण
- स्रोत कोड – L यू०१ . फ़ंक्शन समूह है
- वैश्विक डेटा – एल शीर्ष .फ़ंक्शन समूह के लिए वैश्विक डेटा-फ़ंक्शन समूह में फ़ंक्शन मॉड्यूल में सुलभ।
- मुख्य कार्यक्रम – SAPएल . उस फ़ंक्शन समूह के लिए सभी सम्मिलित फ़ाइलों की सूची शामिल है
फ़ंक्शन मॉड्यूल को कॉल करें
फ़ंक्शन मॉड्यूल को कॉल करने के लिए, CALL FUNCTION कथन का उपयोग करें:
CALL FUNCTION <module> [EXPORTING f1 = a 1.... f n = a n] [IMPORTING f1 = a 1.... f n = a n] [CHANGING f1 = a 1.... f n = a n] [TABLES f1 = a 1.... f n = a n] [EXCEPTIONS e1 = r 1.... e n = r n [ERROR_MESSAGE = r E] [OTHERS = ro]].
फ़ंक्शन समूह
फ़ंक्शन समूह फ़ंक्शन मॉड्यूल के लिए कंटेनर हैं। वास्तव में, मानक फ़ंक्शन समूहों की एक बड़ी संख्या है।
किसी फ़ंक्शन समूह के सभी फ़ंक्शन मॉड्यूल समूह के वैश्विक डेटा तक पहुँच सकते हैं।
जैसे निष्पादन योग्य प्रोग्राम (प्रकार 1) और मॉड्यूल पूल (प्रकार M), फ़ंक्शन समूहों में स्क्रीन, चयन स्क्रीन और सूचियाँ हो सकती हैं।
नोट करने के लिए अंक
- फ़ंक्शन समूह निष्पादित नहीं किया जा सकता.
- किसी फ़ंक्शन समूह का नाम अधिकतम 26 वर्णों तक लंबा हो सकता है।
- जब आप कोई फ़ंक्शन समूह या फ़ंक्शन मॉड्यूल बनाते हैं, तो मुख्य प्रोग्राम और सम्मिलित प्रोग्राम स्वचालित रूप से उत्पन्न हो जाते हैं।
- फ़ंक्शन समूह डेटा को समाहित करते हैं.
फ़ंक्शन समूह कैसे बनाएं
- ट्रांजेक्शन SE80 पर जाएं.
- ड्रॉपडाउन में प्रोग्राम का चयन करें।
- उस फ़ंक्शन समूह का नाम लिखें जिसे आप बनाना चाहते हैं। आम तौर पर उपयोगकर्ता द्वारा बनाए गए फ़ंक्शन समूह “Z” से शुरू होते हैं। उदाहरण के लिए – . एंटर कुंजी दबाएं.
- ध्यान दें कि यदि उपयोगकर्ता TOP include बनाने का विकल्प चेक करता है तो TOP include डिफ़ॉल्ट रूप से बन जाता है।
फ़ंक्शन मॉड्यूल कैसे बनाएं
- एक फ़ंक्शन समूह बनाएं (मान लें “ZCAL”).
- एक फ़ंक्शन मॉड्यूल बनाएं, विशेषताएं सेट करें (फ़ंक्शन समूह, एप्लिकेशन, लघु पाठ और प्रक्रिया प्रकार) और सहेजें।
- सम्मिलित फ़ाइल "LZCALU01" में प्रथम फ़ंक्शन मॉड्यूल का स्रोत कोड होगा।
- सम्मिलित फ़ाइल “LZCALTOP” में वैश्विक डेटा होगा।
- मुख्य कार्यक्रम “SAPLZCAL” में शामिल है
- वैश्विक डेटा फ़ाइल “LZCALTOP” शामिल करें
- फ़ंक्शन मॉड्यूल में फ़ाइल “LZCALUXX” शामिल है
- उपयोगकर्ता परिभाषित फ़ाइलें “LZCALF..”, “LZCALO..” और “LZCALI..” शामिल करें
- इंटरफ़ेस पैरामीटर और अपवाद परिभाषित करें
- स्रोत कोड लिखें
- फ़ंक्शन मॉड्यूल सक्रिय करें
- फ़ंक्शन मॉड्यूल का परीक्षण – एकल परीक्षण और डिबगिंग
- फ़ंक्शन मॉड्यूल का दस्तावेज़ीकरण और रिलीज़ करना
ABAP में मॉड्यूलरिटी के बारे में बस इतना ही है।
