रिमोट फंक्शन कॉल (RFC) SAP ट्यूटोरियल

आरएफसी क्या है?

RFC एक ऐसा तंत्र है जो व्यावसायिक अनुप्रयोगों को अन्य प्रणालियों के साथ (पूर्व-निर्धारित प्रारूपों में) संचार और सूचना का आदान-प्रदान करने की अनुमति देता है। RFC का मतलब है 'रिमोट फ़ंक्शन कॉल'

RFC में दो इंटरफेस होते हैं:

  1. ABAP प्रोग्रामों के लिए कॉलिंग इंटरफ़ेस
  2. गैर- के लिए एक कॉलिंग इंटरफ़ेसSAP कार्यक्रम.

कोई एबीएपी कार्यक्रम का उपयोग करके एक दूरस्थ फ़ंक्शन को कॉल कर सकते हैं कॉल फ़ंक्शन…गंतव्य बयान। गंतव्य पैरामीटर बताता है SAP वह सिस्टम जिसमें कॉल किया गया फ़ंक्शन कॉल करने वाले के अलावा किसी अन्य सिस्टम में चलता है।

वाक्य - विन्यास-

CALL FUNCTION 'remotefunction'

DESTINATION dest

EXPORTING f1 =

IMPORTING f2 =

TABLES t1 =

EXCEPTIONS

तार्किक गंतव्य लेनदेन के माध्यम से परिभाषित किए जाते हैं SM59 और तालिका में संग्रहीत आरएफसीडीईएस

RFC इंटरफ़ेस के कार्य

  • सभी पैरामीटर डेटा को दूरस्थ सिस्टम में आवश्यक प्रतिनिधित्व में परिवर्तित करना
  • दूरस्थ सिस्टम से बात करने के लिए आवश्यक संचार रूटीन को कॉल करना।
  • संचार त्रुटियों को संभालना, तथा यदि वांछित हो तो कॉलर को सूचित करना (कॉल फ़ंक्शन के अपवाद पैरामीटर का उपयोग करके)।

RFC इंटरफ़ेस के कार्य

आरएफसी एक है SAP संबंधित प्रोग्रामिंग को सरल बनाने के लिए सिस्टम के बीच संचार को संभालने के लिए प्रोटोकॉल। यह एक फ़ंक्शन मॉड्यूल को कॉल करने की प्रक्रिया है जो कॉलर प्रोग्राम से अलग मशीन पर रहता है। RFC का उपयोग उसी मशीन पर एक अलग प्रोग्राम को कॉल करने के लिए भी किया जा सकता है, लेकिन आमतौर पर इसका उपयोग तब किया जाता है जब 'कॉलिंग' और 'कॉल किए गए' फ़ंक्शन मॉड्यूल/प्रोग्राम अलग-अलग मशीनों पर चल रहे हों।

RFC इंटरफ़ेस के कार्य

In SAPRFC इंटरफ़ेस सिस्टम का उपयोग विभिन्न RFC कनेक्शनों के बीच RFC कनेक्शन स्थापित करने के लिए किया जाता है। SAP सिस्टम, और एक के बीच भी SAP और एक बाहरी (गैर-SAP) प्रणाली।

