Što je RFC?
RFC je mehanizam koji omogućuje poslovnim aplikacijama da komuniciraju i razmjenjuju informacije (u unaprijed definiranim formatima) s drugim sustavima. RFC je kratica za "Poziv na daljinsku funkciju"
RFC se sastoji od dva sučelja:
- Pozivno sučelje za ABAP programe
- Sučelje za pozivanje za programe koji nisu SAP-ovi.
Bilo koji ABAP program može pozvati daljinsku funkciju pomoću naredbe CALL FUNCTION ... DESTINATION . Parametar DESTINATION govori SAP sustavu da se pozvana funkcija izvodi u sustavu koji nije pozivalac.Sintaksa-
FUNKCIJA POZIVA 'daljinska funkcija'DESTINACIJA destIZVOZ f1 =UVOZ f2 =TABLICE t1 =IZUZETCI
Logična odredišta definirana su putem transakcije SM59 i pohranjena u tablici RFCDES
funkcije RFC sučelja
- Pretvaranje svih podataka parametara u prikaz potreban u udaljenom sustavu
- Pozivanje komunikacijskih rutina potrebnih za razgovor s udaljenim sustavom.
- Rukovanje komunikacijskim pogreškama i obavještavanje pozivatelja, po želji (pomoću parametra EXCEPTIONS funkcije CALL FUNCTION).
RFC je SAP protokol za upravljanje komunikacijom između sustava radi pojednostavljenja povezanog programiranja. To je postupak pozivanja funkcijskog modula koji se nalazi na računalu koji se razlikuje od programa pozivatelja. RFC-ovi se mogu koristiti i za pozivanje različitih programa na istom stroju, ali obično se koriste kada se "pozivni" i "pozvani" funkcijski moduli / programi izvode na odvojenim strojevima.
U SAP-u se sustav RFC sučelja koristi za postavljanje RFC veza između različitih SAP sustava, kao i između SAP-a i vanjskog (koji nije SAP) sustava.
Moram znati detalje o RFC-u
- SAP koristi CPIC (zajedničko programsko sučelje za komunikaciju) protokola za prijenos podataka između sustava. To je protokol specifičan za SAP. Udaljeni poziv funkcije (RFC) komunikacijsko je sučelje temeljeno na CPI-C, ali s više funkcija i jednostavnijim za korištenje programerima
- Funkcije RFC knjižnice podržavaju programski jezik C i Visual Basic (na Windows platformama)
- RFC veze uvijek se mogu koristiti u cijelom sustavu. To znači da se RFC veza koju ste definirali u klijentu 000 može koristiti i od klijenta 100 (bez ikakve razlike).
- RFC je protokol za pozivanje posebnih potprograma (funkcijskih modula) putem mreže. Funkcijski moduli usporedivi su s C funkcijama ili PASCAL postupcima. Imaju definirano sučelje putem kojeg se mogu razmjenjivati podaci, tablice i povratni kodovi. Funkcijskim modulima upravlja se u R / 3 sustavu u njihovoj vlastitoj biblioteci funkcija, koja se naziva Function Builder.
- Graditelj funkcija (transakcija SE37) pruža programerima aplikacija korisno okruženje za programiranje, dokumentiranje i testiranje funkcijskih modula koji se mogu pozivati lokalno i daljinski. R / 3 sustav automatski generira dodatni kôd (RFC stub) potreban za udaljene pozive.
- Održavate parametre za RFC veze pomoću transakcije SM59. R / 3 sustav također se isporučuje s RFC-SDK (Software Development Kit) koji koristi opsežne C knjižnice kako bi se omogućilo povezivanje vanjskih programa na R / 3 sustav.
- Jedina razlika između udaljenog poziva funkcijskog modula na drugi poslužitelj i lokalnog poziva je poseban parametar (odredište) koji određuje 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 za:
- Pretvorite podatke u format razumljiv udaljenom (ciljnom) sustavu.
- Pretvorite podatke u format razumljiv udaljenom (ciljnom) sustavu.
- Pozovite određene rutine potrebne za započinjanje komunikacije s udaljenim sustavom.
- Obrađuju pogreške koje bi se mogle pojaviti u procesu komunikacije.
Vrste RFC-a:
Sinkroni
Zahtijeva da oba sustava (klijent i poslužitelj) budu dostupna u vrijeme komunikacije ili prijenosa podataka. To je najčešći tip i potreban je kada se traži rezultat odmah nakon izvršavanja sRFC-a.
sRFC je sredstvo komunikacije između sustava gdje se zahtijevaju potvrde. Resursi Izvornog sustava čekaju na ciljnom sustavu i osiguravaju da isporučuju poruku / podatke 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 postane dostupan. To može dovesti do toga da procesi izvornog sustava prijeđu u stanje mirovanja / RFC / CPIC u ciljanim sustavima i stoga blokiraju te resurse.
Koristi za
- Za komunikaciju između sustava
- Za komunikaciju između SAP poslužitelja web aplikacija sa SAP GUI
Asinkroni
To je komunikacija između sustava u kojima potvrde nisu potrebne (slično je isporuci razglednice). Ne zahtijeva da oba sustava budu dostupna u vrijeme izvršenja, a rezultat se ne mora odmah poslati natrag pozivajućem sustavu .Izvor izvornog sustava ne čeka ciljni sustav jer isporučuje poruku / podatke bez čekanja na 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
Transakcijski
To je poseban oblik aRFC. Transakcijski RFC osigurava rukovanje transakcijskim koracima 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 nekog mrežnog problema. Udaljeni sustav ne mora biti dostupan u vrijeme kada program RFC klijenta 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 kao registrirana pošta). Ako sustav nije dostupan, zapisat ć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 čekanja
RFC u redu je proširenje tRFC-a. Također osigurava redoslijednu obradu pojedinih koraka.Da bi se jamčilo da će se više LUW-a (logička jedinica rada / transakcije) obrađivati redoslijedom navedenim u prijavi. tRFC se može serijalizirati pomoću redova (ulazni i izlazni redovi). Stoga je naziv na čekanju RFC (qRFC). Koristi za-
- Proširenje Transakcijskog RFC-a
- Za definirani slijed obrade
- Implementacija qRFC preporučuje se ako želite jamčiti da će se nekoliko transakcija obrađivati u unaprijed definiranom redoslijedu.
Vrste RFC veza
Tip 3 - unosi određuju vezu između ABAP sustava. Ovdje moramo navesti ime hosta / IP adresu. Ako želite, možete odrediti podatke za prijavu. To je primjenjivo za obje vrste RFC-ova, između ABAP sustava i vanjskih poziva ABAP sustavima.Tip I - unosi određuju ABAP sustave povezane na istu bazu podataka kao i trenutni sustav. Ovi unosi su unaprijed definirani i ne mogu se mijenjati. Primjer imena unosa: ws0015_K18_24
- ws0015 = ime hosta
- 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-a. Vrsta aktivacije može biti Start ili Registracija. Ako je Start, morate navesti ime hosta i naziv puta programa koji će se pokrenuti.
Kako kodirati RFC?
1. Na kartici Atributi funkcijskog modula (kod transakcije SE37), postavite vrstu obrade kao Modul s omogućenom daljinom za stvaranje udaljenog funkcijskog modula.
2. Napiši kod za funkcijski modul.
3. Definirajte odredište RFC poslužitelja u RFC klijentskom sustavu koji poziva daljinsku funkciju (putem SM59 transakcije).
4.Deklariranje parametara : Sva polja parametara za udaljeni funkcijski modul moraju biti definirana kao referentna polja, odnosno poput polja ABAP rječnika.5. Iznimke: Sustav interno podiže COMMUNICATION_FAILURE i SYSTEM_FAILURE. Možete stvoriti iznimke u udaljenoj funkciji baš kao što biste to učinili u lokalno pozvanoj funkciji.
Otklanjanje pogrešaka u pozivima udaljene funkcije
- Nije moguće ispraviti pogreške u udaljenom pozivu funkcije na drugi sustav.
- Međutim, pri testiranju RFC poziva ABAP-to-ABAP, možete upotrijebiti program za ispravljanje pogrešaka ABAP za praćenje izvršavanja RFC funkcije u udaljenom sustavu.
- Kod udaljenih poziva, program za uklanjanje pogrešaka ABAP (uključujući sučelje za otklanjanje pogrešaka) radi na lokalnom sustavu. Vrijednosti podataka i druge informacije o izvođenju za udaljenu funkciju prenose se iz udaljenog sustava.