Remote Function Call (RFC) be SAP Kezdőknek
Mi az az RFC?
Az RFC egy olyan mechanizmus, amely lehetővé teszi az üzleti alkalmazások számára, hogy kommunikáljanak és információt cseréljenek (előre meghatározott formátumokban) más rendszerekkel. Az RFC jelentése "Távoli funkció hívása"
Az RFC két interfészből áll:
- Az ABAP programok hívófelülete
- Hívó interfész nemSAP programokat.
Bármilyen ABAP program segítségével távoli funkciót hívhat meg FUNKCIÓ HÍVÁSA… CÉL nyilatkozat. A RENDELTETÉSI HELY paraméter megmondja a SAP Rendszer, amelyen a hívott függvény a hívóktól eltérő rendszerben fut.
Szintaxis-
CALL FUNCTION 'remotefunction' DESTINATION dest EXPORTING f1 = IMPORTING f2 = TABLES t1 = EXCEPTIONS
A logikai célállomások meghatározása tranzakción keresztül történik SM59 és a táblázatban tároljuk RFCDES
Az RFC interfész funkciói
- Az összes paraméteradat átalakítása a távoli rendszerben szükséges 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 a hívó értesítése, ha szükséges (a HÍVÁS FUNKCIÓ KIVÉTELEK paraméterével).
Az RFC a SAP protokoll a rendszerek közötti kommunikáció kezelésére a kapcsolódó programozás egyszerűsítése érdekében. Ez egy olyan funkciómodul meghívásának folyamata, amely a hívó programtól eltérő gépen található. Az RFC-k egy másik program meghívására is használhatók ugyanazon a gépen, de általában akkor használják, ha a "hívás" és a "hívott" funkciómodulok/programok különálló gépeken futnak.
In SAP, Az RFC interfész rendszert a különböző RFC kapcsolatok létrehozására használják SAP rendszerek, valamint a között is SAP és egy külső (nemSAP) rendszer.
Részleteket kell tudni az RFC-ről
- SAP CPIC (Common Programming Interface for Communication) protokollt használ a rendszerek közötti adatátvitelhez. Ez az SAP Speciális protokoll. A Remote Function Call (RFC) egy CPI-C-n alapuló kommunikációs interfész, de több funkcióval és az alkalmazásprogramozók számára könnyebben használható
- Az RFC könyvtár funkciói támogatják a C programozási nyelv és Visual Basic (be Windows platformok)
- Az RFC kapcsolatok mindig az egész rendszerben használhatók. Ez azt jelenti, hogy a 000-as kliensben meghatározott RFC-kapcsolat a 100-as klienstől is használható (különbség nélkül).
- Az RFC a speciális alprogramok (funkciómodulok) hálózaton keresztüli hívására szolgáló protokoll. A függvénymodulok összehasonlíthatók a C függvényekkel vagy a PASCAL eljárásokkal. Meghatározott interfésszel rendelkeznek, amelyen keresztül adatok, táblák és visszatérési kódok cserélhetők. A funkciómodulokat az R/3 rendszerben a saját függvénykönyvtárukban, a Function Builder-ben kezelik.
- A Function Builder (SE37 tranzakció) hasznos környezetet biztosít az alkalmazásprogramozóknak programozáshoz, dokumentáláshoz és Tesztelés helyben és távolról is hívható funkciómodulok. Az R/3 rendszer automatikusan generálja a távoli hívásokhoz szükséges kiegészítő kódot (RFC csonk).
- Az RFC kapcsolatok paramétereit az SM59 tranzakcióval karbantarthatja. Az R/3 rendszert egy RFC-SDK-val (Szoftverfejlesztő készlet) is szállítják, amely kiterjedt C-könyvtárakat használ, amelyek lehetővé teszik külső programok csatlakoztatását az R/3 rendszerhez.
- Az egyetlen különbség a függvénymodul távoli hívása egy másik szerverhez és a helyi hívás között egy speciális paraméter (cél), amely meghatározza a célkiszolgálót, amelyen a programot végrehajtani kell.
Az RFC előnyei
Az RFC segít csökkenteni a programozók erőfeszítéseit, lehetővé téve számukra, hogy elkerüljék a modulok és módszerek újrafejlesztését a távoli rendszereken. Eléggé képes a következőkre:
- Alakítsa át az adatokat a távoli (cél)rendszer számára érthető formátumba.
- Alakítsa át az adatokat a távoli (cél)rendszer számára érthető formátumba.
- Hívjon elő bizonyos rutinokat, amelyek szükségesek a távoli rendszerrel való kommunikáció megkezdéséhez.
- Kezelje a kommunikáció során előforduló hibákat.
Az RFC típusai
Synchronus
Megköveteli, hogy mindkét rendszer (kliens és szerver) elérhető legyen a kommunikáció vagy az adatátvitel időpontjában. Ez a leggyakoribb típus, és akkor szükséges, ha az sRFC végrehajtása után azonnal meg kell adni az eredményt.
Az sRFC egy olyan kommunikációs eszköz a rendszerek között, ahol nyugtázásra van szükség. A Forrásrendszer erőforrásai a célrendszeren várakoznak, és biztosítják, hogy ACKD-vel kézbesítsék az üzenetet/adatokat. Az adatok következetesek és megbízhatóak a kommunikációhoz.
A probléma az, hogy ha a célrendszer nem elérhető, a forrásrendszer erőforrásai megvárják, amíg a célrendszer elérhetővé válik. Ez oda vezethet, hogy a forrásrendszer folyamatai alvó/RFC/CPIC módba lépnek a célrendszereken, és így blokkolják ezeket az erőforrásokat.
Használható
- A rendszerek közötti kommunikációhoz
- közötti kommunikációhoz SAP Web Application Server a SAP GUI
Aszinkron
Olyan rendszerek közötti kommunikációról van szó, ahol nincs szükség nyugtázásra (hasonló a képeslap kézbesítéshez). Nem szükséges, hogy a rendszer a végrehajtás pillanatában elérhető legyen, és az eredményt nem kell azonnal visszaküldeni a hívó rendszernek. .
A forrásrendszer erőforrása nem várja meg a célrendszert, mivel azok kézbesítik az üzenetet/adatokat anélkül, hogy bármilyen visszaigazolásra várnának. Kommunikáció szempontjából nem megbízható, mivel adatok elveszhetnek, ha a célrendszer nem elérhető. Használt -
- A rendszerek közötti kommunikációhoz
- Párhuzamos feldolgozáshoz
Tranzakciós
Ez az aRFC egy speciális formája. A tranzakciós RFC biztosítja az eredetileg autonóm feldolgozási lépések tranzakciószerű kezelését.
A tranzakciós RFC egy aszinkron kommunikációs módszer, amely csak egyszer hajtja végre a hívott funkciómodult az RFC-kiszolgálón, még akkor is, ha valamilyen hálózati probléma miatt többször is elküldik az adatokat. A távoli rendszernek nem kell elérhetőnek lennie abban az időben, amikor az RFC kliensprogram tRFC-t hajt végre. A tRFC komponens a hívott RFC függvényt a megfelelő adatokkal együtt tárolja a SAP egyedi tranzakcióazonosító (TID) alatt. A tRFC hasonló az aRFC-hez, mivel nem vár a célrendszernél (Hasonló az ajánlott küldeményhez). Ha a rendszer nem elérhető, az adatokat aRFC táblákba írja egy tranzakcióazonosítóval (SM58), amelyet az RSARFCSE ütemező választ ki (amely 60 másodpercenként fut). Használt-
- Az aszinkron RFC kiterjesztése
- A rendszerek közötti biztonságos kommunikációhoz
Sorban
A Queued RFC a tRFC kiterjesztése. Azt is biztosítja, hogy az egyes lépések egymás után feldolgozásra kerüljenek. Annak garantálására, hogy több LUW-t (logikai munkaegység/tranzakció) dolgozzanak fel az alkalmazás által meghatározott sorrendben. A tRFC sorosozható sorokkal (bejövő és kimenő sorok). Innen származik a sorba állított RFC (qRFC) név. Használt-
- A tranzakciós RFC kiterjesztése
- Egy meghatározott feldolgozási sorrendhez
- A qRFC bevezetése akkor javasolt, ha garantálni szeretné, hogy több tranzakció előre meghatározott sorrendben kerüljön feldolgozásra.
Az RFC kapcsolatok típusai
Típus 3 – bejegyzések határozzák meg a közötti kapcsolatot ABAP rendszerek. Itt meg kell adnunk a gazdagép nevét / IP-címét. Szükség esetén azonban megadhatja a bejelentkezési információkat. Ez mindkét típusú RFC-re vonatkozik, az ABAP rendszerek közötti és az ABAP rendszerek külső hívásaira
I-es típus - A bejegyzések megadják az ABAP rendszereket, amelyek ugyanahhoz az adatbázishoz kapcsolódnak, mint az aktuális rendszer. Ezek a bejegyzések előre meghatározottak és nem módosíthatók. Példabejegyzésnév: ws0015_K18_24
- ws0015=gazda neve
- K18=rendszernév (adatbázis neve)
- 24=TCP-szolgáltatás neve
T típus – A célállomások olyan külső programokhoz való kapcsolatok, amelyek az RFC API-t használják az RFC-k fogadására. Az aktiválás típusa lehet Start vagy Regisztráció. Ha Start, akkor meg kell adni az indítandó program gazdagépnevét és elérési útját.
Hogyan lehet RFC-t kódolni?
1) A funkciómodul attribútumai lapon (SE37 tranzakciókód) állítsa be a feldolgozási típust Távoli funkció modulra, hogy létrehozzon egy távoli funkciómodult.
2) Írja be a funkciómodul kódját.
3) Határozza meg az RFC-kiszolgáló célhelyét az RFC-kliens rendszerben, amely meghívja a távoli funkciót (SM59 tranzakción keresztül).
4) Paraméterek deklarálása: A távoli funkciómodul összes paramétermezőjét referenciamezőként kell megadni, azaz mint az ABAP szótár mezőit.
5) Kivételek: A rendszer belsőleg emeli a COMMUNICATION_FAILURE és SYSTEM_FAILURE paramétereket. A távoli függvényekben ugyanúgy felvehet kivételeket, mint a helyileg hívott függvényeknél.
Távoli függvényhívások hibakeresése
- Ez nem lehetséges a hibakeresés távoli funkcióhívás egy másik rendszerhez.
- Az ABAP-ABAP RFC hívások tesztelésekor azonban használhatja az ABAP hibakeresőt az RFC funkció végrehajtásának figyelésére a távoli rendszerben.
- Távoli hívások esetén az ABAP hibakereső (beleértve a hibakereső felületet is) a helyi rendszeren fut. A távoli funkció adatértékei és egyéb futtatási információi a távoli rendszerről kerülnek átadásra.