Klic oddaljene funkcije (RFC) v SAP vadnici

Kazalo:

Anonim

Kaj je RFC?

RFC je mehanizem, ki poslovnim aplikacijam omogoča komunikacijo in izmenjavo informacij (v vnaprej določenih oblikah) z drugimi sistemi. RFC je kratica za "Remote Function Call"

RFC je sestavljen iz dveh vmesnikov:

  1. Klicni vmesnik za programe ABAP
  2. Klicni vmesnik za programe, ki niso SAP.

Vsak program ABAP lahko pokliče oddaljeno funkcijo z uporabo stavka CALL FUNCTION… DESTINATION . Parameter DESTINATION sporoča sistemu SAP, da se klicana funkcija izvaja v sistemu, ki ni klicatelji.Sintaksa-

FUNKCIJA Klica "daljinsko delovanje"CILJ destIZVOZ f1 =UVOZ F2 =TABELE t1 =IZJEME

Logični cilji so definirani s transakcijo SM59 in shranjeni v tabeli RFCDES
Functions of RFC interface

  • Pretvorba vseh podatkov parametrov v prikaz, potreben v oddaljenem sistemu
  • Klicanje komunikacijskih rutin, potrebnih za pogovor z oddaljenim sistemom.
  • Obravnavanje komunikacijskih napak in po potrebi obveščanje kličočega (z uporabo parametra EXCEPTIONS funkcije CALL FUNCTION).


RFC je protokol SAP za obdelavo komunikacij med sistemi za poenostavitev s tem povezanega programiranja. Gre za postopek klica funkcijskega modula, ki je nameščen na računalniku, ki ni klicni program. RFC lahko uporabimo tudi za klicanje drugega programa na istem računalniku, vendar se običajno uporablja, kadar se funkcijski moduli / programi "klicanje" in "klicanje" izvajajo na ločenih računalnikih.


V SAP se RFC Interface sistem uporablja za vzpostavljanje RFC povezav med različnimi sistemi SAP, pa tudi med SAP in zunanjim sistemom (ki ni SAP).

Moram vedeti podrobnosti o RFC

  • SAP uporablja protokol CPIC (Common Programming Interface for Communication) za prenos podatkov med sistemi. To je protokol, specifičen za SAP. Remote Function Call (RFC) je komunikacijski vmesnik, ki temelji na CPI-C, vendar z več funkcijami in enostavnejšim za uporabo programerjem
  • Funkcije knjižnice RFC podpirajo programski jezik C in Visual Basic (na platformah Windows)
  • Povezave RFC je vedno mogoče uporabiti v celotnem sistemu, kar pomeni, da se povezava RFC, ki ste jo določili v odjemalcu 000, lahko uporablja tudi iz odjemalca 100 (brez kakršne koli razlike).
  • RFC je protokol za klicanje posebnih podprogramov (funkcijskih modulov) po omrežju. Funkcijski moduli so primerljivi s funkcijami C ali postopki PASCAL. Imajo definiran vmesnik, prek katerega je mogoče izmenjati podatke, tabele in povratne kode. Funkcijske module upravlja sistem R / 3 v lastni knjižnici funkcij, imenovani Function Builder.
  • Graditelj funkcij (transakcija SE37) programerjem aplikacij nudi uporabno okolje za programiranje, dokumentiranje in preizkušanje funkcijskih modulov, ki jih je mogoče poklicati tako lokalno kot oddaljeno. Sistem R / 3 samodejno ustvari dodatno kodo (RFC stub), potrebno za oddaljene klice.
  • Parametre za povezave RFC vzdržujete z uporabo transakcije SM59. Sistem R / 3 je dobavljen tudi z RFC-SDK (komplet za razvoj programske opreme), ki uporablja obsežne knjižnice C, da omogoča priključitev zunanjih programov na sistem R / 3.
  • Edina razlika med oddaljenim klicem funkcijskega modula na drug strežnik in lokalnim klicem je poseben parameter (cilj), ki določa ciljni strežnik, na katerem naj se program izvaja.

Prednosti RFC:

RFC pomaga zmanjšati napore programerjev, saj jim omogoča, da se izognejo ponovnemu razvoju modulov in metod na oddaljenih sistemih. Dovolj je sposoben:

  • Pretvorite podatke v obliko, ki jo razume oddaljeni (ciljni) sistem.
  • Pretvorite podatke v obliko, ki jo razume oddaljeni (ciljni) sistem.
  • Prikličite nekatere rutine, ki so potrebne za začetek komunikacije z oddaljenim sistemom.
  • Obravnavajte napake, ki se lahko pojavijo v procesu komunikacije.

Vrste RFC:


Sinhrono

Zahteva, da morata biti oba sistema (odjemalec in strežnik) na voljo v času komunikacije ali prenosa podatkov. Je najpogostejša vrsta in je potrebna, kadar je rezultat potreben takoj po izvedbi sRFC.
sRFC je sredstvo za komunikacijo med sistemi, kjer se zahtevajo potrditve. Viri izvornega sistema čakajo na ciljni sistem in zagotavljajo, da sporočilo / podatke dostavijo z ACKD. Podatki so skladni in zanesljivi za komunikacijo.
Težava je v tem, da ciljni sistem ni na voljo, izvorni sistemski viri počakajo, da je ciljni sistem na voljo. To lahko privede do tega, da procesi izvornega sistema preidejo v način spanja / RFC / CPIC pri ciljnih sistemih in s tem blokirajo te vire.
Uporablja za

  • Za komunikacijo med sistemi
  • Za komunikacijo med strežnikom SAP Web Application in SAP GUI

