Remote Function Call (RFC) u SAP ABAP vodič

⚡ Pametni sažetak

Udaljeni poziv funkcije (RFC) je SAP komunikacijski mehanizam koji omogućuje ABAP programu pozivanje funkcijskog modula koji se izvršava na drugom SAP ili vanjski sustav. To je apsolutnotracprovjerava mrežne instalacije, pretvara formate podataka i jasno prijavljuje kvarove pozivatelju.

  • 📡 Osnovni mehanizam: POZOVI FUNKCIJU…ODREDIŠTE poziva funkcijski modul na logičkom odredištu definiranom u SM59.
  • 🔁 Četiri varijante: SyncHronični, asinkroni, transakcijski i RFC u redu čekanja jamče različitu isporuku.tract.
  • 🌐 Vrste veze: SM59 podržava tip 3 (ABAP-ABAP), tip I (vršnjaci iste baze podataka) i tip T (vanjski programi).
  • 🛠️ Put izgradnje: Postavite funkcijski modul na Daljinski omogućen u SE37, kodirajte ga i definirajte odredište u SM59 na pozivatelju.
  • 🤖 Kut umjetne inteligencije: AI asistenti generiraju ABAP RFC stubove iz specifikacija prirodnog jezika i raščlanjuju SM58 pogreške u praktične ispravke.

Funkcije RFC sučelja

Što je RFC u SAP?

RFC zalaže za Poziv udaljene funkcijeTo je mehanizam koji omogućuje poslovnim aplikacijama komunikaciju i razmjenu informacija - u unaprijed definiranim formatima - s drugim sustavima. RFC je najčešći način SAP sustav razgovara s drugim, a ujedno je i most koji povezuje SAP sustave za ne-SAP aplikacija.

RFC nudi dva sučelja:

  1. Sučelje za pozivanje ABAP programi.
  2. 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 DESTINATION parametar govori SAP sustav na kojem se pozvana funkcija izvršava na drugom sustavu od pozivatelja.

Sintaksa

CALL FUNCTION 'remotefunction'
  DESTINATION dest
  EXPORTING  f1 = ...
  IMPORTING  f2 = ...
  TABLES     t1 = ...
  EXCEPTIONS ...

Logička odredišta definirana su putem transakcije SM59 i pohranjene u tablici RFCDES.

Funkcije RFC sučelja

Funkcije RFC sučelja

RFC runtime je odgovoran za tri stvari u svakom pozivu:

  • Pretvaranje svih parametarskih podataka u prikaz koji očekuje udaljeni sustav.
  • Pozivanje komunikacijskih rutina potrebnih za razgovor s udaljenim sustavom.
  • Rješavanje komunikacijskih pogrešaka i njihovo prikazivanje pozivatelju putem EXCEPTIONS parametar CALL FUNCTION.

RFC komunikacija između SAP sustavi

RFC je SAP protokol koji obrađuje komunikaciju između sustava i pojednostavljuje povezano programiranje. To je proces pozivanja funkcijskog modula koji se nalazi na drugom računalu od pozivajućeg programa. RFC-ovi se tehnički mogu koristiti za pozivanje funkcijskog modula na isti stroju, ali se najčešće koriste kada se pozivajući i pozvani programi izvode na odvojenim strojevima. RFC sustav sučelja koristi se za postavljanje RFC veza između različitih SAP sustavi, kao i između SAP i vanjski (ne-SAP) sustavi.

Detalji koje morate znati o RFC-u

  • SAP koristi CPIC protokol (Common Programming Interface for Communication) za prijenos podataka između sustava. CPIC je SAP-specifičan. RFC je komunikacijsko sučelje izgrađeno na CPI-C-u, ali s više funkcija i prilagođenijim okruženjem za programere aplikacija.
  • Funkcije RFC knjižnice podržavaju C programski jezik i Visual Basic na Windows platforme.
  • RFC veze rade na cijelom sustavu. RFC veza definirana u klijentu 000 može se koristiti i s klijenta 100 bez ikakve razlike.
  • RFC je protokol za pozivanje specijaliziranih potprograma (funkcijskih modula) preko mreže. Funkcijski moduli usporedivi su s C funkcijama ili Pascal procedurama: oni otkrivaju definirano sučelje putem kojeg se razmjenjuju podaci, tablice i povratni kodovi. Funkcijskim modulima se upravlja unutar SAP sustav u namjenskoj knjižnici, Graditelj funkcija.
  • Graditelj funkcija (transakcija SE37) pruža programerima aplikacija okruženje za pisanje, dokumentiranje i testiranje funkcijski moduli koji se mogu pozivati ​​lokalno i daljinski. Sustav automatski generira dodatni kod ( RFC završetak) potrebno za udaljene pozive.
  • RFC veze se održavaju pomoću transakcija SM59. SAP također šalje RFC-SDK (Komplet za razvoj softvera) koji koristi opsežne C biblioteke kako bi se vanjski programi mogli povezati s SAP sustav.
  • Jedina razlika između udaljenog poziva drugom poslužitelju i lokalnog poziva je DESTINATION parametar koji određuje ciljni poslužitelj na kojem bi se program trebao izvršavati.

