Diaľkové volanie funkcií (RFC) v príručke SAP

Obsah:

Anonim

Čo je RFC?

RFC je mechanizmus, ktorý umožňuje podnikovým aplikáciám komunikovať a vymieňať si informácie (v preddefinovaných formátoch) s inými systémami. RFC je skratka pre „Remote Function Call“.

RFC sa skladá z dvoch rozhraní:

  1. Volacie rozhranie pre programy ABAP
  2. Volacie rozhranie pre programy iné ako SAP.

Akýkoľvek program ABAP môže volať vzdialenú funkciu pomocou príkazu CALL FUNCTION… DESTINATION . Parameter DESTINATION informuje systém SAP, že volaná funkcia beží v inom systéme ako volajúci.Syntax-

FUNKCIA HOVORU 'remotefunction'DESTINATION destVYVÁŽAJÚCI f1 =DOVOZ f2 =TABUĽKY t1 =VÝNIMKY

Logické ciele sú definované transakciou SM59 a sú uložené v Tabuľke RFCDES
Funkcie RFC rozhrania

  • Prevod všetkých parametrických údajov na reprezentáciu potrebnú vo vzdialenom systéme
  • Volanie komunikačných rutín potrebných na komunikáciu so vzdialeným systémom.
  • Spracovanie komunikačných chýb a oznámenie volajúcemu, ak je to potrebné (pomocou parametra VÝNIMKY FUNKCIE CALL).


RFC je protokol SAP, ktorý slúži na komunikáciu medzi systémami s cieľom zjednodušiť súvisiace programovanie. Jedná sa o proces volania funkčného modulu, ktorý sa nachádza na inom stroji ako program volajúceho. RFC sa dajú použiť aj na volanie iného programu na rovnakom stroji, ale zvyčajne sa používa, keď sú „volacie“ a „volané“ funkčné moduly / programy spustené na samostatných strojoch.


V systéme SAP sa systém rozhrania RFC používa na nastavenie spojení RFC medzi rôznymi systémami SAP a tiež medzi systémom SAP a externým (iným ako SAP) systémom.

Musíte vedieť podrobnosti o RFC

  • Spoločnosť SAP používa na prenos údajov medzi systémami protokol CPIC (Common Programming Interface for Communication). Je to špecifický protokol SAP. Remote Function Call (RFC) je komunikačné rozhranie založené na CPI-C, ale s viacerými funkciami a pre aplikačných programátorov ľahšie použiteľné
  • Funkcie knižnice RFC podporujú programovací jazyk C a Visual Basic (na platformách Windows)
  • RFC pripojenia je možné vždy použiť v celom systéme. To znamená, že RFC pripojenie, ktoré ste definovali v klientovi 000, je možné použiť aj od klienta 100 (bez rozdielu).
  • RFC je protokol na volanie špeciálnych podprogramov (funkčných modulov) cez sieť. Funkčné moduly sú porovnateľné s funkciami C alebo PASCAL. Majú definované rozhranie, prostredníctvom ktorého je možné vymieňať údaje, tabuľky a návratové kódy. Funkčné moduly sú spravované v systéme R / 3 vo vlastnej knižnici funkcií, ktorá sa nazýva Function Builder.
  • Funkcia Builder funkcií (transakcia SE37) poskytuje aplikačným programátorom užitočné prostredie pre programovanie, dokumentovanie a testovanie funkčných modulov, ktoré je možné vyvolať lokálne aj vzdialene. Systém R / 3 automaticky generuje ďalší kód (blok RFC) potrebný pre vzdialené hovory.
  • Parametre pre pripojenia RFC udržiavate pomocou transakcie SM59. Systém R / 3 sa dodáva aj s softvérom RFC-SDK (Software Development Kit), ktorý využíva rozsiahle knižnice C na pripojenie externých programov k systému R / 3.
  • Jediným rozdielom medzi vzdialeným volaním funkčného modulu na iný server a miestnym volaním je špeciálny parameter (cieľ), ktorý určuje cieľový server, na ktorom sa má program vykonať.

Výhody RFC:

RFC pomáha znižovať úsilie programátorov tým, že im umožňuje vyhnúť sa opätovnému vývoju modulov a metód na vzdialených systémoch. Je dosť schopný:

  • Preveďte údaje do formátu zrozumiteľného vzdialenému (cieľovému) systému.
  • Preveďte údaje do formátu zrozumiteľného vzdialenému (cieľovému) systému.
  • Vyvolajte určité rutiny, ktoré sú potrebné na zahájenie komunikácie so vzdialeným systémom.
  • Riešte chyby, ktoré sa môžu vyskytnúť v procese komunikácie.

Typy RFC:


Synchrónne

Vyžaduje, aby boli systémy (klient aj server) k dispozícii v čase komunikácie alebo prenosu údajov. Je to najbežnejší typ a vyžaduje sa, keď sa vyžaduje výsledok ihneď po vykonaní sRFC.
sRFC je prostriedok komunikácie medzi systémami, kde sa vyžaduje potvrdenie. Zdroje zdrojového systému čakajú na cieľový systém a zabezpečujú, aby doručovali správu / dáta pomocou ACKD. Údaje sú konzistentné a spoľahlivé na komunikáciu.
Problém je v tom, že ak cieľový systém nie je k dispozícii, zdroje zdrojového systému počkajú, kým nebude k dispozícii. To môže viesť k tomu, že procesy zdrojového systému prejdú do režimu spánku / RFC / CPIC v cieľových systémoch, a teda blokujú tieto zdroje.
Používa

  • Pre komunikáciu medzi systémami
  • Pre komunikáciu medzi webovým aplikačným serverom SAP a SAP GUI