RFC के बारे में अवश्य जानें विवरण

  • SAP सिस्टम के बीच डेटा ट्रांसफर करने के लिए CPIC (कॉमन प्रोग्रामिंग इंटरफेस फॉर कम्युनिकेशन) प्रोटोकॉल का उपयोग करता है। SAP विशिष्ट प्रोटोकॉल। रिमोट फंक्शन कॉल (RFC) CPI-C पर आधारित एक संचार इंटरफ़ेस है, लेकिन इसमें अधिक फ़ंक्शन हैं और एप्लिकेशन प्रोग्रामर के लिए उपयोग करना आसान है
  • RFC लाइब्रेरी फ़ंक्शन इसका समर्थन करते हैं सी प्रोग्रामिंग भाषा और विज़ुअल बेसिक (ऑन Windows प्लेटफार्म)
  • RFC कनेक्शन का इस्तेमाल हमेशा पूरे सिस्टम में किया जा सकता है। इसका मतलब यह है कि क्लाइंट 000 में आपके द्वारा परिभाषित RFC कनेक्शन का इस्तेमाल क्लाइंट 100 से भी किया जा सकता है (बिना किसी अंतर के)।
  • RFC नेटवर्क पर विशेष सबरूटीन (फ़ंक्शन मॉड्यूल) को कॉल करने के लिए प्रोटोकॉल है। फ़ंक्शन मॉड्यूल C फ़ंक्शन या PASCAL प्रक्रियाओं के साथ तुलनीय हैं। उनके पास एक परिभाषित इंटरफ़ेस है जिसके माध्यम से डेटा, टेबल और रिटर्न कोड का आदान-प्रदान किया जा सकता है। फ़ंक्शन मॉड्यूल को R/3 सिस्टम में उनके स्वयं के फ़ंक्शन लाइब्रेरी में प्रबंधित किया जाता है, जिसे फ़ंक्शन बिल्डर कहा जाता है।
  • फंक्शन बिल्डर (लेनदेन SE37) एप्लिकेशन प्रोग्रामर्स को प्रोग्रामिंग, दस्तावेजीकरण और कार्यान्वयन के लिए एक उपयोगी वातावरण प्रदान करता है। परीक्षण फ़ंक्शन मॉड्यूल जिन्हें स्थानीय रूप से और साथ ही दूरस्थ रूप से भी कॉल किया जा सकता है। R/3 सिस्टम स्वचालित रूप से दूरस्थ कॉल के लिए आवश्यक अतिरिक्त कोड (RFC स्टब) उत्पन्न करता है।
  • आप ट्रांजेक्शन SM59 का उपयोग करके RFC कनेक्शन के लिए पैरामीटर बनाए रखते हैं। R/3 सिस्टम को RFC-SDK (सॉफ़्टवेयर डेवलपमेंट किट) के साथ भी डिलीवर किया जाता है जो बाहरी प्रोग्राम को R/3 सिस्टम से कनेक्ट करने की अनुमति देने के लिए व्यापक C लाइब्रेरी का उपयोग करता है।
  • किसी फ़ंक्शन मॉड्यूल को किसी अन्य सर्वर पर दूरस्थ कॉल और स्थानीय कॉल के बीच एकमात्र अंतर एक विशेष पैरामीटर (गंतव्य) है जो लक्ष्य सर्वर को निर्दिष्ट करता है जिस पर प्रोग्राम निष्पादित किया जाना है।

आरएफसी के लाभ

RFC प्रोग्रामर्स के प्रयासों को कम करने में मदद करता है, जिससे उन्हें दूरस्थ सिस्टम पर मॉड्यूल और विधियों के पुनर्विकास से बचने में मदद मिलती है। यह इतना सक्षम है:

  • डेटा को दूरस्थ (लक्ष्य) प्रणाली द्वारा समझने योग्य प्रारूप में परिवर्तित करें।
  • डेटा को दूरस्थ (लक्ष्य) प्रणाली द्वारा समझने योग्य प्रारूप में परिवर्तित करें।
  • दूरस्थ सिस्टम के साथ संचार शुरू करने के लिए आवश्यक कुछ रूटीन को कॉल करें।
  • संचार की प्रक्रिया में होने वाली त्रुटियों को संभालें।

आरएफसी के प्रकार

आरएफसी के प्रकार

Synchronous

संचार या डेटा ट्रांसफर के समय दोनों सिस्टम (क्लाइंट और सर्वर) का उपलब्ध होना आवश्यक है। यह सबसे आम प्रकार है और इसकी आवश्यकता तब होती है जब sRFC के निष्पादन के तुरंत बाद परिणाम की आवश्यकता होती है।

sRFC उन प्रणालियों के बीच संचार का एक साधन है जहाँ पावती की आवश्यकता होती है। स्रोत प्रणाली के संसाधन लक्ष्य प्रणाली पर प्रतीक्षा करते हैं और सुनिश्चित करते हैं कि वे ACKD के साथ संदेश/डेटा वितरित करें। डेटा संचार के लिए सुसंगत और विश्वसनीय है।