Prednosti RFC-a

RFC smanjuje napor programiranja uklanjanjem potrebe za ponovnom implementacijom modula i metoda na udaljenom kraju. RFC sloj brine se o:

  • Pretvaranje podataka u format koji udaljeni (ciljni) sustav može razumjeti.
  • Pozivanje rutina potrebnih za uspostavljanje komunikacije s udaljenim sustavom.
  • Rješavanje grešaka koje se javljaju tijekom komunikacije.
  • Pružanje pouzdane transakcijske semantike kada se koriste transakcijske ili varijante u redu čekanja.

Vrste RFC-a

Vrste RFC-a

SAP podržava četiri RFC varijante. Svaka nudi drugačiji kompromis između latencije, pouzdanosti i jamstava naručivanja.

1. Synckronični RFC (sRFC)

SyncKronični RFC zahtijeva da i klijent i poslužitelj budu dostupni u trenutku poziva. To je najčešći tip i koristi se kad god pozivatelju treba rezultat odmah nakon izvršavanja.

sRFC je sredstvo komunikacije između sustava gdje se očekuju potvrde. Resursi izvornog sustava čekaju na ciljnom sustavu i osiguravaju da poruka stigne s ACK-om. Razmijenjeni podaci su konzistentni i pouzdani.

Nedostatak je taj što ako ciljni sustav nije dostupan, resursi izvornog sustava čekaju dok se on ne vrati, što može gurnuti procese izvornog sustava u način rada Sleep/RFC/CPIC na ciljnom sustavu i blokirati resurse.

Koristi za:

  • Komunikacija u stvarnom vremenu između sustava.
  • Komunikacija između SAP Web aplikacijski poslužitelj i SAP GUI.

2. Asinkroni RFC (aRFC)

Asinkroni RFC je komunikacija između sustava gdje nije potrebna potvrda - usporedivo s ispuštanjemping razglednica poštom. Oba sustava ne moraju biti dostupna u trenutku izvršavanja, a rezultat se ne vraća odmah pozivnom sustavu.

Resurs izvornog sustava ne čeka ciljni sustav; on isporučuje podatke i nastavlja dalje. Zbog toga je aRFC brz, ali ne i pouzdan sam po sebi - podaci se mogu izgubiti ako ciljni sustav nije dostupan.

Koristi za:

  • Komunikacija između sustava po principu "isključi i zaboravi".
  • Paralelna obrada u različitim sustavima.

3. Transakcijski RFC (tRFC)

Transakcijski RFC je poseban oblik asinhronog RFC-a. Osigurava transakcijsko rukovanje koracima obrade koji bi inače bili autonomni.

tRFC izvršava pozvani funkcijski modul na RFC poslužitelju točno jednom, čak i ako se podaci šalju više puta zbog problema s mrežom. Udaljeni sustav ne mora biti dostupan u trenutku kada RFC klijent pokreće poziv. tRFC komponenta pohranjuje pozvanu funkciju i njezine podatke u SAP baza podataka pod jedinstvenom ID transakcije (TID)Ako ciljni sustav nije dostupan, podaci se zapisuju u RFC tablice (vidljive u transakciji SM58) a kasnije ih je preuzeo izvještaj planera RSARFCSE, koji se izvodi svakih 60 sekundi.

Koristi za:

  • Proširenje asinhronog RFC-a s isporukom najviše jednom.
  • Pouzdana komunikacija između sustava gdje je važno izvršenje točno jednom.

4. RFC u redu čekanja (qRFC)

