Nuotolinių funkcijų iškvietimas (RFC) SAP mokymo programoje

Kas yra RFC?

RFC yra mechanizmas, leidžiantis verslo programoms bendrauti ir keistis informacija (iš anksto nustatytais formatais) su kitomis sistemomis. RFC reiškia „Nuotolinis funkcinis iškvietimas“

RFC sudaro dvi sąsajos:

  1. Skambinimo sąsaja ABAP programoms
  2. Skambinimo sąsaja ne SAP programoms.

Bet kuri ABAP programa gali iškviesti nuotolinę funkciją naudodama CALL FUNCTION… DESTINATION sakinį. Parametras DESTINATION SAP sistemai nurodo, kad iškviesta funkcija veikia kitoje sistemoje, o ne skambinant.Sintaksė-

SKAMBINIMO FUNKCIJA „nuotolinė funkcija“PASKIRTIS paskEKSPORTUOJANT f1 =IMPORTO f2 =LENTELĖS t1 =IŠIMTYS

Loginiai tikslai yra apibrėžti per operaciją SM59 ir saugomi RFC sąsajos lentelėje RFCDES
funkcijos

  • Visų parametrų duomenų pavertimas vaizdais, reikalingais nuotolinėje sistemoje
  • Skambinant komunikacijos rutinai, reikalingai kalbėtis su nuotoline sistema.
  • Tvarkyti ryšio klaidas ir pranešti skambinančiajam, jei pageidaujama (naudojant CALL FUNCTION parametrą EXCEPTIONS).


RFC yra SAP protokolas, skirtas valdyti ryšį tarp sistemų, siekiant supaprastinti susijusį programavimą. Tai yra funkcijos modulio, kuris gyvena kitoje mašinoje nei skambintojo programa, iškvietimo procesas. RFC taip pat gali būti naudojami skirtingoms programoms iškviesti tame pačiame kompiuteryje, tačiau paprastai jie naudojami, kai „skambinimo“ ir „vadinamųjų“ funkcijų moduliai / programos veikia atskirose mašinose.


SAP sistemoje RFC sąsajos sistema naudojama nustatant RFC ryšius tarp skirtingų SAP sistemų, taip pat tarp SAP ir išorinės (ne SAP) sistemos.

Turi žinoti išsamią informaciją apie RFC

  • Duomenims perduoti tarp sistemų SAP naudoja CPIC (Common Programming Interface for Communication) protokolą. Tai yra SAP specifinis protokolas. Nuotolinių funkcijų iškvietimas (RFC) yra ryšių sąsaja, pagrįsta CPI-C, tačiau turinti daugiau funkcijų ir lengviau naudojama programų programuotojams
  • RFC bibliotekos funkcijos palaiko C programavimo kalbą ir „Visual Basic“ („Windows“ platformose)
  • RFC jungtys visada gali būti naudojamos visoje sistemoje. Tai reiškia, kad RFC ryšį, kurį apibrėžėte kliente 000, taip pat galima naudoti iš kliento 100 (be jokio skirtumo).
  • RFC yra specialiųjų paprogramių (funkcinių modulių) iškvietimo tinkle protokolas. Funkcijų moduliai yra palyginami su C funkcijomis arba PASCAL procedūromis. Jie turi apibrėžtą sąsają, per kurią galima keistis duomenimis, lentelėmis ir grąžinimo kodais. Funkcijų moduliai yra valdomi R / 3 sistemoje jų pačių funkcijų bibliotekoje, vadinamoje „Function Builder“.
  • „Function Builder“ (operacija SE37) suteikia programų programuotojams naudingą aplinką, skirtą programuoti, dokumentuoti ir tikrinti funkcinius modulius, kuriuos galima iškviesti vietoje ir nuotoliniu būdu. R / 3 sistema automatiškai sugeneruoja papildomą kodą (RFC stub), reikalingą nuotoliniams skambučiams.
  • RFC ryšių parametrus palaikote naudodami SM59 operaciją. „R / 3“ sistema taip pat tiekiama su „RFC-SDK“ (programinės įrangos kūrimo rinkiniu), kuris naudoja plačias C bibliotekas, kad išorines programas būtų galima prijungti prie „R / 3“ sistemos.
  • Vienintelis skirtumas tarp nuotolinio funkcijų modulio iškvietimo į kitą serverį ir vietinio skambučio yra specialus parametras (paskirties vieta), nurodantis tikslinį serverį, kuriame turi būti vykdoma programa.

RFC privalumai:

RFC padeda sumažinti programuotojų pastangas, leisdama jiems išvengti modulių ir metodų tolesnės plėtros nuotolinėse sistemose. Jis pakankamai pajėgus:

  • Konvertuokite duomenis į nuotolinės (tikslinės) sistemos suprantamą formatą.
  • Konvertuokite duomenis į nuotolinės (tikslinės) sistemos suprantamą formatą.
  • Paskambinkite tam tikroms rutinoms, kurios reikalingos norint pradėti ryšį su nuotoline sistema.
  • Tvarkykite klaidas, kurios gali atsirasti bendravimo procese.

RFC tipai:


Sinchroninis

Reikalaujama, kad komunikacijos ar duomenų perdavimo metu sistemos (klientas ir serveris) būtų prieinamos. Tai yra labiausiai paplitęs tipas ir reikalingas, kai rezultatas reikalingas iškart po sRFC vykdymo.
sRFC yra komunikacijos tarp sistemų, kur reikalingi patvirtinimai, priemonė. Šaltinio sistemos ištekliai laukia tikslinės sistemos ir užtikrina, kad jie perduos pranešimą / duomenis su ACKD. Duomenys yra nuoseklūs ir patikimi komunikacijai.
Problema ta, kad jei tikslinės sistemos nėra, šaltinio sistemos ištekliai laukia, kol bus pasiekiama tikslinė sistema. Tai gali paskatinti šaltinio sistemos procesus pereiti į miego / RFC / CPIC režimą tikslinėse sistemose ir blokuoti šiuos išteklius.
Naudojama

  • Bendravimui tarp sistemų
  • Ryšiui tarp SAP žiniatinklio serverio ir SAP GUI

