Remote Function Call (RFC) be SAP ABAP bemutató
⚡ Okos összefoglaló
A távoli függvényhívás (RFC) a SAP kommunikációs mechanizmus, amely lehetővé teszi egy ABAP program számára egy másik gépen futó függvénymodul meghívását SAP vagy külső rendszer. AbszolúttracEllenőrzi a hálózati vízvezetékeket, konvertálja az adatformátumokat, és a hibákat tisztán visszajelzi a hívónak.

Mi az RFC? SAP?
RFC jelentése Távoli függvényhívásEz az a mechanizmus, amely lehetővé teszi az üzleti alkalmazások számára, hogy – előre meghatározott formátumokban – kommunikáljanak és információkat cseréljenek más rendszerekkel. Az RFC a leggyakoribb módja ennek. SAP a rendszer kommunikál egymással, és egyben híd is, ami összeköti SAP rendszerek nemSAP alkalmazásokat.
Az RFC kétféle interfészt kínál:
- Hívófelület a következőhöz: ABAP programok.
- Hívófelület nemSAP programokat.
Bármely ABAP program meghívhat távoli függvényt a következő használatával: FUNKCIÓ HÍVÁSA… CÉL nyilatkozat. A DESTINATION paraméter megmondja a SAP olyan rendszer, amelyen a meghívott függvény a hívótól eltérő rendszeren fut.
Szintaxis
CALL FUNCTION 'remotefunction'
DESTINATION dest
EXPORTING f1 = ...
IMPORTING f2 = ...
TABLES t1 = ...
EXCEPTIONS ...
Logikai célállomások tranzakciókon keresztül definiálhatók SM59 és táblázatban tárolva RFCDES.
Az RFC interfész funkciói
Az RFC futtatókörnyezet minden hívásnál három dologért felelős:
- Az összes paraméteradat konvertálása a távoli rendszer által várt reprezentációra.
- A távoli rendszerrel való beszélgetéshez szükséges kommunikációs rutinok felhívása.
- Kommunikációs hibák kezelése és jelzése a hívó fél felé a
EXCEPTIONSparamétereCALL FUNCTION.
Az RFC a SAP egy protokoll, amely a rendszerek közötti kommunikációt kezeli és leegyszerűsíti a kapcsolódó programozást. Ez egy olyan függvénymodul meghívásának folyamata, amely egy másik gépen található, mint a hívó program. Technikailag RFC-k használhatók egy függvénymodul meghívására a azonos gépen, de leggyakrabban akkor használják őket, amikor a hívó és a meghívott programok külön gépeken futnak. Az RFC interfészrendszert különböző gépek közötti RFC kapcsolatok létrehozására használják. SAP rendszerek, valamint között SAP és külső (nemSAP) rendszerek.
Amit tudni kell az RFC-ről
- SAP használja az CPIC protokoll (Common Programming Interface for Communication) rendszerek közötti adatátvitelre. A CPIC SAP-specifikus. Az RFC egy CPI-C-re épülő kommunikációs interfész, de több funkcióval és felhasználóbarátabb felülettel az alkalmazásprogramozók számára.
- Az RFC könyvtár funkciói támogatják a C programozási nyelv és a Visual Basic bekapcsolva Windows platformokon.
- Az RFC-kapcsolatok a teljes rendszeren működnek. A 000-ás kliensben definiált RFC-kapcsolat a 100-as kliensről is használható különbség nélkül.
- Az RFC a specializált alprogramok (függvénymodulok) hálózaton keresztüli meghívásának protokollja. A függvénymodulok összehasonlíthatók a C függvényekkel vagy a Pascal eljárásokkal: egy definiált interfészt tesznek elérhetővé, amelyen keresztül az adatok, táblázatok és visszatérési kódok cserélődnek. A függvénymodulokat a... SAP rendszer egy erre a célra létrehozott könyvtárban, a Függvényszerkesztő.
- A függvényszerkesztő (tranzakció SE37) környezetet biztosít az alkalmazásprogramozók számára az íráshoz, dokumentáláshoz és tesztelés függvénymodulok, amelyek lokálisan és távolról is meghívhatók. A rendszer automatikusan generálja a kiegészítő kódot (a RFC-csonk) távoli hívásokhoz szükséges.
- Az RFC-kapcsolatok tranzakciók használatával kerülnek fenntartásra. SM59. SAP szállít egy RFC-SDK (Software Development Kit), amely kiterjedt C könyvtárakat használ, így külső programok is csatlakozhatnak a SAP rendszer.
- Az egyetlen különbség egy másik szerverre irányuló távoli hívás és egy helyi hívás között az, hogy
DESTINATIONparaméter, amely meghatározza azt a célkiszolgálót, amelyen a programnak futnia kell.
Az RFC előnyei
Az RFC csökkenti a programozási erőfeszítést azáltal, hogy kiküszöböli a modulok és metódusok újbóli megvalósításának szükségességét a távoli végén. Az RFC réteg a következőkről gondoskodik:
- Az adatok olyan formátumba konvertálása, amelyet a távoli (cél) rendszer megért.
- A távoli rendszerrel való kommunikáció beállításához szükséges rutinok meghívása.
- A kommunikáció során felmerülő hibák kezelése.
- Megbízható tranzakciós szemantika biztosítása tranzakciós vagy sorban álló változatok használata esetén.
Az RFC típusai
SAP négy RFC-változatot támogat. Mindegyik eltérő kompromisszumot kínál a késleltetés, a megbízhatóság és a rendezési garanciák között.
1. Synckrónikus RFC (sRFC)
SyncA hronous RFC megköveteli, hogy mind a kliens, mind a szerver elérhető legyen a hívás időpontjában. Ez a leggyakoribb típus, és akkor használják, amikor a hívónak a végrehajtás után azonnal szüksége van az eredményre.
Az sRFC egy olyan kommunikációs eszköz a rendszerek között, ahol nyugtákra van szükség. A forrásrendszer erőforrásai a célrendszeren várnak, és biztosítják, hogy az üzenet ACK-val érkezzen meg. A kicserélt adat konzisztens és megbízható.
A hátránya, hogy ha a célrendszer nem érhető el, a forrásrendszer erőforrásai megvárják, amíg visszajön, ami a forrásrendszer folyamatait alvó/RFC/CPIC módba helyezheti a célrendszeren, és blokkolhatja az erőforrásokat.
Használt:
- Valós idejű kommunikáció a rendszerek között.
- Kommunikáció a SAP Webes alkalmazáskiszolgáló és a SAP GUI.
2. Aszinkron RFC (aRFC)
Az aszinkron RFC olyan rendszerek közötti kommunikáció, ahol nincs szükség nyugtázásra – összehasonlítható a droppal.ping egy képeslap postán. Nem kell mindkét rendszernek elérhetőnek lennie a végrehajtás időpontjában, és az eredmény nem kerül azonnal vissza a hívó rendszernek.
A forrás-rendszer erőforrás nem vár a célrendszerre; kézbesíti az adatokat, majd továbbáll. Ezáltal az aRFC gyors, de önmagában nem megbízható – az adatok elveszhetnek, ha a célrendszer nem érhető el.
Használt:
- Tűz-és-elfelejt kommunikáció rendszerek között.
- Párhuzamos feldolgozás több rendszeren keresztül.
3. Tranzakciós RFC (tRFC)
A tranzakciós RFC az aszinkron RFC egy speciális formája. Biztosítja a feldolgozási lépések tranzakciószerű kezelését, amelyek egyébként autonóm módon történnének.
A tRFC pontosan egyszer hajtja végre a meghívott függvénymodult az RFC-kiszolgálón, még akkor is, ha az adatokat hálózati problémák miatt többször is elküldik. A távoli rendszernek nem kell elérhetőnek lennie abban a pillanatban, amikor az RFC-kliens futtatja a hívást. A tRFC komponens a meghívott függvényt és annak adatait a ... könyvtárban tárolja. SAP adatbázis egyedi Tranzakcióazonosító (TID)Ha a célrendszer nem érhető el, az adatok RFC-táblázatokba kerülnek (láthatóak a tranzakcióban). SM58) és később az ütemező jelentése is felvette RSARFCSE, amely 60 másodpercenként fut.
Használt:
- Aszinkron RFC kiterjesztése legfeljebb egyszeri kézbesítéssel.
- Megbízható kommunikáció rendszerek között, ahol a pontosan egyszeri végrehajtás számít.
4. Sorba állított RFC (qRFC)
A sorban álló RFC kiterjeszti a tRFC-t azáltal, hogy garantálja, hogy az egyes lépések a hívó alkalmazás által megadott sorrendben kerüljenek feldolgozásra. Annak érdekében, hogy több LUW (logikai munkaegység / tranzakció) a kívánt sorrendben kerüljön feldolgozásra, a tRFC bejövő és kimenő sorok segítségével szerializálható – innen ered a „sorban álló RFC” elnevezés.
Használt:
- Tranzakciós RFC kiterjesztése szigorú sorrenddel.
- Forgatókönyvek, ahol kötelező egy meghatározott feldolgozási sorrendet betartani.
- Azok az esetek, amikor több tranzakciót kell előre meghatározott sorrendben feldolgozni.
RFC-típusok összehasonlítása
| típus | Hívó vár? | Megbízható? | Megrendelve? | Legmegfelelőbb |
|---|---|---|---|---|
| sRFC | Igen | Igen | Nem alkalmazható (egyetlen hívás) | Valós idejű keresések |
| aRFC | Nem | Nem | Nem | Tűz-és-felejts, párhuzamos munka |
| tRFC | Nem | Igen (pontosan egyszer) | Nem | Megbízható aszinkron frissítések |
| qRFC | Nem | Igen (pontosan egyszer) | Igen | Szigorúan megrendelt frissítések |
Az RFC kapcsolatok típusai
Az SM59 számos csatlakozási típust támogat. Az alábbiakban összefoglaljuk a leggyakrabban előforduló hármat.
3. típus — ABAP-ról ABAP-ra
A 3-as típusú bejegyzések a következők közötti kapcsolatot határozzák meg: ABAP rendszerekA hosztnév vagy az IP-cím megadása kötelező; a bejelentkezési adatok opcionálisan megadhatók. A 3-as típus az ABAP rendszerek közötti RFC-kre és az ABAP rendszerekbe irányuló külső hívásokra egyaránt alkalmazható.
I. típus – Azonos adatbázisú partner
Az I. típusú bejegyzések olyan ABAP rendszereket határoznak meg, amelyek ugyanazt az adatbázist használják, mint az aktuális rendszer. Ezek a bejegyzések előre definiáltak és nem módosíthatók. Egy tipikus bejegyzésnév így néz ki: ws0015_K18_24:
- ws0015 — host név
- K18 — rendszer (adatbázis) neve
- 24 — TCP szolgáltatás neve
T típus – Külső program
A T típusú célállomások olyan külső programokhoz kapcsolódnak, amelyek RFC API-t használnak RFC-k fogadására. Az aktiválási típus lehet a következő: Rajt or RegisztrácioHa a Start, akkor meg kell adni az elindítandó program állomásnevét és elérési útját.
Hogyan Code egy RFC
Egy RFC teljes körű felépítése öt lépésből áll. Az első három mechanikus kattintás az SE37-ben és az SM59-ben; az utolsó kettő a con megszerzéséről szól.tracigazad van.
Lépés 1: A tranzakció függvénymodul attribútumai lapján SE37, állítsa be a feldolgozási típust erre: Távoli hozzáférésű modul hogy a függvénymodult RFC-képesként jelölje meg.
Lépés 2: Írd meg a függvénymodul kódját a forráskód-szerkesztőben.
Lépés 3: Az RFC-kiszolgáló célállomásának meghatározása az RFC kliensrendszerben, amely meghívja a távoli függvényt — tranzakcióban elvégezve SM59.
4. lépés – Paraméterek deklarálása: Egy távoli függvénymodul összes paramétermezőjét referenciamezőként kell definiálni – azaz ABAP szótár mezői alapján kell begépelni. A távoli használatra engedélyezett függvénymodulokhoz nem engedélyezettek az Érték paraméterek.
5. lépés – Kivételek: A rendszer emeli KOMMUNIKÁCIÓS_HIBA és a RENDSZERHIBA belsőleg szállítási szintű hibák esetén. Alkalmazásszintű kivételek egy távoli függvényen belül is generálhatók, pontosan úgy, mint egy helyi függvényben.
Távoli függvényhívások hibakeresése
- Ez nem lehetséges a hibakeresés egy távoli függvényhívás egy nem ABAP rendszerbe a klasszikus módon – a külső futási környezet átlátszatlan.
- ABAP-ABAP RFC hívások esetén azonban az ABAP hibakereső használható az RFC függvény végrehajtásának monitorozására a távoli rendszeren belül.
- Távoli hívásoknál az ABAP hibakereső (beleértve a felhasználói felületét is) a helyi rendszeren fut. A távoli függvény adatértékei és egyéb futásidejű információi a távoli rendszerről streamelődnek vissza.
Kulcs SAP RFC tranzakciók
A mindennapi RFC eszköztár néhány T-kódra redukálódik, amelyeket minden ABAP fejlesztőnek és Basis adminisztrátornak reflexből ismernie kellene.
| T-kód | Cél |
|---|---|
| SM59 | RFC célhelyek karbantartása — gazdagép, bejelentkezés, típus, biztonság. |
| SE37 | Függvényszerkesztő – távolról is elérhető függvénymodulok létrehozása vagy szerkesztése. |
| SM58 | Figyelemmel kíséri a sikertelen tranzakciós RFC-ket, és újra feldolgozza azokat. |
| SMQ1 / SMQ2 | Kimenő (SMQ1) és bejövő (SMQ2) qRFC sorok figyelése. |
| BIZALOM | HTTPS-védelemmel ellátott RFC-célhelyek által használt SSL-tanúsítványok karbantartása. |
| ST22 | Vizsgálja meg a sikertelen távoli hívások által okozott rövid memóriaképeket. |
A legjobb gyakorlatok SAP RFC
Egy jól megtervezett RFC réteg gyors, megfigyelhető és könnyen fejleszthető integrációkat biztosít. A következő szokásokat érdemes minden projektbe beépíteni.
- Válaszd ki a megfelelő változatot a hátrányhoztract. Használj sRFC-t szinkron lekérdezésekhez, tRFC-t legfeljebb egyszeri aszinkron frissítésekhez, és qRFC-t, ha a sorrend fontos.
- Célrendszerenként egy célhely újrafelhasználása ahelyett, hogy a hosztneveket sok célhelyre elosztaná, hitelesítő adatok rotációját teszi lehetővé tractáblázat.
- Soha ne fixen kódolt hitelesítő adatok ABAP-ban. Használjon megbízható rendszerkapcsolatokat vagy biztonságos bejelentkezési jegyeket, ahol lehetséges.
- Rendszeresen ellenőrizni kell az SM58 és SMQ2 szintjét. A beragadt tRFC bejegyzések csendben késleltetik az üzleti folyamatokat, amíg újra fel nem dolgozzák őket.
- Csak referencia típusú paramétereket adjon át. Az értékparaméterek távoli hozzáférésű függvénymodulokat bontnak.
- A STRUST használata TLS-tanúsítványok kezeléséhez HTTPS célállomások esetén – a lejárt tanúsítványok a rejtélyes COMMUNICATION_FAILURE hibamemória egyik fő okai.