RFC u redu čekanja proširuje tRFC jamčeći da se pojedinačni koraci obrađuju u redoslijedu koji je odredila pozivajuća aplikacija. Kako bi se osiguralo da se više LUW-ova (Logičkih jedinica rada / transakcija) obrađuje u predviđenom redoslijedu, tRFC se može serijalizirati pomoću dolaznih i odlaznih redova čekanja - otuda i naziv "RFC u redu čekanja".

Koristi za:

  • Proširenje transakcijskog RFC-a strogim uređenjem.
  • Scenariji u kojima je definirani slijed obrade obavezan.
  • Slučajevi u kojima se nekoliko transakcija mora obraditi unaprijed definiranim redoslijedom.

Usporedba tipova RFC-a

Tip Pozivatelj čeka? Pouzdan? Naručeno? Najbolje za
sRFC Da Da N/A (jedan poziv) Pretrage u stvarnom vremenu
aRFC Ne Ne Ne Ispali i zaboravi, paralelni rad
tRFC Ne Da (točno jednom) Ne Pouzdana asinkrona ažuriranja
qRFC Ne Da (točno jednom) Da Strogo uređena ažuriranja

Vrste RFC veza

Vrste RFC veza

SM59 podržava nekoliko vrsta povezivanja. Tri s kojima ćete se najčešće susresti sažete su u nastavku.

Tip 3 — ABAP-ABAP

Unosi tipa 3 određuju vezu između ABAP sustaviNaziv hosta ili IP adresa su obavezni; podaci za prijavu mogu se navesti opcionalno. Tip 3 primjenjiv je i za RFC-ove između ABAP sustava i za vanjske pozive prema ABAP sustavima.

Tip I — Vrstni korisnik iste baze podataka

Unosi tipa I određuju ABAP sustave koji dijele istu bazu podataka kao i trenutni sustav. Ovi unosi su unaprijed definirani i ne mogu se mijenjati. Tipičan naziv unosa izgleda ovako ws0015_K18_24:

  • ws0015 — ime domaćina
  • K18 — naziv sustava (baze podataka)
  • 24 — Naziv TCP servisa

Tip T - Vanjski program

Odredišta tipa T povezuju se s vanjskim programima koji koriste RFC API za primanje RFC-ova. Vrsta aktivacije može biti bilo koja od Start or RegistracijaAko je u pitanju Start, potrebno je navesti naziv hosta i putanju programa koji se pokreće.

kako Code RFC

Izrada RFC-a od početka do kraja ima pet koraka. Prva tri su mehanički klikovi u SE37 i SM59; posljednja dva se odnose na dobivanje kon...tract desno.

Korak 1: Na kartici atributa funkcionalnog modula transakcije SE37, postavite vrstu obrade na Modul s daljinskim upravljanjem označiti funkcijski modul kao RFC-kompatibilan.

SE37 Modul s daljinskim upravljanjem

Korak 2: Napišite kod za funkcijski modul u editoru izvornog koda.

Izvorni kod funkcijskog modula

Korak 3: Definirajte odredište RFC poslužitelja u RFC klijentskom sustavu koji poziva udaljenu funkciju - što se radi u transakciji SM59.

Postavljanje odredišta SM59

Korak 4 — Deklariranje parametara: Sva polja parametara za udaljeni funkcijski modul moraju biti definirana kao referentna polja - to jest, unesena u polja ABAP rječnika. Vrijednosni parametri nisu dopušteni za udaljeno omogućene funkcijske module.

Korak 5 — Iznimke: Sustav podiže KOMUNIKACIJSKI_GREŠAK i KVAR_SUSTAVA interno na greškama na razini transporta. Iznimke na razini aplikacije mogu se izazvati unutar udaljene funkcije točno kao i u lokalnoj.

Otklanjanje pogrešaka poziva udaljenih funkcija

  • To je nije moguće otkloniti pogreške udaljeni poziv funkcije u sustav koji nije ABAP na klasičan način — strano okruženje za izvođenje je neprozirno.
  • Međutim, za ABAP-ABAP RFC pozive, ABAP debugger može se koristiti za praćenje izvršavanja RFC funkcije unutar udaljenog sustava.
  • S udaljenim pozivima, ABAP debugger (uključujući njegovo korisničko sučelje) radi na lokalnom sustavu. Vrijednosti podataka i ostale informacije o izvođenju za udaljenu funkciju šalju se natrag iz udaljenog sustava.

Ključ SAP RFC transakcije

Svakodnevni RFC alati svode se na nekoliko T-kodova koje bi svaki ABAP programer i Basis administrator trebao znati refleksno.