Asinchroninis

Tai yra ryšys tarp sistemų, kur patvirtinimų nereikia (tai panašu į atvirukų pristatymą). Tai nereikalauja, kad vykdymo metu abi sistemos būtų prieinamos, o rezultato nereikia iškart siųsti atgal į skambinančiąją sistemą .

Šaltinio sistemos šaltinis nelaukia tikslinės sistemos, nes jie pateikia pranešimą / duomenis nelaukdami jokio patvirtinimo. Tai nėra patikima ryšiui, nes duomenys gali būti prarasti, jei nėra tikslinės sistemos. Naudojama -

  • Bendravimui tarp sistemų
  • Lygiagrečiam apdorojimui

Sandorinis

Tai yra ypatinga aRFC forma. Operacinis RFC užtikrina panašų į operacijas apdorojimo veiksmus, kurie iš pradžių buvo savarankiški.

Transakcinis RFC yra asinchroninis ryšio metodas, kuris RFC serveryje iškviestą funkcijų modulį vykdo tik vieną kartą, net jei duomenys siunčiami kelis kartus dėl tam tikros tinklo problemos. Nuotolinė sistema neturi būti prieinama tuo metu, kai RFC kliento programa vykdo tRFC. „TRFC“ komponentas iškviestą RFC funkciją kartu su atitinkamais duomenimis SAP duomenų bazėje saugo unikaliu operacijos ID (TID). „tRFC“ yra panašus į „aRFC“, nes jis nelaukia tikslinės sistemos (panašus į registruotą postą). Jei sistemos nėra, ji įrašys duomenis į „aRFC“ lenteles su operacijos ID (SM58), kurią pasirenka planuotojas RSARFCSE (kuris veikia kas 60 sekundžių). Naudojama-

  • Asinchroninio RFC išplėtimas
  • Saugiam bendravimui tarp sistemų

Eilėje

Eilėje esantis RFC yra tRFC pratęsimas. Tai taip pat užtikrina, kad atskiri žingsniai būtų apdorojami nuosekliai.

Užtikrinti, kad keli LUW (loginis darbo / operacijų vienetas) būtų tvarkomi programos nurodyta tvarka. „tRFC“ gali būti nuoseklus naudojant eiles (gaunamas ir siunčiamas). Taigi pavadinimas pateko į eilę RFC (qRFC). Naudojama-

  • Sandorio RFC pratęsimas
  • Apibrėžtai apdorojimo sekai
  • „QRFC“ diegimas yra rekomenduojamas, jei norite garantuoti, kad kelios operacijos bus apdorojamos iš anksto nustatyta tvarka.

RFC jungčių tipai


3 tipas - įrašai nurodo ryšį tarp ABAP sistemų. Čia turime nurodyti pagrindinio kompiuterio pavadinimą / IP adresą. Tačiau, jei norite, galite nurodyti prisijungimo informaciją. Tai taikoma abiejų tipų RFC, tarp ABAP sistemų ir išorinių skambučių į ABAP sistemasI tipas - įrašai nurodo ABAP sistemas, prijungtas prie tos pačios duomenų bazės kaip ir dabartinė sistema. Šie įrašai yra iš anksto apibrėžti ir jų negalima keisti. Įrašo pavadinimo pavyzdys: ws0015_K18_24

  • ws0015 = pagrindinio kompiuterio vardas
  • K18 = sistemos pavadinimas (duomenų bazės pavadinimas)
  • 24 = TCP paslaugos pavadinimas

T tipas - paskirties vietos yra jungtys su išorinėmis programomis, kurios naudoja RFC API, kad gautų RFC. Aktyvinimo tipas gali būti Pradėti arba Registracija. Jei tai yra „Pradėti“, turite nurodyti pagrindinės programos pavadinimą ir paleistinos programos kelią.

Kaip koduoti RFC?

1. Skirtuke „Funkcijos modulio atributai“ (operacijos kodas SE37) nustatykite apdorojimo tipą kaip „Nuotolinio valdymo modulis“, kad sukurtumėte nuotolinių funkcijų modulį.


2. Parašykite funkcijos modulio kodą.


3. Apibrėžkite RFC serverio paskirtį RFC kliento sistemoje, kuri iškviečia nuotolinę funkciją (per SM59 operaciją).


4. Parametrų deklaravimas : visi nuotolinių funkcijų modulio parametrų laukai turi būti apibrėžti kaip orientaciniai laukai, tai yra, pavyzdžiui, ABAP žodyno laukai.5. Išimtys: sistema kelia COMMUNICATION_FAILURE ir SYSTEM_FAILURE viduje. Nuotolinėje funkcijoje galite kelti išimtis, kaip tai darytumėte vietoje vadinamoje funkcijoje.

Nuotolinių funkcijų skambučių derinimas

  • Negalima derinti nuotolinių funkcijų iškvietimo į kitą sistemą.
  • Tačiau, išbandydami ABAP – ABAP RFC skambučius, galite naudoti ABAP derintuvą, norėdami stebėti RFC funkcijos vykdymą nuotolinėje sistemoje.
  • Naudojant nuotolinius skambučius, ABAP derintuvas (įskaitant derinimo sąsają) veikia vietinėje sistemoje. Duomenų reikšmės ir kita nuotolinės funkcijos vykdymo informacija perduodama iš nuotolinės sistemos.

Įdomios straipsniai...