ABAP blog, távoli függvényhívás
Távoli függvényhívás (RFC, távoli függvényhívás) - szabványos interfész közötti adatcserére SAP és nem SAP rendszereket. adatinterfészt alapján CPI-C vagy TCP / IP. Normál hivatkozást RFC vagy BC415 természetesen.
Jellemzők RFC funkciók
- Amikor hívja az FM helyben működik ugyanabban a munkafolyamat a hívó. Ha hívja az FM távirányító, fut egy külön munkafolyamatban (LER - LUW, a logikai munkaegység), ha a távoli rendszer egy R / 3 rendszer.
- Mivel a távoli rendszerek lehetnek R / 3 rendszer, R / 2 rendszer vagy egyéb külső nem SAP rendszernek a nem-SAP rendszerekben van egy speciális RFC-SDK könyvtár, amellyel a kliens-szerver RFC végre lehet hajtani.
- Amikor felhívja a RFC modul a programban amelyben ez kiváltja implicit DB Commit (kivétel tRFC, qRFC, bgRFC). Ezért RFC hívásokat nem lehet a OpenSQL szereplők.
- A FM RFC felület kifejezetten meg kell meghatározni, hogy milyen típusú az egyes paraméterek, referencia (HASONLÓ) tilos.
Hozzárendelése RFC hívások
Hozzárendelése RFC híváshoz határozza meg egy kulcsszó cél. Paraméterként tudja fogadni távoli rendszer neve, hely, NINCS, VISSZA.
- SPACE - helyi hívás FM (alapértelmezett). Ha nem adja meg egy cél RFC híváshoz paramétereit, a funkció fog működni helyben szokásos módon anélkül, hogy azok LUW.
- NINCS - a helyi indítás ugyanaz, a fő különbség az, hogy a hívás érkezik a beállításoknak az átjáró, és jegyezték a távoli hívást. Hozd létre a DB LUW.
- BACK - használt szinkron RFC funkciók futtatásához RFC a rendszer funkcióit, amelyek miatt.
Kivételkezelés RFC hívások
Ha telefonál RFC alábbi kivételekkel előfordulhat modul:
- COMMUNICATION_FAILURE - akkor jelentkezik, ha a kapcsolat nincs beállítva, a megadott rendszer Cél mezőben, vagy ha a kapcsolat nem hozható létre.
- SYSTEM_FAILURE - akkor jelentkezik, amikor a távoli rendszer nem létezik Result Code, vagy abban az esetben, egyéb problémák RFC hívásokat.
- RESOURCE_FAILURE - akkor jelentkezik, ha hívja a aszinkron RFC, ha nincs szabad források az alkalmazás szerver csoport.
Típusok RFC funkciók:
- SinhronnyeRFC (sRFC) - hívásakor sRFC munkafolyamat felfüggeszti a működését, amíg nem kerül végrehajtásra sRFC modult. Modul kerül végrehajtásra egy külön DB LUW.
Abban az esetben, ha hívja a néhány sRFC sorban egy csoport funkciót, globális adatok a csoportba lesz elérhető, amíg nem lesz okozta utolsó funkciója a csoportban.
Ha a SRFC önmagában okoz hívás képernyő hívás tranzakció, vagy megjelenik egy lista által okozott képernyők jelennek meg a program elindul SRFC, de csak akkor, ha az SM59 Set interaktív távoli hozzáférést, különben a rendszer fog dobni egy kivételt SYSTEM_FAILURE.
- AsinhronnyeRFC hívások (aRFC) - távoli funkció működni kezd után azonnal párhuzamos hívást, a munkafolyamat nem áll meg működését. Az aszinkron hívás által kiváltott hívás FM kulcsszó: kezdve új feladat <ИмяЗадачи>. Modul kerül végrehajtásra egy külön DB LUW. aRFC is fel lehet használni a háttérben végrehajtását.
Mert aRFC eredményekre kell egy hívást, hogy pont az eredményeket a feldolgozási eljárás akkor adják a kulcsszó: ALAKÍTÓ <ИмяПроцедуры> A VÉGE feladat. Eljárás az első paraméter tartalmaznia kell a változó, amely lesz írva (ez nem egy változó neve értékek) a feladat nevét. Adatok lekéréséhez aRFC, ebben az eljárásban, a kötelező parancs használható (ha ez nincs beállítva az eljárásban, akkor a rendszer dobni egy kivételt - COMMUNICATION_FAILURE) fogadja az eredményeket a funkcióból <ИмяARFC>, c paraméterek IMPORTÁLÁSA TÁBLÁZATÁBAN kivételeket kell átvinni aRFC.
Az eljárás nem lehet a szervezetben szereplők, hogy megszakítaná a program, mint például: CALL SCREEN nyújt, COMMIT működik, várjon, RFC hívások, üzenetek típusai W és I.
Ahhoz, hogy várja meg a hívás van aRFC kulcsszó várjon, amíg <Условие>. Ha a hívás aRFC feltétel teljesül, a program azonnal megkezdi annak végrehajtását követően várja meg, amíg. Ha nem elégedett, a program ellenőrzi a feltételt újra. Ez a folyamat ismétlődik, amíg a feltétel teljesül, vagy nem teljesül minden aRFC hívásokat.
2. példa aRFC kiváltó program funkció és várja teljesítmény mind:
aRFC éppúgy, mint okozhat sRFC belső párbeszédek, de azok használatát kétségesnek tűnik ebben az összefüggésben részletesebben során (BC415).
Minden tRFC hívást tárolja a táblázatokban: ARFCSSTATE és ARFCSDATA. Ha nem szeretné hívni a tRFC után azonnal munkát véglegesítő, akkor hívja az FM START_OF_BACKGROUNDTASK (doCOMMITWORK), és állítsa be az időt és a dátumot az elején felhalmozott tRFC kéri.
Elvégzése után munkát véglegesítő esetében egy sikeres helyi frissítés (LUW részeként a fő program), az összegyűjtött adatok hátterének biztosítása feladat, abban az esetben sikeres befejezése után a feladat, az összes adatot a tRFC táblákat eltávolították. Ha a feladat nem fejeződött be, ismételje kiváltó mechanizmus vagy rollback.
Például, ha a kapcsolat nem jött létre a távoli rendszert, automatikusan elindul ismételje meg a műveletet. Az alapértelmezett ismétlések számát, 30, az időtúllépés 15 perc.
Abban az esetben, ha a második két tRFC hívás sikertelen, az üzenet az A típusú vagy X vagy megszüntetésére hívást EMEL után sikeres végrehajtása az első következő történik:
- Minden változás történt a jelenlegi LUW (és egyedül ő minden tRFC) állítja vissza
- Van egy rekordot a hívásnapló tRFC (tr. SM58)
Kényszeríteni visszaállítását minden változás vagy törlések tRFC-LUW FM - RESTART_OF_BACKGROUNDTASK.
Ha tRFC hívások fordulnak elő a különböző rendszerek (célállomás „A”, DESTIONATION „B”), ezek mindegyikére teremt tRFC-LUW, tRFC hívások vannak csoportosítva céljától függően.
Hívni a tRFC eltekintve a többi, akkor a kulcsszó: külön egységként.
Minden tRFC-LUW saját egyedi azonosítót, hogy felvegye, akkor az FM: ID_OF_BACKGROUNDTASK (ún előtt munkát véglegesítő). Ezzel azonosítója, akkor állapotának meghatározására tRFC-LUW keresztül FM - STATUS_OF_BACKGROUNDTASK.
- qRFC -RFC funkciók végre sorrendben. Ha tRFC nem tudjuk ellenőrizni az indítási sorrendben tRFC modul, más szóval, a sorrendben a hívást nem felel meg a sorrendet, amelyben futnak. qRFC ellentétben tRFC, lehetővé teszi számunkra, hogy ellenőrizzék a sorrendben, amelyben futni.
Egy hívás tRFC FIFO sorrendben (first-come, first-out) előtt szükség van minden tRFC hívás adja meg a sor nevét, ez történik a segítségével FM: TRFC_SET_QUEUE_NAME:
A nyomtatási sor neve tartalmazhat 24 karakter, kivéve a * és%.
Beadására qRFC tranzakciós SM58 helyett egy tranzakció - SMQ1. A táblázat, amelyben az adatok tárolása qRFC - TRFCQOUT.
További információk bgRFC van.
Ügyletek az, ha dolgozik az RFC
BAPI függvény
Az adatcsere üzleti SAP és nem SAP rendszereket is megállapításra került, az úgynevezett Business Framework. A középső rész az adattár üzleti objektum (BOR - Business Object Repository). Minden üzleti objektum egy objektum-orientált megközelítés az üzleti adatok tárolására és munka az üzleti folyamatokat. Például hívó módszerek az üzleti objektum, így manipulálni az adatokat üzleti, amelyért felelős, nem kell aggódni a technikai kérdés (linkek a táblázatokban, stb)
Az üzleti objektum az alábbi összetevőkből áll:
- Műszaki adatok - belső számot, az SAP kiadás számát a rendszer, amellyel elérhető, stb
- A felületek listáját által támogatott az objektum - interfész meghatározza a viselkedési objektumlistáját
- Főbb területek - attribútumok, mely egyedileg azonosítja egy tárgyat. (Megrendelés szám)
- Tulajdonságok - lehet egy mező az adatbázis és a számított, miközben dolgozik a tárgy (virtuális), hivatkozások más objektumok (Business Object „Megrendelés”, például lehetnek oldalakra mutató hivatkozásokat kívül házhozszállítása)
- Módszerek - képviseli hívások R / 3 tranzakció vagy más funkcionális modulok ABAP kód. BAPI csak képviseli a végrehajtási módszerek üzleti objektumokat.
- Események - főként a munkafolyamat. Például, hogy egy listát a szolgáltatók, hogy hozzon létre megrendelést.
BAPI - egy megvalósítása az üzleti objektum egy funkcionális modul RFC. BAPI nevezhetjük szinkronizáltan (munkát véglegesítő ANDWAIT), és aszinkron módon azaz várja a függvény végrehajtása vagy sem.
BAPI lehet különböző műveleteket az objektumot:
- objektum létrehozása
- Lekérdezés objektum attribútumai
- Változó objektum jellemzőinek
BAPI lehet nevezni a különböző alkalmazások: Office alkalmazások (via VBA), JAVA és C ++ programok és társaik
Minden BAPI után a folyamat visszatér egy belső táblázat az egyik szerkezetek: BAPIRETURN, BAPIRETURN1, BAPIRET1, BAPIRET2, BAPIRET1_FIX. Ebben a tekintetben a BAPI sem kivétel kezelése normál FM. Mindezek szerkezete tartalmazza az alábbi területeken:
- TYPE - az üzenet típusa: S (uccess), E (rror), W (FIGYELMEZTETŐ), I (NFORMÁCIÓK)
- ID (üzenet osztály)
- NUMBER (álláshelyek száma az osztályban)
- ÜZENET (szöveges üzenet)
- MESSAGE_V1, MESSAGE_V2, MESSAGE_V3, MESSAGE_V4 (változók hozzászólás)
Ha a tranzakció sikeres volt, akkor nem lesz VISSZA tábla rekordok típusú „E” hibákat. «S» jelen kell lennie az adott típusú hibaüzenetet.
A tanfolyam, amely foglalkozik létrehozása saját BAPI - BC417.