RFC क्या है?
RFC एक तंत्र है जो व्यावसायिक अनुप्रयोगों को अन्य प्रणालियों के साथ सूचना (पूर्व-निर्धारित स्वरूपों में) को संप्रेषित करने और आदान-प्रदान करने की अनुमति देता है। RFC का मतलब है 'रिमोट फंक्शन कॉल'
RFC में दो इंटरफेस होते हैं:
- ABAP प्रोग्राम के लिए एक कॉलिंग इंटरफ़ेस
- गैर-एसएपी कार्यक्रमों के लिए एक कॉलिंग इंटरफ़ेस।
कोई भी ABAP प्रोग्राम कॉल फंक्शन ... DESTINATION स्टेटमेंट का उपयोग करके रिमोट फ़ंक्शन को कॉल कर सकता है । गंतव्य पैरामीटर है कि कहा जाता है समारोह कॉल करने के अलावा किसी अन्य प्रणाली में चलाता है एसएपी सिस्टम बताता है।वाक्य - विन्यास-
कॉल फंक्शन 'रिमोटफंक्शन'DESTINATION का भाग्यनिर्यात F1 =आयात करना f2 =TABLES t1 =अपवाद
लॉजिकल डेस्टिनेशंस को लेन-देन SM59 के माध्यम से परिभाषित किया गया है और RFC इंटरफ़ेस के टेबल RFCDES फ़ंक्शंस में संग्रहीत किया
गया है
- दूरस्थ प्रणाली में आवश्यक प्रतिनिधित्व के लिए सभी पैरामीटर डेटा परिवर्तित
- दूरस्थ प्रणाली से बात करने के लिए आवश्यक संचार मार्गों को कॉल करना।
- संचार त्रुटियों को संभालना, और कॉलर को सूचित करना, यदि वांछित है (कॉल फंक्शन के अपवाद पैरामीटर का उपयोग करना)।
संबंधित प्रोग्रामिंग को सरल बनाने के लिए सिस्टम के बीच संचार को संभालने के लिए RFC एक SAP प्रोटोकॉल है। यह एक फ़ंक्शन मॉड्यूल को कॉल करने की प्रक्रिया है जो कॉलर प्रोग्राम से एक अलग मशीन पर रहता है। RFC का उपयोग एक ही मशीन पर एक अलग प्रोग्राम को कॉल करने के लिए किया जा सकता है, लेकिन आमतौर पर, इसका उपयोग तब किया जाता है जब 'कॉलिंग' और 'कॉल' फंक्शन मॉड्यूल / प्रोग्राम अलग-अलग मशीनों पर चल रहे हों।
SAP में, RFC इंटरफ़ेस सिस्टम का उपयोग विभिन्न SAP प्रणालियों के बीच RFC कनेक्शन स्थापित करने के लिए किया जाता है, और SAP और बाहरी (गैर-SAP) प्रणाली के बीच भी।
RFC के बारे में विवरण अवश्य जानिए
- SAP, CPIC (संचार के लिए सामान्य प्रोग्रामिंग इंटरफ़ेस) प्रोटोकॉल का उपयोग सिस्टम के बीच डेटा स्थानांतरित करने के लिए करता है। यह SAP विशिष्ट प्रोटोकॉल है। रिमोट फंक्शन कॉल (RFC) CPI-C पर आधारित एक संचार इंटरफ़ेस है, लेकिन अनुप्रयोग प्रोग्रामर का उपयोग करने के लिए अधिक कार्यों और आसान के साथ
- RFC लाइब्रेरी फ़ंक्शंस C प्रोग्रामिंग लैंग्वेज और विज़ुअल बेसिक (विंडोज प्लेटफ़ॉर्म पर) का समर्थन करती है
- RFC कनेक्शन हमेशा पूरे सिस्टम में उपयोग किया जा सकता है। इसका मतलब है कि क्लाइंट में परिभाषित RFC कनेक्शन का उपयोग क्लाइंट 100 (बिना किसी अंतर के) से भी किया जा सकता है।
- RFC नेटवर्क पर विशेष सबरूटीन्स (फ़ंक्शन मॉड्यूल) को कॉल करने के लिए प्रोटोकॉल है। फ़ंक्शन मॉड्यूल C फ़ंक्शन या PASCAL प्रक्रियाओं के साथ तुलनीय हैं। उनके पास एक परिभाषित इंटरफ़ेस है जिसके माध्यम से डेटा, टेबल और रिटर्न कोड का आदान-प्रदान किया जा सकता है। फ़ंक्शन मॉड्यूल को उनके स्वयं के फ़ंक्शन लाइब्रेरी में R / 3 सिस्टम में प्रबंधित किया जाता है, जिसे फ़ंक्शन बिल्डर कहा जाता है।
- फंक्शन बिल्डर (लेनदेन SE37) प्रोग्रामिंग, डॉक्यूमेंटिंग और टेस्टिंग फ़ंक्शन मॉड्यूल के लिए एक उपयोगी वातावरण के साथ एप्लिकेशन प्रोग्रामर प्रदान करता है जिसे स्थानीय रूप से और साथ ही दूर से भी कॉल किया जा सकता है। R / 3 सिस्टम स्वचालित रूप से दूरस्थ कॉल के लिए आवश्यक अतिरिक्त कोड (RFC स्टब) उत्पन्न करता है।
- आप लेनदेन SM59 का उपयोग कर RFC कनेक्शन के लिए पैरामीटर बनाए रखें। R / 3 सिस्टम RFC-SDK (सॉफ़्टवेयर डेवलपमेंट किट) के साथ भी दिया जाता है, जो बाहरी प्रोग्रामों को R / 3 सिस्टम से कनेक्ट करने की अनुमति देने के लिए व्यापक C पुस्तकालयों का उपयोग करता है।
- किसी फ़ंक्शन सर्वर के रिमोट कॉल और किसी स्थानीय कॉल के बीच का एकमात्र अंतर एक विशेष पैरामीटर (गंतव्य) है जो लक्ष्य सर्वर को निर्दिष्ट करता है, जिस पर कार्यक्रम निष्पादित किया जाना है।
RFC के लाभ:
आरएफसी प्रोग्रामर्स के प्रयासों को कम करने में मदद करता है, जिससे उन्हें दूरस्थ प्रणालियों पर मॉड्यूल और विधियों के पुन: विकास से बचने में मदद मिलती है। यह काफी सक्षम है:
- रिमोट (लक्ष्य) प्रणाली द्वारा समझे जाने वाले प्रारूप में डेटा को रूपांतरित करें।
- रिमोट (लक्ष्य) प्रणाली द्वारा समझे जाने वाले प्रारूप में डेटा को रूपांतरित करें।
- दूरदराज के सिस्टम के साथ संचार शुरू करने के लिए आवश्यक कुछ दिनचर्या को कॉल करें।
- संचार की प्रक्रिया में हो सकने वाली त्रुटियों को संभालें।
RFC के प्रकार:
एक समय का
संचार या डेटा स्थानांतरण के समय उपलब्ध होने के लिए सिस्टम (क्लाइंट और सर्वर) दोनों की आवश्यकता होती है। यह सबसे आम प्रकार है और इसकी आवश्यकता तब होती है जब sRFC के निष्पादन के तुरंत बाद परिणाम की आवश्यकता होती है।
sRFC उन प्रणालियों के बीच संचार का एक साधन है जहाँ से स्वीकृति की आवश्यकता होती है। स्रोत प्रणाली के संसाधन लक्ष्य प्रणाली पर प्रतीक्षा करते हैं और सुनिश्चित करते हैं कि वे ACKD के साथ संदेश / डेटा वितरित करते हैं। संचार के लिए डेटा सुसंगत और विश्वसनीय है।
मुद्दा यह है कि यदि लक्ष्य प्रणाली उपलब्ध नहीं है, तो स्रोत प्रणाली संसाधन लक्ष्य प्रणाली उपलब्ध होने तक प्रतीक्षा करते हैं। इसके कारण लक्ष्य प्रणाली में स्लीप / आरएफसी / सीपीआईसी मोड में जाने के लिए स्रोत प्रणाली की प्रक्रियाएं हो सकती हैं और इसलिए इन संसाधनों को अवरुद्ध करता है।
के लिए इस्तेमाल होता है
- सिस्टम के बीच संचार के लिए
- SAP GUI के लिए SAP वेब एप्लिकेशन सर्वर के बीच संचार के लिए
अतुल्यकालिक
यह उन प्रणालियों के बीच का संचार है जहां पावती की आवश्यकता नहीं है (यह पोस्टकार्ड वितरण के समान है)। निष्पादन के समय दोनों प्रणालियों को उपलब्ध होने की आवश्यकता नहीं होती है और परिणाम को तुरंत कॉलिंग सिस्टम में वापस भेजने की आवश्यकता नहीं होती है। ।स्रोत सिस्टम संसाधन लक्ष्य प्रणाली की प्रतीक्षा नहीं करता है क्योंकि वे किसी भी पावती की प्रतीक्षा किए बिना संदेश / डेटा वितरित करते हैं। यह संचार के लिए विश्वसनीय नहीं है क्योंकि लक्ष्य प्रणाली उपलब्ध नहीं होने पर डेटा खो सकता है। के लिए इस्तेमाल होता है -
- सिस्टम के बीच संचार के लिए
- समानांतर प्रसंस्करण के लिए
लेन-देन संबंधी
यह आरआरएफसी का एक विशेष रूप है। लेन-देन RFC सुनिश्चित करता है कि प्रसंस्करण कदमों की तरह हैंडलिंग जो मूल रूप से स्वायत्त थे।ट्रांसेक्शनल आरएफसी एक अतुल्यकालिक संचार विधि है जो आरएफसी सर्वर में केवल एक बार नेटवर्क फ़ंक्शन के कारण कई बार भेजे जाने पर भी आरएफसी सर्वर में फ़ंक्शन फ़ंक्शन मॉड्यूल को निष्पादित करता है। रिमोट सिस्टम उस समय उपलब्ध नहीं होता है जब RFC क्लाइंट प्रोग्राम tRFC निष्पादित कर रहा हो। TRFC घटक एक विशिष्ट लेनदेन आईडी (TID) के तहत SAP डेटाबेस में संबंधित डेटा के साथ RFC फ़ंक्शन को संग्रहीत करता है। tRFC aRFC के समान है क्योंकि यह लक्ष्य प्रणाली (एक पंजीकृत पोस्ट के समान) पर प्रतीक्षा नहीं करता है। यदि सिस्टम उपलब्ध नहीं है, तो यह डेटा को aRFC टेबल्स में एक ट्रांजेक्शन आईडी (SM58) के साथ लिखेगा, जिसे शेड्यूलर RSARFCSE (जो प्रत्येक 60 सेकंड के लिए चलाता है) द्वारा चुना गया है। के लिए इस्तेमाल होता है-
- अतुल्यकालिक आरएफसी का विस्तार
- सिस्टम के बीच सुरक्षित संचार के लिए
कतारबद्ध
कतारबद्ध RFC tRFC का विस्तार है। यह यह भी सुनिश्चित करता है कि व्यक्तिगत चरणों को अनुक्रम में संसाधित किया जाता है।यह गारंटी देने के लिए कि कई LUWs (कार्य की तार्किक इकाई / लेनदेन) आवेदन द्वारा निर्दिष्ट क्रम में संसाधित किए जाते हैं। tRFC का उपयोग कतारों (इनबाउंड और आउटबाउंड कतारों) का उपयोग करके किया जा सकता है। इसलिए नाम RFC (qRFC) को पंक्तिबद्ध किया। के लिए इस्तेमाल होता है-
- लेन-देन RFC का विस्तार
- एक परिभाषित प्रसंस्करण अनुक्रम के लिए
- QRFC के कार्यान्वयन की सिफारिश की जाती है यदि आप गारंटी देना चाहते हैं कि कई लेनदेन एक पूर्वनिर्धारित क्रम में संसाधित किए जाते हैं।
RFC कनेक्शन के प्रकार
टाइप 3 - प्रविष्टियाँ ABAP सिस्टम के बीच संबंध को निर्दिष्ट करती हैं। यहां, हमें होस्ट नाम / आईपी पता निर्दिष्ट करना होगा। हालाँकि, आप लॉगऑन जानकारी निर्दिष्ट कर सकते हैं। यह दोनों प्रकार के RFC के लिए लागू होता है, ABAP सिस्टम और ABAP सिस्टम के लिए बाहरी कॉल केप्रकार I - प्रविष्टियाँ ABAP सिस्टम को वर्तमान डेटाबेस के समान डेटाबेस से जुड़ा हुआ निर्दिष्ट करती हैं। ये प्रविष्टियाँ पूर्व-परिभाषित हैं और इन्हें संशोधित नहीं किया जा सकता है। उदाहरण प्रविष्टि नाम: ws0015_K18_24
- ws0015 = होस्ट नाम
- K18 = सिस्टम नाम (डेटाबेस का नाम)
- 24 = टीसीपी-सेवा का नाम
टाइप टी - डेस्टिनेशन बाहरी प्रोग्राम से कनेक्शन हैं जो RFC प्राप्त करने के लिए RFC API का उपयोग करते हैं। सक्रियण प्रकार या तो प्रारंभ या पंजीकरण हो सकता है। यदि यह प्रारंभ है, तो आपको होस्ट नाम और प्रोग्राम के आरंभ होने का पथनाम निर्दिष्ट करना होगा।
RFC कोड कैसे करें?
1. फ़ंक्शन मॉड्यूल विशेषताओं टैब (लेनदेन कोड SE37) में, दूरस्थ फ़ंक्शन मॉड्यूल बनाने के लिए प्रसंस्करण प्रकार को दूरस्थ-सक्षम मॉड्यूल के रूप में सेट करें।
2. फ़ंक्शन मॉड्यूल के लिए कोड लिखें।
3. RFC क्लाइंट सिस्टम में RFC सर्वर के डेस्टिनेशन को परिभाषित करें जो रिमोट फ़ंक्शन (SM59 ट्रांजेक्शन के माध्यम से) को कॉल करता है।
4.Declaring Parameters : दूरस्थ फ़ंक्शन मॉड्यूल के लिए सभी पैरामीटर फ़ील्ड को संदर्भ फ़ील्ड के रूप में परिभाषित किया जाना चाहिए, अर्थात ABAP शब्दकोश फ़ील्ड।5. अपवाद : सिस्टम COMMUNICATION_FAILURE और SYSTEM_FAILURE को आंतरिक रूप से बढ़ाता है। आप किसी दूरस्थ फ़ंक्शन में अपवादों को उठा सकते हैं जैसे आप स्थानीय रूप से कहे गए फ़ंक्शन में करेंगे।
दूरस्थ फ़ंक्शन कॉल डीबग करना
- यह है डिबग करने के लिए संभव नहीं अन्य सिस्टम में एक दूरस्थ समारोह कॉल।
- हालाँकि, ABAP-से-ABAP RFC कॉल का परीक्षण करते समय, आप दूरस्थ प्रणाली में RFC फ़ंक्शन के निष्पादन की निगरानी के लिए ABAP डीबगर का उपयोग कर सकते हैं।
- दूरस्थ कॉल के साथ, ABAP डिबगर (डीबगिंग इंटरफ़ेस सहित) स्थानीय सिस्टम पर चलता है। दूरस्थ फ़ंक्शन के लिए डेटा मान और अन्य रन जानकारी दूरस्थ सिस्टम से पास की जाती हैं।