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.

  • 📡 Alapmechanizmus: A CALL FUNCTION…DESTINATION egy függvénymodult hív meg az SM59-ben definiált logikai célállomáson.
  • 🔁 Négy változat: SyncA krónikus, aszinkron, tranzakciós és sorban álló RFC-k mindegyike eltérő kézbesítési konvenciót garantál.tract.
  • 🌐 Csatlakozási típusok: Az SM59 támogatja a 3-as típust (ABAP-to-ABAP), az I-es típust (azonos adatbázisú peer-ek) és a T-típust (külső programok).
  • 🇧🇷 Építési útvonal: Állítsd a függvénymodult távoli engedélyezésre az SE37-ben, kódold le, és definiáld a célállomást az SM59-ben a hívó félnél.
  • 🤖 AI szög: A mesterséges intelligencia asszisztensei természetes nyelvi specifikációkból ABAP RFC csonkokat generálnak, és az SM58 hibákat cselekvésre ösztönző javításokká elemzik.

Az RFC interfész funkciói

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:

  1. Hívófelület a következőhöz: ABAP programok.
  2. 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 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 EXCEPTIONS paramétere CALL FUNCTION.

RFC kommunikáció a következők között: SAP rendszerek

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 DESTINATION paramé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

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 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.

SE37 Távoli vezérlésű modul

Lépés 2: Írd meg a függvénymodul kódját a forráskód-szerkesztőben.

Függvénymodul forráskódja

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.

SM59 célállomás beállítása

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.

GYIK

Az RFC egy alacsony szintű protokoll, amely bármely távoli hozzáférésű függvénymodult meghív. A BAPI egy specifikus, SAP-minősített függvénymodul, amely egy stabil üzleti objektum metódust tesz elérhetővé – minden BAPI elérhetővé válik RFC-n keresztül, de nem minden RFC-hívás találkozik BAPI-val.

A megbízható RFC egy SM59 célhely, ahol a célrendszer megbízik a hívó hitelesítésében, így minden híváskor nem kerül jelszó cserére. A hívó felhasználói kontextusa továbbításra kerül. A fixen kódolt hitelesítő adatokat szigorúbb beállítások árán távolítja el.

Az SM58 megjeleníti a sikertelen vagy függőben lévő, újrafeldolgozásra váró tranzakciós RFC bejegyzéseket. Minden sor tartalmazza a tranzakcióazonosítót, a meghívott függvénymodult, a célállomást, a hibaüzenet szövegét és az utolsó újrapróbálkozás időpontját.

Nem. Alapértelmezés szerint az RFC forgalom titkosítatlan. Az SNC (Secure Network Communications) vagy TLS/HTTPS célállomásokat konfigurálni kell a forgalom titkosítására. Az SNC a szabványos mechanizmus az éles környezetekben.

A tRFC garantálja, hogy egy hívás pontosan egyszer kerül végrehajtásra, de nem őrzi meg a sorrendet a hívások között. A qRFC a tRFC-re épül, és emellett szerializálja a hívásokat a bejövő vagy kimenő sorokon keresztül, így a hívások pontosan az alkalmazás által meghatározott sorrendben futnak.

Igen. Külső programok regisztrálhatnak egy SAP átjáró az RFC SDK használatával (JCo for Java, NCo for .NET vagy a C SDK). SAP majd egy T típusú célállomáson keresztül hívja meg őket, mint bármely ABAP függvénymodul.

A mesterséges intelligencia asszisztensei természetes nyelvi specifikációkból ABAP RFC csonkokat generálnak, javaslatot tesznek a megfelelő célhelytípusra egy adott forgatókönyvhöz, és az SM58 hibaüzenetet konkrét javítási listává alakítják – felgyorsítva ezzel a Basis és az ABAP csapatok napi integrációs munkáját.

Igen. Adja meg egy mesterséges intelligencia asszisztensnek az ST22 dump vagy az SM58 hibát, és az összeveti a COMMUNICATION_FAILURE / SYSTEM_FAILURE mintákat a legvalószínűbb kiváltó okokkal – lejárt tanúsítvány, nem működő átjáró, hiányzó jogosultság –, és javaslatot tesz a vonatkozó T-kódra a vizsgálathoz.

Foglald össze ezt a bejegyzést a következőképpen: