Távoli funkcióhívás (RFC) az SAP bemutatóban

Tartalomjegyzék:

Anonim

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:

  1. Hívó felület az ABAP programok számára
  2. 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.