Asynchrónne

Je to komunikácia medzi systémami, kde sa nevyžaduje potvrdenie (je to podobné ako pri doručení pohľadnice). Nevyžaduje, aby boli oba systémy k dispozícii v čase vykonania, a nevyžaduje sa okamžité odoslanie výsledku späť do volajúceho systému .

Zdroj zdrojového systému nečaká na cieľový systém, pretože doručuje správu / dáta bez čakania na potvrdenie. Komunikácia nie je spoľahlivá, pretože ak cieľový systém nie je k dispozícii, môžu sa údaje stratiť. Používa -

  • Pre komunikáciu medzi systémami
  • Na paralelné spracovanie

Transakčné

Je to špeciálna forma aRFC. Transakčný RFC zaisťuje transakčné spracovanie procesných krokov, ktoré boli pôvodne autonómne.

Transakčný RFC je asynchrónna komunikačná metóda, ktorá vykonáva volaný funkčný modul na serveri RFC iba raz, a to aj v prípade, že sa údaje zasielajú viackrát kvôli problémom so sieťou. Vzdialený systém nemusí byť k dispozícii v čase, keď klientsky program RFC vykonáva tRFC. Komponent tRFC ukladá volanú funkciu RFC spolu s príslušnými údajmi do databázy SAP pod jedinečným ID transakcie (TID). tRFC je podobné aRFC, pretože neočakáva v cieľovom systéme (podobné registrovanému príspevku). Ak systém nie je k dispozícii, zapíše údaje do tabuliek aRFC s ID transakcie (SM58), ktoré vyberie plánovač RSARFCSE (ktorý beží každých 60 sekúnd). Používa-

  • Rozšírenie asynchrónneho RFC
  • Pre bezpečnú komunikáciu medzi systémami

V poradí

Poradie RFC je rozšírením tRFC. Zaisťuje tiež, že jednotlivé kroky sú spracovávané postupne.

Aby sa zaručilo, že bude spracovaných viac LUW (logická jednotka práce / transakcie) v poradí určenom aplikáciou. tRFC možno serializovať pomocou frontov (vstupné a výstupné fronty). Odtiaľ pochádza aj názov zaradený do frontu RFC (qRFC). Používa-

  • Rozšírenie transakčného RFC
  • Pre definovanú postupnosť spracovania
  • Implementácia qRFC sa odporúča, ak chcete zaručiť, že sa niekoľko transakcií spracuje v preddefinovanom poradí.

Typy pripojení RFC


Typ 3 - položky špecifikujú spojenie medzi systémami ABAP. Tu musíme určiť názov hostiteľa / IP adresu. Podľa potreby však môžete určiť prihlasovacie informácie. Toto platí pre oba typy RFC, medzi systémami ABAP a externými hovormi do systémov ABAPTyp I - položky špecifikujú systémy ABAP pripojené k rovnakej databáze ako aktuálny systém. Tieto položky sú vopred definované a nemožno ich meniť. Príklad názvu záznamu: ws0015_K18_24

  • ws0015 = názov hostiteľa
  • K18 = názov systému (názov databázy)
  • 24 = názov služby TCP

Cieľ T - ciele sú pripojenia k externým programom, ktoré používajú RFC API na príjem RFC. Typ aktivácie môže byť buď Štart, alebo Registrácia. Ak je to Štart, musíte určiť názov hostiteľa a cestu k programu, ktorý sa má spustiť.

Ako kódovať RFC?

1. Na karte atribútov funkčných modulov (kód transakcie SE37) nastavte typ spracovania ako Remote-enabled module, aby ste vytvorili vzdialený funkčný modul.


2. Napíš kód funkčného modulu.


3. Definujte cieľ RFC servera v klientskom systéme RFC, ktorý volá vzdialenú funkciu (prostredníctvom transakcie SM59).


4. Deklarovanie parametrov : Všetky polia parametrov pre vzdialený funkčný modul musia byť definované ako referenčné polia, to znamená ako polia slovníka ABAP.5. Výnimky: Systém interne zvyšuje hodnoty COMMUNICATION_FAILURE a SYSTEM_FAILURE. Vo vzdialenej funkcii môžete zvýšiť výnimky, rovnako ako v lokálne nazývanej funkcii.

Ladenie vzdialených volaní funkcií

  • Nie je možné ladiť vzdialené volanie funkcií do iného systému.
  • Pri testovaní hovorov ABAP-ABAP RFC však môžete pomocou debuggeru ABAP monitorovať vykonávanie funkcie RFC vo vzdialenom systéme.
  • Pri vzdialených hovoroch sa ladiaci program ABAP (vrátane ladiaceho rozhrania) spúšťa v lokálnom systéme. Hodnoty údajov a ďalšie informácie o chode pre vzdialenú funkciu sa odovzdávajú zo vzdialeného systému.