संवाद प्रोग्रामिंग ट्यूटोरियल: मॉड्यूल पूल SAP ABAP

⚡ स्मार्ट सारांश

संवाद प्रोग्रामिंग में SAP ABAP मॉड्यूल पूल प्रोग्राम बनाता है जो स्क्रीन के माध्यम से उपयोगकर्ता के साथ इंटरैक्ट करते हैं और डेटाबेस की सामग्री को बदलते हैं। यह पृष्ठ ट्रांज़ैक्शन कोड, स्क्रीन, GUI स्थिति, स्क्रीन फ्लो लॉजिक, डायनप्रो और मॉड्यूल पूल संरचना की व्याख्या करता है।

  • 💬 मूल परिभाषा: एक डायलॉग प्रोग्राम उपयोगकर्ता की किसी भी प्रकार की बातचीत को संभालता है, जैसे कि डेटा दर्ज करना, मेनू आइटम चुनना या बटन पर क्लिक करना, और डेटाबेस को अपडेट कर सकता है।
  • 🅼 कार्यक्रम का प्रकार: डायलॉग प्रोग्राम टाइप एम मॉड्यूल पूल होते हैं, वे अपने आप नहीं चल सकते हैं, और उन्हें कम से कम एक ट्रांजैक्शन कोड से जोड़ा जाना चाहिए जिसमें एक प्रारंभिक स्क्रीन हो।
  • 🧩 अवयव: एक ट्रांजैक्शन कोड, स्क्रीन, जीयूआई स्टेटस, एबीएपी मॉड्यूल पूल और फ्लो लॉजिक मिलकर एक डायलॉग एप्लिकेशन बनाते हैं।
  • 🔄 प्रवाह तर्क: PBO स्क्रीन दिखाई देने से पहले चलता है, PAI उपयोगकर्ता की कार्रवाई के बाद चलता है, POH F1 का उत्तर देता है, और POV F4 का उत्तर देता है।
  • डायनप्रो: एक स्क्रीन और उसका फ्लो लॉजिक मिलकर एक डायनप्रो बनाते हैं, और प्रत्येक डायनप्रो डायलॉग के ठीक एक चरण को नियंत्रित करता है।
  • 📦 मॉड्यूल पूल: एक ही लेनदेन के भीतर कॉल किए गए सभी डायनप्रो एक सामान्य मॉड्यूल पूल को संदर्भित करते हैं जिसमें डायलॉग मॉड्यूल होते हैं।
  • सृजन पथ: SE80 मॉड्यूल पूल बनाता है, SE51 स्क्रीन को डिज़ाइन करता है, SE41 GUI स्टेटस बनाता है, और SE93 ट्रांजैक्शन कोड को लिंक करता है।

SAP ABAP डायलॉग प्रोग्रामिंग

डायलॉग प्रोग्रामिंग क्या है?

SAP-ABAP दो प्रकार के प्रोग्रामों का समर्थन करता है - रिपोर्ट प्रोग्राम और डायलॉग प्रोग्राम।

यदि आपका ABAP प्रोग्राम उपयोगकर्ता इनपुट मांगता है, तो डायलॉग प्रोग्रामिंग का उपयोग किया जाता है।

उपयोगकर्ता संवाद उपयोगकर्ता और प्रोग्राम के बीच किसी भी प्रकार की बातचीत है और यह निम्नलिखित में से कोई भी हो सकता है।

  • डेटा दर्ज करना
  • मेनू आइटम चुनना
  • एक बटन क्लिक करना
  • किसी प्रविष्टि पर क्लिक करना या डबल क्लिक करना

डायलॉग प्रोग्राम का उपयोग तब भी किया जाता है जब हमें स्क्रीन के बीच आगे-पीछे नेविगेट करने की आवश्यकता होती है

