Remote Function Call (RFC) u SAP Tutorijal
Što je RFC?
RFC je mehanizam koji poslovnim aplikacijama omogućuje komunikaciju i razmjenu informacija (u unaprijed definiranim formatima) s drugim sustavima. RFC je kratica za 'Poziv daljinske funkcije'
RFC se sastoji od dva sučelja:
- Pozivno sučelje za ABAP programe
- Sučelje za pozivanje za ne-SAP Programi.
bilo koji ABAP program može pozvati udaljenu funkciju pomoću FUNKCIJA POZIVA…ODREDIŠTE izjava. The ODREDIŠTE parametar govori SAP Sustav koji pozvana funkcija izvodi u sustavu koji nije pozivatelj.
Sintaksa-
CALL FUNCTION 'remotefunction' DESTINATION dest EXPORTING f1 = IMPORTING f2 = TABLES t1 = EXCEPTIONS
Logička odredišta definirana su putem transakcije SM59 i pohranjeni u tablici RFCDES
Funkcije RFC sučelja
- Pretvaranje svih parametarskih podataka u reprezentaciju potrebnu u udaljenom sustavu
- Pozivanje komunikacijskih rutina potrebnih za razgovor s udaljenim sustavom.
- Rukovanje komunikacijskim pogreškama i obavještavanje pozivatelja, ako to želi (upotrebom parametra EXCEPTIONS FUNKCIJE POZIVA).
RFC je a SAP protokol za upravljanje komunikacijama između sustava radi pojednostavljenja povezanog programiranja. To je proces pozivanja funkcijskog modula koji se nalazi na drugom stroju od programa pozivatelja. RFC-ovi se također mogu koristiti za pozivanje različitih programa na istom računalu, ali obično se koriste kada se 'pozivaju' i 'pozivaju' funkcijski moduli/programi izvode na različitim računalima.
In SAP, Sustav RFC sučelja koristi se za postavljanje RFC veza između različitih SAP sustavi, a također i između a SAP i vanjski (ne-SAP) sustav.
Morate znati pojedinosti o RFC-u
- SAP Koristi CPIC (Common Programming Interface for Communication) protokol za prijenos podataka između sustava. jeste SAP Specifičan protokol. Remote Function Call (RFC) je komunikacijsko sučelje temeljeno na CPI-C, ali s više funkcija i jednostavnije za korištenje programerima aplikacija
- Funkcije RFC knjižnice podržavaju C programski jezik i Visual Basic (na Windows platforme)
- RFC veze uvijek se mogu koristiti u cijelom sustavu. To znači da se RFC veza koju ste definirali u klijentu 000 također može koristiti od klijenta 100 (bez ikakve razlike).
- RFC je protokol za pozivanje posebnih potprograma (funkcijskih modula) preko mreže. Funkcijski moduli su usporedivi s C funkcijama ili PASCAL postupcima. Imaju definirano sučelje preko kojeg se mogu razmjenjivati podaci, tablice i povratni kodovi. Funkcijskim modulima upravlja se u sustavu R/3 u njihovoj vlastitoj knjižnici funkcija, koja se naziva Function Builder.
- Function Builder (transakcija SE37) pruža programerima aplikacija korisno okruženje za programiranje, dokumentiranje i Ispitivanje funkcijski moduli koji se mogu pozivati lokalno kao i daljinski. Sustav R/3 automatski generira dodatni kod (RFC stub) potreban za udaljene pozive.
- Vi održavate parametre za RFC veze koristeći transakciju SM59. Sustav R/3 također se isporučuje s RFC-SDK (Software Development Kit) koji koristi opsežne C biblioteke kako bi omogućio povezivanje vanjskih programa sa sustavom R/3.
- Jedina razlika između udaljenog poziva funkcijskog modula drugom poslužitelju i lokalnog poziva je poseban parametar (destinacija) koji specificira ciljni poslužitelj na kojem se program treba izvršiti.
RFC prednosti
RFC pomaže smanjiti napore programera, dopuštajući im da izbjegnu ponovni razvoj modula i metoda na udaljenim sustavima. Dovoljno je sposoban da:
- Pretvorite podatke u format razumljiv udaljenom (ciljnom) sustavu.
- Pretvorite podatke u format razumljiv udaljenom (ciljnom) sustavu.
- Pozovite određene rutine koje su potrebne za početak komunikacije s udaljenim sustavom.
- Rješavati pogreške koje se mogu pojaviti u procesu komunikacije.
Vrste RFC-a
Synchronozan
Zahtijeva da oba sustava (klijent i poslužitelj) budu dostupni u trenutku komunikacije ili prijenosa podataka. To je najčešći tip i potreban je kada je rezultat potreban odmah nakon izvođenja sRFC-a.
sRFC je sredstvo komunikacije između sustava gdje su potrebne potvrde. Resursi izvornog sustava čekaju na ciljnom sustavu i osiguravaju isporuku poruke/podataka s ACKD-om. Podaci su dosljedni i pouzdani za komunikaciju.
Problem je ako ciljni sustav nije dostupan, resursi izvornog sustava čekaju dok ciljni sustav ne bude dostupan. To može dovesti do toga da procesi izvornog sustava odu u način mirovanja/RFC/CPIC na ciljnim sustavima i stoga blokiraju te resurse.
Koristi se za
- Za komunikaciju između sustava
- Za komunikaciju između SAP Web Application Server to SAP GUI
asinhron
To je komunikacija između sustava u kojoj nisu potrebne potvrde (slično je isporuci razglednice). Ne zahtijeva da oba sustava budu dostupna u trenutku izvršenja i rezultat se ne mora odmah poslati natrag sustavu koji poziva. .
Resurs izvornog sustava ne čeka ciljni sustav jer oni isporučuju poruku/podatke bez čekanja na bilo kakvu potvrdu. Nije pouzdan za komunikaciju jer se podaci mogu izgubiti ako ciljni sustav nije dostupan. Koristi za -
- Za komunikaciju između sustava
- Za paralelnu obradu
Transakcijska
To je poseban oblik aRFC-a. Transakcijski RFC osigurava rukovanje koracima obrade nalik transakciji koji su izvorno bili autonomni.
Transakcijski RFC je asinkrona komunikacijska metoda koja izvršava pozvani funkcijski modul na RFC poslužitelju samo jednom, čak i ako se podaci šalju više puta zbog problema s mrežom. Udaljeni sustav ne mora biti dostupan u vrijeme kada RFC klijentski program izvršava tRFC. Komponenta tRFC pohranjuje pozvanu RFC funkciju, zajedno s odgovarajućim podacima, u SAP bazu podataka pod jedinstvenim ID-om transakcije (TID). tRFC je sličan aRFC-u jer ne čeka na ciljnom sustavu (Slično preporučenoj pošti). Ako sustav nije dostupan, zapisivat će podatke u aRFC tablice s ID-om transakcije (SM58) koji odabire planer RSARFCSE (koji se pokreće svakih 60 sekundi). Koristi za-
- Proširenje asinkronog RFC-a
- Za sigurnu komunikaciju između sustava
U redu za slanje
Queued RFC je proširenje tRFC-a. Također osigurava da se pojedinačni koraci obrađuju u nizu. Kako bi se zajamčilo da se više LUW-ova (logičke jedinice rada/transakcije) obrađuju redoslijedom koji je odredila aplikacija. tRFC se može serijalizirati pomoću redova (ulazni i izlazni redovi). Otuda naziv RFC u redu čekanja (qRFC). Koristi za-
- Proširenje transakcijskog RFC-a
- Za definirani redoslijed obrade
- Implementacija qRFC-a preporučuje se ako želite jamčiti da se nekoliko transakcija obrađuje unaprijed definiranim redoslijedom.
Vrste RFC veza
Upišite 3 – unosi određuju vezu između ABAP sustavi. Ovdje moramo navesti ime hosta / IP adresu. Međutim, ako želite, možete navesti podatke za prijavu. Ovo je primjenjivo za obje vrste RFC-ova, između ABAP sustava i vanjskih poziva prema ABAP sustavima
Tip I – unosi određuju ABAP sustave povezane s istom bazom podataka kao i trenutni sustav. Ovi unosi su unaprijed definirani i ne mogu se mijenjati. Primjer naziva unosa: ws0015_K18_24
- ws0015=ime glavnog računala
- K18=naziv sustava (naziv baze podataka)
- 24=Naziv TCP usluge
Tip T – odredišta su veze s vanjskim programima koji koriste RFC API za primanje RFC-ova. Vrsta aktivacije može biti Start ili Registracija. Ako je Start, morate navesti naziv glavnog računala i naziv staze programa koji se pokreće.
Kako kodirati RFC?
1) Na kartici atributa funkcijskog modula (šifra transakcije SE37), postavite vrstu obrade kao Modul omogućen na daljinu da biste stvorili modul na daljinu.
2) Napišite kod za funkcijski modul.
3) Definirajte odredište RFC poslužitelja u RFC klijentskom sustavu koji poziva udaljenu funkciju (preko SM59 transakcije).
4) Deklariranje parametara: Sva polja parametara za udaljeni funkcijski modul moraju biti definirana kao referentna polja, to jest, poput polja ABAP rječnika.
5) Iznimke: Sustav interno javlja COMMUNICATION_FAILURE i SYSTEM_FAILURE. Možete pokrenuti iznimke u udaljenoj funkciji baš kao što biste to učinili u lokalno pozvanoj funkciji.
Otklanjanje pogrešaka poziva udaljenih funkcija
- To je nije moguće otkloniti pogreške daljinski poziv funkcije drugom sustavu.
- Međutim, kada testirate ABAP-na-ABAP RFC pozive, možete koristiti ABAP debugger za praćenje izvršavanja RFC funkcije u udaljenom sustavu.
- Uz udaljene pozive, ABAP debugger (uključujući sučelje za debugging) radi na lokalnom sustavu. Vrijednosti podataka i druge informacije o radu za udaljenu funkciju prosljeđuju se iz udaljenog sustava.