समस्या यह है कि यदि लक्ष्य प्रणाली उपलब्ध नहीं है, तो स्रोत प्रणाली संसाधन तब तक प्रतीक्षा करते हैं जब तक लक्ष्य प्रणाली उपलब्ध न हो जाए। इससे स्रोत प्रणाली की प्रक्रियाएँ लक्ष्य प्रणाली पर स्लीप/RFC/CPIC मोड में चली जाती हैं और इस प्रकार इन संसाधनों को अवरुद्ध कर देती हैं।

के लिए प्रयुक्त

  • प्रणालियों के बीच संचार के लिए
  • के बीच संचार के लिए SAP वेब अनुप्रयोग सर्वर के लिए SAP जीयूआई

अतुल्यकालिक

यह प्रणालियों के बीच संचार है, जहां पावती की आवश्यकता नहीं होती (यह पोस्टकार्ड डिलीवरी के समान है)। इसमें निष्पादन के समय दोनों प्रणालियों का उपलब्ध होना आवश्यक नहीं होता है और परिणाम को तुरंत कॉलिंग सिस्टम को वापस भेजने की आवश्यकता नहीं होती है।

स्रोत सिस्टम संसाधन लक्ष्य सिस्टम की प्रतीक्षा नहीं करता है क्योंकि वे किसी भी पावती की प्रतीक्षा किए बिना संदेश/डेटा वितरित करते हैं। यह संचार के लिए विश्वसनीय नहीं है क्योंकि यदि लक्ष्य सिस्टम उपलब्ध नहीं है तो डेटा खो सकता है। के लिए इस्तेमाल होता है -

  • प्रणालियों के बीच संचार के लिए
  • समानांतर प्रसंस्करण के लिए

ट्रांसेक्शनल

यह aRFC का एक विशेष रूप है। ट्रांजेक्शनल RFC प्रसंस्करण चरणों के ट्रांजेक्शन-जैसे संचालन को सुनिश्चित करता है जो मूल रूप से स्वायत्त थे।

ट्रांजेक्शनल RFC एक एसिंक्रोनस संचार विधि है जो RFC सर्वर में कॉल किए गए फ़ंक्शन मॉड्यूल को केवल एक बार निष्पादित करती है, भले ही किसी नेटवर्क समस्या के कारण डेटा कई बार भेजा गया हो। जब RFC क्लाइंट प्रोग्राम tRFC निष्पादित कर रहा हो, तो उस समय रिमोट सिस्टम उपलब्ध होना ज़रूरी नहीं है। tRFC घटक कॉल किए गए RFC फ़ंक्शन को, संबंधित डेटा के साथ, स्टोर करता है SAP डेटाबेस को एक अद्वितीय लेनदेन आईडी (TID) के तहत रखा जाता है। tRFC, aRFC के समान है क्योंकि यह लक्ष्य प्रणाली पर प्रतीक्षा नहीं करता है (पंजीकृत पोस्ट के समान)। यदि सिस्टम उपलब्ध नहीं है, तो यह डेटा को एक लेनदेन आईडी (SM58) के साथ aRFC टेबल में लिखेगा जिसे शेड्यूलर RSARFCSE (जो हर 60 सेकंड के लिए चलता है) द्वारा चुना जाता है। के लिए इस्तेमाल होता है-

  • एसिंक्रोनस RFC का विस्तार
  • प्रणालियों के बीच सुरक्षित संचार के लिए

कतारबद्ध

कतारबद्ध RFC, tRFC का एक विस्तार है। यह यह भी सुनिश्चित करता है कि अलग-अलग चरणों को क्रम में संसाधित किया जाए। यह गारंटी देने के लिए कि कई LUW (कार्य/लेनदेन की तार्किक इकाई) को एप्लिकेशन द्वारा निर्दिष्ट क्रम में संसाधित किया जाता है। tRFC को कतारों (इनबाउंड और आउटबाउंड कतारों) का उपयोग करके क्रमबद्ध किया जा सकता है। इसलिए इसका नाम कतारबद्ध RFC (qRFC) है। उपयोग के लिए-

  • ट्रांजेक्शनल RFC का विस्तार
  • एक परिभाषित प्रसंस्करण अनुक्रम के लिए
  • यदि आप यह सुनिश्चित करना चाहते हैं कि कई लेनदेन पूर्वनिर्धारित क्रम में संसाधित हों, तो qRFC के कार्यान्वयन की अनुशंसा की जाती है।