डायलॉग प्रोग्राम 'M' - मॉड्यूल पूल के प्रकार से बनाए जाते हैं। उन्हें स्वतंत्र रूप से निष्पादित नहीं किया जा सकता है और उन्हें कम से कम एक लेनदेन कोड से जोड़ा जाना चाहिए जिसमें आप एक प्रारंभिक स्क्रीन निर्दिष्ट करते हैं।

रिपोर्ट और संवाद प्रोग्राम के बीच अंतर

रिपोर्ट और संवाद प्रोग्राम के बीच अंतर

रिपोर्ट कार्यक्रम:

रिपोर्ट एक प्रोग्राम है जो आम तौर पर डेटाबेस तालिकाओं में डेटा को बदले बिना पढ़ता है और उसका विश्लेषण करता है। डेटाबेस.

संवाद कार्यक्रम:

एक डायलॉग प्रोग्राम आपको सिस्टम के साथ इंटरेक्टिव रूप से काम करने और डेटाबेस टेबल की सामग्री को बदलने की अनुमति देता है। प्रत्येक डायलॉग प्रोग्राम में स्क्रीन का एक निश्चित क्रम होता है जिसे सिस्टम द्वारा एक के बाद एक संसाधित किया जाता है।

मापदंड रिपोर्ट कार्यक्रम संवाद कार्यक्रम
कार्यक्रम का प्रकार प्रकार 1, निष्पादन योग्य टाइप एम, मॉड्यूल पूल
डेटाबेस एक्सेस डेटा पढ़ता और उसका विश्लेषण करता है डेटा पढ़ता और बदलता है
निष्पादन यह अपने आप चलता है यह केवल लेनदेन कोड के माध्यम से चलता है
नियंत्रण रिपोर्ट की घटनाएँ प्रत्येक डायनप्रो का स्क्रीन फ्लो लॉजिक

एक उदाहरण की मदद से डायलॉग लेनदेन के स्क्रीन अनुक्रम को समझना आसान हो जाता है।

संवाद प्रोग्रामिंग में लेनदेन प्रसंस्करण का एक नमूना

एक नमूना लेनदेन प्रसंस्करण

यह आरेख पहले स्क्रीन से डेटाबेस अपडेट तक एक लेन-देन को दर्शाता है। उपयोगकर्ता स्क्रीन 100 पर डेटा दर्ज करता है, PAI प्रविष्टि को मान्य करता है और अगली स्क्रीन का निर्धारण करता है, स्क्रीन 200 शेष डेटा एकत्र करती है, और अंत में अपडेट कार्य रिकॉर्ड लिखता है। इनमें से प्रत्येक चरण नीचे सूचीबद्ध घटकों द्वारा निर्मित होता है।

संवाद कार्यक्रम के घटक

विपरीत रिपोर्ट जिसमें सामान्यतः एक स्वायत्त कार्यक्रम का निर्माण शामिल होता है जिसे अन्य वस्तुओं से स्वतंत्र रूप से क्रियान्वित किया जा सकता है, संवाद कार्यक्रम विकास में अनेक वस्तुओं का विकास शामिल होता है जिनमें से किसी को भी अकेले क्रियान्वित नहीं किया जा सकता। इसके बजाय सभी ऑब्जेक्ट्स मुख्य प्रोग्राम से पदानुक्रमिक रूप से जुड़े होते हैं और डायलॉग मुख्य प्रोग्राम द्वारा निर्धारित अनुक्रम में निष्पादित होते हैं.

संवाद कार्यक्रम के घटक हैं:

लेनदेन कोड

  • लेनदेन कोड एक स्क्रीन अनुक्रम शुरू करता है।
  • आप ABAP वर्कबेंच में रिपॉजिटरी ब्राउज़र में या ट्रांजेक्शन SE93 का उपयोग करके ट्रांजेक्शन कोड बनाते हैं।
  • लेनदेन कोड ABAP प्रोग्राम और प्रारंभिक स्क्रीन से जुड़ा होता है।
  • आप CALL SCREEN कथन का उपयोग करके किसी भी ABAP प्रोग्राम से स्क्रीन अनुक्रम प्रारंभ कर सकते हैं।

स्क्रीन

  • प्रत्येक संवाद में SAP सिस्टम को एक या एक से अधिक स्क्रीन द्वारा नियंत्रित किया जाता है।
  • आप स्क्रीन का उपयोग करके स्क्रीन बनाते हैं Painter ABAP वर्कबेंच में लेनदेन SE51 के माध्यम से
  • प्रत्येक स्क्रीन एक एबीएपी कार्यक्रम.
  • इन स्क्रीन में एक "स्क्रीन मास्क" या "लेआउट" और उसका प्रवाह तर्क होता है। स्क्रीन में एक लेआउट होता है जो इनपुट/आउटपुट फ़ील्ड और चेकबॉक्स और रेडियो बटन जैसे अन्य ग्राफ़िकल तत्वों की स्थिति निर्धारित करता है। एक प्रवाह तर्क स्क्रीन के भीतर तार्किक प्रसंस्करण निर्धारित करता है।

GUI स्थिति

  • प्रत्येक स्क्रीन की एक GUI स्थिति होती है जो प्रोग्राम के स्वतंत्र घटक होते हैं।
  • यह मेनू बार, मानक टूलबार, एप्लिकेशन टूलबार को नियंत्रित करता है, जिसके साथ उपयोगकर्ता एप्लिकेशन में फ़ंक्शन चुन सकता है।
  • आप उन्हें मेनू का उपयोग करके ABAP वर्कबेंच में बनाते हैं Painter.

एबीएपी कार्यक्रम

  • R/3 सिस्टम में प्रत्येक स्क्रीन और GUI स्थिति एक ABAP प्रोग्राम से संबंधित होती है।
  • ABAP प्रोग्राम में संवाद मॉड्यूल होते हैं जिन्हें स्क्रीन फ्लो लॉजिक द्वारा बुलाया जाता है, और यह GUI स्थिति से उपयोगकर्ता इनपुट को भी संसाधित करता है।
  • ABAP प्रोग्राम जो स्क्रीन का उपयोग करते हैं उन्हें डायलॉग प्रोग्राम भी कहा जाता है।
  • मॉड्यूल पूल (टाइप M प्रोग्राम) में; कॉल किया जाने वाला पहला प्रोसेसिंग ब्लॉक हमेशा एक डायलॉग मॉड्यूल होता है। हालाँकि, आप अन्य ABAP प्रोग्राम जैसे कि एक्जीक्यूटेबल प्रोग्राम या फ़ंक्शन मॉड्यूल में भी स्क्रीन का उपयोग कर सकते हैं। फिर पहले प्रोसेसिंग ब्लॉक को अलग तरीके से कॉल किया जाता है; उदाहरण के लिए, रनटाइम एनवायरनमेंट या प्रोसीजर कॉल द्वारा। फिर स्क्रीन अनुक्रम को CALL SCREEN कथन का उपयोग करके शुरू किया जाता है।

स्क्रीन प्रवाह तर्क

स्क्रीन फ्लो लॉजिक मुख्यतः चार घटकों में विभाजित है।

  • आउटपुट से पहले प्रक्रिया (PBO) ईवेंट: जिसे स्क्रीन प्रदर्शित होने से पहले संसाधित किया जाता है
  • इनपुट के बाद प्रक्रिया (पै) ईवेंट: जो स्क्रीन पर उपयोगकर्ता की कार्रवाई के बाद संसाधित होता है
  • सहायता अनुरोध पर प्रक्रिया (पोह): जो F1 दबाने पर संसाधित होता है
  • मूल्य अनुरोध पर प्रक्रिया (पीओवी): जो F4 दबाने पर संसाधित होता है