Asinhrono

Gre za komunikacijo med sistemi, kjer potrditve niso potrebne (podobno je kot dostava dopisnic). Ne zahteva, da sta oba sistema na voljo v času izvedbe, rezultata pa ni treba takoj poslati nazaj v klicni sistem .

Vir izvornega sistema ne čaka na ciljni sistem, saj sporočilo / podatke dostavi, ne da bi čakal na potrditev. Za komunikacijo ni zanesljiv, saj se podatki lahko izgubijo, če ciljni sistem ni na voljo. Uporablja za -

  • Za komunikacijo med sistemi
  • Za vzporedno obdelavo

Transakcijski

To je posebna oblika aRFC. Transakcijski RFC zagotavlja transakcijsko obdelavo postopkovnih korakov, ki so bili prvotno avtonomni.

Transakcijski RFC je asinhrona komunikacijska metoda, ki prikliče funkcijski modul v strežniku RFC samo enkrat, tudi če so podatki poslani večkrat zaradi neke težave z omrežjem. Oddaljenega sistema ni treba imeti na voljo v času, ko odjemalski program RFC izvaja tRFC. Komponenta tRFC shrani poklicano funkcijo RFC skupaj z ustreznimi podatki v bazo podatkov SAP pod enoličnim ID-jem transakcije (TID). tRFC je podoben aRFC, saj ne čaka na ciljnem sistemu (podobno kot priporočena pošta). Če sistem ni na voljo, bo podatke zapisal v tabele aRFC z ID-jem transakcije (SM58), ki ga izbere načrtovalnik RSARFCSE (ki deluje vsakih 60 sekund). Uporablja za-

  • Razširitev asinhronega RFC
  • Za varno komunikacijo med sistemi

V čakalni vrsti

RFC v čakalni vrsti je razširitev tRFC. Zagotavlja tudi zaporedno obdelavo posameznih korakov.

Da se zagotovi obdelava več LUW (logična enota dela / transakcije) v vrstnem redu, ki ga določa aplikacija. tRFC je mogoče serializirati s čakalnimi vrstami (vhodne in izhodne čakalne vrste). Od tod tudi ime v čakalni vrsti RFC (qRFC). Uporablja za-

  • Podaljšanje transakcijskega RFC
  • Za določeno zaporedje obdelave
  • Izvajanje qRFC je priporočljivo, če želite zagotoviti, da se več transakcij obdela v vnaprej določenem vrstnem redu.

Vrste RFC povezav


Tip 3 - vnosi določajo povezavo med sistemi ABAP. Tu moramo določiti ime gostitelja / naslov IP. Po želji pa lahko določite podatke za prijavo. To velja za obe vrsti RFC-jev, med sistemi ABAP in zunanjimi klici v sisteme ABAP.Tip I - vnosi določajo sisteme ABAP, povezane z isto bazo podatkov kot trenutni sistem. Ti vnosi so vnaprej določeni in jih ni mogoče spreminjati. Primer imena vnosa: ws0015_K18_24

  • ws0015 = ime gostitelja
  • K18 = ime sistema (ime baze podatkov)
  • 24 = ime storitve TCP

Cilji tipa T so povezave z zunanjimi programi, ki uporabljajo RFC API za sprejemanje RFC-jev. Vrsta aktivacije je lahko Start ali Registracija. Če je Start, morate določiti ime gostitelja in ime poti programa, ki ga želite zagnati.

Kako kodirati RFC?

1. Na zavihku Atributi funkcijskega modula (koda transakcije SE37) nastavite vrsto obdelave kot Modul z oddaljenim omogočanjem, da ustvarite oddaljeni funkcijski modul.


2. Napišite kodo za funkcijski modul.


3. Določite cilj strežnika RFC v odjemalskem sistemu RFC, ki prikliče oddaljeno funkcijo (prek transakcije SM59).


4. Omejitev parametrov : Vsa polja parametrov za oddaljeni funkcijski modul morajo biti definirana kot referenčna polja, torej kot polja ABAP Dictionary.5. Izjeme: sistem interno dvigne COMMUNICATION_FAILURE in SYSTEM_FAILURE. V oddaljeni funkciji lahko povečate izjeme, tako kot v lokalni funkciji.

Odpravljanje napak na oddaljene klice funkcij

  • To je ni mogoče debug funkcijsko klic na drug sistem na daljavo.
  • Vendar pa lahko pri preizkušanju klicev ABAP med ABAP in ABAP RFC uporabite razhroščevalnik ABAP za spremljanje izvajanja funkcije RFC v oddaljenem sistemu.
  • Pri oddaljenih klicih se razhroščevalnik ABAP (vključno z vmesnikom za odpravljanje napak) izvaja v lokalnem sistemu. Podatkovne vrednosti in druge informacije o zagonu za oddaljeno funkcijo se posredujejo iz oddaljenega sistema.