RFC कनेक्शन के प्रकार

RFC कनेक्शन के प्रकार

टाइप 3 - प्रविष्टियाँ बीच के संबंध को निर्दिष्ट करती हैं ABAP प्रणालियाँ. यहाँ, हमें होस्ट नाम / आईपी पता निर्दिष्ट करना होगा। हालाँकि, आप चाहें तो लॉगऑन जानकारी निर्दिष्ट कर सकते हैं। यह ABAP सिस्टम और ABAP सिस्टम के लिए बाहरी कॉल के बीच दोनों प्रकार के RFC के लिए लागू है

प्रकार I – प्रविष्टियाँ ABAP सिस्टम को उसी डेटाबेस से कनेक्ट करती हैं जिससे वर्तमान सिस्टम जुड़ा हुआ है। ये प्रविष्टियाँ पूर्व-परिभाषित हैं और इन्हें संशोधित नहीं किया जा सकता है। उदाहरण प्रविष्टि नाम: ws0015_K18_24

  • ws0015=होस्ट नाम
  • K18=सिस्टम नाम (डेटाबेस नाम)
  • 24=TCP-सेवा नाम

टी टाइप करें - गंतव्य बाहरी प्रोग्रामों के कनेक्शन हैं जो RFC प्राप्त करने के लिए RFC API का उपयोग करते हैं। सक्रियण प्रकार या तो प्रारंभ या पंजीकरण हो सकता है। यदि यह प्रारंभ है, तो आपको प्रारंभ किए जाने वाले प्रोग्राम का होस्ट नाम और पथनाम निर्दिष्ट करना होगा।

RFC को कोड कैसे करें?

1) फ़ंक्शन मॉड्यूल विशेषताएँ टैब (लेनदेन कोड SE37) में, रिमोट फ़ंक्शन मॉड्यूल बनाने के लिए प्रोसेसिंग प्रकार को रिमोट-सक्षम मॉड्यूल के रूप में सेट करें।

RFC को कोड कैसे करें

2) फ़ंक्शन मॉड्यूल के लिए कोड लिखें.

RFC को कोड कैसे करें

3) RFC क्लाइंट सिस्टम में RFC सर्वर का गंतव्य निर्धारित करें जो दूरस्थ फ़ंक्शन (SM59 लेनदेन के माध्यम से) को कॉल करता है।

RFC को कोड कैसे करें

4) पैरामीटर घोषित करनादूरस्थ फ़ंक्शन मॉड्यूल के लिए सभी पैरामीटर फ़ील्ड को संदर्भ फ़ील्ड के रूप में परिभाषित किया जाना चाहिए, अर्थात ABAP डिक्शनरी फ़ील्ड की तरह।

5) अपवाद: सिस्टम आंतरिक रूप से COMMUNICATION_FAILURE और SYSTEM_FAILURE उठाता है। आप रिमोट फ़ंक्शन में अपवाद उठा सकते हैं जैसे आप स्थानीय रूप से कॉल किए गए फ़ंक्शन में करते हैं।

रिमोट फ़ंक्शन कॉल्स को डीबग करना

  • यह डिबग करना संभव नहीं किसी अन्य सिस्टम के लिए दूरस्थ फ़ंक्शन कॉल.
  • हालाँकि, ABAP-से-ABAP RFC कॉल का परीक्षण करते समय, आप दूरस्थ सिस्टम में RFC फ़ंक्शन के निष्पादन की निगरानी के लिए ABAP डीबगर का उपयोग कर सकते हैं।
  • रिमोट कॉल के साथ, ABAP डीबगर (डीबगिंग इंटरफ़ेस सहित) स्थानीय सिस्टम पर चलता है। रिमोट फ़ंक्शन के लिए डेटा मान और अन्य रन जानकारी रिमोट सिस्टम से पास की जाती है।