POH और POV के बारे में विस्तार से जानकारी उस पृष्ठ पर दी गई है। मूल्य अनुरोध पर प्रक्रिया और सहायता अनुरोध पर प्रक्रिया.

डायनप्रो

  • स्क्रीन और उसके फ्लो लॉजिक को मिलाकर डायनप्रो कहा जाता है ("डायनेमिक प्रोग्राम" क्योंकि स्क्रीन फ्लो लॉजिक प्रोग्राम फ्लो को प्रभावित करता है)।
  • प्रत्येक डायनप्रो आपके संवाद कार्यक्रम के ठीक एक चरण को नियंत्रित करता है।
  • एक कार्यक्रम से संबंधित स्क्रीन हैं गिनेस्क्रीन प्रवाह अनुक्रम रैखिक या चक्रीय हो सकता है। एक स्क्रीन श्रृंखला के भीतर से, आप दूसरी स्क्रीन श्रृंखला को कॉल कर सकते हैं और उसे संसाधित करने के बाद मूल श्रृंखला पर वापस लौट सकते हैं। आप ABAP प्रोग्राम के डायलॉग मॉड्यूल के भीतर से स्थिर रूप से परिभाषित अगली स्क्रीन को ओवरराइड भी कर सकते हैं।

ABAP मॉड्यूल पूल

  • PBO या PAI इवेंट पर, Dynpro एक ABAP डायलॉग प्रोग्राम को कॉल करता है। ऐसे प्रोग्रामों के संग्रह को ABAP मॉड्यूल पूल कहा जाता है।
  • उदाहरण के लिए, PAI इवेंट पर कॉल किए गए मॉड्यूल का उपयोग उपयोगकर्ता इनपुट की जांच करने और अपडेट कार्य जैसे उपयुक्त संवाद चरणों को ट्रिगर करने के लिए किया जाता है।
  • सभी डायनप्रो को अंदर से बुलाया जाएगा एक लेनदेन एक सामान्य मॉड्यूल पूल को संदर्भित करता है।

संवाद कार्यक्रम की संरचना

संवाद कार्यक्रम की संरचना

संरचना आरेख दर्शाता है कि लेनदेन कोड, स्क्रीन, जीयूआई स्थिति और मॉड्यूल पूल एक ही मुख्य प्रोग्राम से कैसे जुड़े हुए हैं।

संवाद कार्यक्रम के लिए प्रक्रिया प्रवाह

संवाद कार्यक्रम के लिए प्रक्रिया प्रवाह

प्रक्रिया प्रवाह आरेख स्क्रीन और ABAP प्रोग्राम के बीच के बदलाव को दर्शाता है: PBO स्क्रीन फ़ील्ड भरता है, उपयोगकर्ता कार्रवाई करता है, और PAI अगली स्क्रीन को कॉल करने से पहले इनपुट को संसाधित करता है।

मॉड्यूल पूल प्रोग्राम कैसे बनाएं

ऊपर दिए गए घटक एक निश्चित क्रम में बनाए जाते हैं। नीचे दिए गए चरण एक खाली मॉड्यूल पूल से एक कार्यशील लेनदेन का निर्माण करते हैं।

  1. मॉड्यूल पूल बनाएं: SE80 या SE38 में, एक प्रोग्राम बनाएं जिसका नाम इससे शुरू होता हो SAPMZ और प्रोग्राम प्रकार को सेट करें एम – मॉड्यूल पूलऑब्जेक्ट को डिलीट किए बिना बाद में इसका प्रकार नहीं बदला जा सकता।
  2. वैश्विक डेटा घोषित करें: TABLES स्टेटमेंट और ग्लोबल वेरिएबल्स को TOP इंक्लूड में रखें, जिसे पूल के प्रत्येक डायलॉग मॉड्यूल द्वारा पढ़ा जा सकता है।
  3. स्क्रीन डिजाइन करें: स्क्रीन 100 बनाएं Painter (SE51), लेआउट पर इनपुट फ़ील्ड रखें, और स्क्रीन विशेषताओं में अगली स्क्रीन संख्या दर्ज करें।
  4. फ्लो लॉजिक लिखें: फ्लो लॉजिक टैब पर, पीबीओ के लिए एक मॉड्यूल और पीएआई के लिए एक मॉड्यूल कॉल करें, जैसा कि नीचे दिखाया गया है।
  5. जीयूआई की स्थिति का निर्माण करें: मेनू के साथ एक स्टेटस बनाएं Painter (SE41) और इसे SET PF-STATUS स्टेटमेंट के साथ PBO मॉड्यूल में सेट करें, ताकि Save, Back, और Exit फ़ंक्शन कोड के रूप में प्रोग्राम तक पहुँच सकें।
  6. लेनदेन कोड लिंक करें: SE93 में एक डायलॉग ट्रांजैक्शन बनाएं, मॉड्यूल पूल का नाम दें और प्रारंभिक स्क्रीन के रूप में 100 दर्ज करें।