T-kod Svrha
SM59 Održavajte RFC odredišta - host, prijavu, tip, sigurnost.
SE37 Alat za izradu funkcija — stvaranje ili uređivanje modula funkcija s omogućenim daljinskim upravljanjem.
SM58 Pratite neuspješne transakcijske RFC-ove i ponovno ih obradite.
SMQ1 / SMQ2 Pratite izlazne (SMQ1) i ulazne (SMQ2) qRFC redove.
POVJERENJE Održavajte SSL certifikate koje koriste HTTPS-zaštićena RFC odredišta.
ST22 Pregledajte kratke izvatke uzrokovane neuspjelim udaljenim pozivima.

Najbolji primjeri iz prakse za SAP RFC

Dobro osmišljen RFC sloj omogućuje brze, uočljive i jednostavne integracije za razvoj. Sljedeće navike vrijedi ugraditi u svaki projekt.

  • Odaberite pravu varijantu za prevarutract. Koristite sRFC za sinkrone pretrage, tRFC za asinkrona ažuriranja s najviše jednim unosom i qRFC prilikom određivanja redoslijeda.
  • Ponovno upotrijebite jedno odredište po ciljnom sustavu umjesto širenja imena hostova na mnoga odredišta - vrši rotaciju vjerodajnica tracstol.
  • Nikada ne kodirajte vjerodajnice u ABAP-u. Koristite pouzdane sistemske veze ili sigurne prijave gdje je to moguće.
  • Redovito pratite SM58 i SMQ2. Zaglavljeni tRFC unosi tiho odgađaju poslovne procese dok se ponovno ne obrade.
  • Prosljeđujte samo parametre referentnog tipa. Parametri vrijednosti prekidaju module funkcija s omogućenim daljinskim upravljanjem.
  • Koristite STRUST za upravljanje TLS certifikatima za HTTPS odredišta — istekli certifikati glavni su uzrok misterioznih izvataka COMMUNICATION_FAILURE.

Pitanja i odgovori

RFC je protokol niske razine koji poziva bilo koji modul funkcije s omogućenim daljinskim upravljanjem. BAPI je specifičan, SAP-certificirani funkcijski modul koji otkriva stabilnu metodu poslovnog objekta — svaki BAPI je izložen putem RFC-a, ali ne svaki RFC poziv pogodi BAPI.

Pouzdani RFC je SM59 odredište gdje ciljni sustav vjeruje autentifikaciji pozivatelja, tako da se lozinka ne razmjenjuje pri svakom pozivu. Korisnički kontekst pozivatelja se širi. Uklanja fiksno kodirane vjerodajnice nauštrb strožeg postavljanja.

SM58 prikazuje neuspjele ili transakcijske RFC unose koji čekaju ponovnu obradu. Svaki redak sadrži ID transakcije, pozvani funkcijski modul, ciljno odredište, tekst pogreške i vrijeme posljednjeg ponovnog pokušaja.

Ne. RFC promet prema zadanim postavkama nije šifriran. SNC (Secure Network Communications) ili TLS/HTTPS odredišta moraju biti konfigurirana za šifriranje prometa. SNC je standardni mehanizam za produkcijske krajolike.

tRFC jamči da se poziv izvršava točno jednom, ali ne čuva redoslijed među pozivima. qRFC se temelji na tRFC-u i dodatno serijalizira pozive kroz dolazne ili odlazne redove, tako da se pozivi izvršavaju točno u redoslijedu koji je aplikacija definirala.

Da. Vanjski programi mogu se registrirati na SAP pristupnik pomoću RFC SDK-a (JCo za Java, NCo za .NET ili C SDK). SAP zatim ih poziva putem odredišta tipa T baš kao i bilo koji ABAP funkcijski modul.

AI asistenti generiraju ABAP RFC stubove iz specifikacija na prirodnom jeziku, predlažu pravu vrstu odredišta za scenarij i prevode tekst pogreške SM58 u konkretan popis ispravaka - ubrzavajući svakodnevni rad na integraciji za Basis i ABAP timove.

Da. Unesite ST22 dump ili SM58 grešku AI asistentu i on će povezati obrasce COMMUNICATION_FAILURE / SYSTEM_FAILURE s najvjerojatnijim uzrocima - istekli certifikat, pad pristupnika, nedostatak autorizacije - i predložiti relevantni T-kod za pregled.

Sažmite ovu objavu uz: