Mi az RFC?
Az RFC 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ás”
Az RFC két interfészből áll:
- Hívó felület az ABAP programok számára
- Hívó felület nem SAP programokhoz.
Bármely ABAP program hívhat távoli funkciót a CALL FUNCTION… DESTINATION utasítással. A DESTINATION paraméter megmondja az SAP rendszernek, hogy a hívott függvény a hívó féltől eltérő rendszerben fut.Szintaxis-
HÍVÁS FUNKCIÓ 'távfunkció'CÉL rendeltetési helyExportálás f1 =IMPORTÁLÓ f2 =TÁBLÁZATOK t1 =KIVÉTELEK
A logikai célokat az SM59 tranzakción keresztül határozzuk meg, és az RFC interfész tábla RFCDES függvényei tároljuk
- Az összes paraméteradat konvertálása a távoli rendszerben szükséges ábrázolásra
- A távoli rendszerrel való beszélgetéshez szükséges kommunikációs rutinok hívása.
- Kommunikációs hibák kezelése és szükség esetén a hívó értesítése (a HÍVÁS FUNKCIÓ EXCEPTIONS paraméterének használatával).
Az RFC egy SAP protokoll, amely a rendszerek közötti kommunikációt kezeli a kapcsolódó programozás egyszerűsítése érdekében. Ez egy olyan funkciómodul hívásának folyamata, amely a hívó programtól eltérő gépen található. Az RFC-k felhasználhatók egy másik program meghívására ugyanazon a gépen, de általában akkor használják, ha a hívó és az úgynevezett funkció modulok / programok külön gépeken futnak.
Az SAP-ban az RFC interfész rendszert használják RFC kapcsolatok létrehozására különböző SAP rendszerek, valamint egy SAP és egy külső (nem SAP) rendszer között.
Tudnia kell az RFC részleteiről
- Az SAP a rendszerek közötti adatátvitelhez CPIC (Common Programming Interface for Communication) protokollt használ. Ez az SAP-specifikus protokoll. A Távoli funkcióhívás (RFC) egy kommunikációs interfész, amely a CPI-C-n alapul, de több funkcióval rendelkezik, és az alkalmazás-programozók számára könnyebben használható
- Az RFC könyvtárfunkciók támogatják a C programozási nyelvet és a Visual Basic programot (Windows platformokon)
- Az RFC-kapcsolatok mindig használhatók a teljes rendszerben. Ez azt jelenti, hogy a 000-es kliensben definiált RFC-kapcsolat a 100-as ügyféltő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ának protokollja. A funkciómodulok összehasonlíthatók a C funkciókkal 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 rendszer kezeli a saját függvénykönyvtárukban, az úgynevezett Function Builder néven.
- A Function Builder (SE37 tranzakció) hasznos környezetet biztosít az alkalmazás-programozók számára a funkciómodulok programozásához, dokumentálásához és teszteléséhez, amelyek helyileg és távolról is meghívhatók. Az R / 3 rendszer automatikusan előállítja a távoli hívásokhoz szükséges kiegészítő kódot (RFC csonkot).
- Az SM59 tranzakció segítségével fenntartja az RFC-kapcsolatok paramétereit. Az R / 3 rendszert egy RFC-SDK-val (Software Development Kit) is szállítják, amely kiterjedt C könyvtárak segítségével lehetővé teszi külső programok csatlakoztatását az R / 3 rendszerhez.
- A funkciómodul távoli hívása egy másik szerver és a helyi hívás között az egyetlen különbség egy speciális paraméter (cél), amely meghatározza azt a célszervert, amelyen a programot futtatni 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 távoli rendszerek moduljainak és módszereinek újrafejlesztését. Elég képes:
- Konvertálja az adatokat a távoli (cél) rendszer számára érthető formátumba.
- Konvertálja az adatokat a távoli (cél) rendszer számára érthető formátumba.
- Hívjon be 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:
Szinkron
Megköveteli, hogy mind a rendszerek (kliens, mind szerver) rendelkezésre álljanak a kommunikáció vagy az adatátvitel idején. Ez a leggyakoribb típus, és akkor szükséges, ha az eredményre az sRFC végrehajtása után azonnal szükség van.
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 várakoznak a célrendszerre, és biztosítják, hogy az üzenetet / adatokat az ACKD-vel továbbítsák. Az adatok következetesek és megbízhatóak a kommunikáció szempontjából.
A probléma az, ha a célrendszer nem áll rendelkezésre, a forrásrendszer erőforrásai megvárják, amíg rendelkezésre áll a célrendszer. Ez ahhoz vezethet, hogy a forrásrendszer folyamatai alvó / RFC / CPIC módba lépnek a célrendszereken, és így blokkolja ezeket az erőforrásokat.
Használt
- A rendszerek közötti kommunikációhoz
- Az SAP Web Application Server és az SAP GUI közötti kommunikációhoz
Aszinkron
Ez olyan rendszerek közötti kommunikáció, ahol nincs szükség nyugtázásra (hasonló a képeslap kézbesítéséhez). Ehhez nem szükséges, hogy mindkét rendszer rendelkezésre álljon a végrehajtáskor, é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 minden nyugtázás várakozása nélkül továbbítják az üzenetet / adatokat. Kommunikáció szempontjából nem megbízható, mivel az adatok elveszhetnek, ha a célrendszer nem áll rendelkezésre. Használt -
- A rendszerek közötti kommunikációhoz
- Párhuzamos feldolgozáshoz
Tranzakciós
Az aRFC 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 meghívott funkciómodult az RFC szerveren, még akkor is, ha az adatokat valamilyen hálózati probléma miatt többször is elküldik. A távoli rendszernek nem kell rendelkezésre állnia, amikor az RFC kliens program tRFC-t hajt végre. A tRFC komponens az úgynevezett RFC funkciót a megfelelő adatokkal együtt az SAP adatbázisban tárolja egyedi tranzakcióazonosító (TID) alatt. A tRFC hasonlít az aRFC-hez, mivel nem vár a célrendszernél (hasonló a regisztrált postához). Ha a rendszer nem érhető el, akkor az adatokat beírja az aRFC táblákba 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ó érdekében
Sorban
A várakozási sorban lévő RFC a tRFC kiterjesztése. Biztosítja továbbá, hogy az egyes lépéseket egymás után dolgozzák fel.Annak garantálása, hogy több LUW (logikai munka / tranzakció egység) kerül feldolgozásra az alkalmazás által meghatározott sorrendben. A tRFC sorosíthatók sorok (bejövő és kimenő sorok) segítségével. Ezért a név az RFC (qRFC) sorba állt. Használt-
- A tranzakciós RFC kiterjesztése
- Meghatározott feldolgozási sorrendhez
- A qRFC megvalósítása akkor ajánlott, ha garantálni kívánja, hogy több tranzakciót előre meghatározott sorrendben dolgozzanak fel.
Az RFC-kapcsolatok típusai
3. típus - a bejegyzések meghatározzák az ABAP rendszerek közötti kapcsolatot. Itt meg kell adnunk a gazdagép nevét / IP-címét. Igény esetén azonban megadhatja a bejelentkezési információkat. Ez mindkét típusú RFC-re vonatkozik, az ABAP rendszerek és az ABAP rendszerek külső hívásai között.I típus - a bejegyzések megadják az ABAP rendszereket, amelyek ugyanabba az adatbázisba vannak csatlakoztatva, mint a jelenlegi rendszer. Ezek a bejegyzések előre meghatározottak, és nem módosíthatók. Példa a bejegyzés nevére: ws0015_K18_24
- ws0015 = hosztnév
- K18 = rendszer neve (adatbázis neve)
- 24 = TCP-szolgáltatás neve
T típus - a célállomások olyan külső programok kapcsolatai, amelyek az RFC API-t használják az RFC-k fogadására. Az aktiválási típus lehet Start vagy Regisztráció. Ha Start, akkor meg kell adnia az indítandó program hosztnevét és útvonalnevét.
Hogyan kell kódolni egy RFC-t?
1. A távvezérlő modul létrehozásához a Funkciómodul attribútumok lapon (SE37 tranzakciós kód) állítsa be a feldolgozás típusát Távvezérelt modulként.
2. Írja be a funkciómodul kódját.
3. Határozza meg az RFC kiszolgáló rendeltetési helyét az RFC kliens rendszerben, amely meghívja a távoli funkciót (SM59 tranzakcióval).
4. Paraméterek deklarálása : A távoli funkciómodul összes paramétermezőjét referenciamezőként kell definiálni, például az ABAP Dictionary mezőkhöz.5. Kivételek: A rendszer belsőleg felveti a COMMUNICATION_FAILURE és a SYSTEM_FAILURE elemeket. Kivételeket emelhet egy távoli funkcióban, ugyanúgy, mint egy helyileg nevezett funkcióban.
Távoli funkcióhívások hibakeresése
- A távoli funkcióhívást nem lehet hibakeresni egy másik rendszer felé.
- Az ABAP – ABAP RFC hívások tesztelésekor azonban az ABAP hibakeresővel figyelemmel kísérheti az RFC funkció távoli rendszerben történő végrehajtását.
- Távoli hívások esetén az ABAP hibakereső (a hibakereső felülettel együtt) a helyi rendszeren fut. A távoli funkcióhoz tartozó értékeket és egyéb futtatási információkat a távoli rendszer továbbítja.