* Screen 100, flow logic
PROCESS BEFORE OUTPUT.
  MODULE status_0100.

PROCESS AFTER INPUT.
  MODULE user_command_0100.

* Module pool SAPMZDEMO
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS_100'.
  SET TITLEBAR 'TITLE_100'.
ENDMODULE.

MODULE user_command_0100 INPUT.
  CASE sy-ucomm.
    WHEN 'SAVE'.
      PERFORM save_data.
    WHEN 'BACK' OR 'EXIT'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.

💡टिप: LEAVE TO SCREEN 0 वर्तमान स्क्रीन को समाप्त करता है और कॉलिंग पॉइंट पर वापस लौटता है, जो कि डायलॉग लेनदेन को सुचारू रूप से समाप्त करने का मानक तरीका है।

अक्सर पूछे जाने वाले प्रश्न

CALL SCREEN एक नई स्क्रीन खोलता है और कॉलिंग स्क्रीन को स्टैक पर रखता है, जिससे प्रोसेसिंग वापस उसी पर लौट जाती है। LEAVE TO SCREEN वर्तमान स्क्रीन को बदल देता है, और कॉलर को कुछ भी वापस नहीं भेजा जाता है।

एक मॉड्यूल पूल जिसका नाम है SAPMZDEMO को वैश्विक डेटा के लिए MZDEMOTOP, PBO मॉड्यूल के लिए MZDEMOO01, PAI मॉड्यूल के लिए MZDEMOI01 और सब-रूटीन के लिए MZDEMOF01 में विभाजित किया गया है। वर्कबेंच इन्हें स्वचालित रूप से उत्पन्न करता है।

GUI स्टेटस में बटन फ़ंक्शन को E प्रकार दें और MODULE exit AT EXIT-COMMAND कमांड का उपयोग करके इसके मॉड्यूल को कॉल करें। इससे मॉड्यूल फ़ील्ड सत्यापन से पहले चलता है, जिससे उपयोगकर्ता गलत प्रविष्टियों वाली स्क्रीन से बाहर निकल सकता है।

जी हां। ABAP डेवलपमेंट टूल्स के अंदर मौजूद AI असिस्टेंट, स्क्रीन के विवरण से PBO और PAI मॉड्यूल, SY-UCOMM पर CASE स्टेटमेंट और फ़ील्ड वैलिडेशन तैयार करते हैं। लेआउट अभी भी स्क्रीन में ही बनाया जाता है। Painter.

डायनप्रो अभी भी हर क्लासिकल रन करता है SAP जीयूआई लेनदेन। नए यूजर इंटरफेस आमतौर पर फियोरी का उपयोग करके बनाए जाते हैं, और एआई उपकरण मौजूदा फ्लो लॉजिक को पढ़कर और एक समकक्ष सेवा और एप्लिकेशन डिजाइन का प्रस्ताव देकर मदद करते हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: