Co je RFC?
RFC je mechanismus, který umožňuje podnikovým aplikacím komunikovat a vyměňovat si informace (v předem definovaných formátech) s jinými systémy. RFC znamená „vzdálené volání funkce“
RFC se skládá ze dvou rozhraní:
- Volací rozhraní pro programy ABAP
- Volací rozhraní pro programy jiné než SAP.
Libovolný program ABAP může volat vzdálenou funkci pomocí příkazu CALL FUNCTION… DESTINATION . Parametr DESTINATION sděluje systému SAP, že volaná funkce běží v jiném systému než volající.Syntax-
FUNKCE HOVORU 'remotefunction'DESTINATION destVYVÁŽející f1 =DOVOZ f2 =TABULKY t1 =VÝJIMKY
Logické cíle jsou definovány prostřednictvím transakce SM59 a uloženy v tabulce RFCDES
Funkce rozhraní RFC
- Převod všech dat parametrů na reprezentaci potřebnou ve vzdáleném systému
- Volání komunikačních rutin potřebných pro komunikaci se vzdáleným systémem.
- Zpracování chyb komunikace a upozornění volajícího, je-li to požadováno (pomocí parametru VÝJIMKY FUNKCE VOLÁNÍ).
RFC je protokol SAP pro zpracování komunikace mezi systémy pro zjednodušení souvisejícího programování. Jedná se o proces volání funkčního modulu, který je umístěn na jiném stroji než volající program. RFC lze použít také k volání jiného programu na stejném stroji, ale obvykle se používá, když jsou na samostatných počítačích spuštěny funkční moduly / programy „volání“ a „volané“.
V systému SAP se systém rozhraní RFC používá k nastavení připojení RFC mezi různými systémy SAP a také mezi systémem SAP a externím (jiným než SAP) systémem.
Musíte znát podrobnosti o RFC
- SAP používá k přenosu dat mezi systémy protokol CPIC (Common Programming Interface for Communication). Je to specifický protokol SAP. Remote Function Call (RFC) je komunikační rozhraní založené na CPI-C, ale s více funkcemi a snadnějším používáním pro programátory aplikací
- Funkce knihovny RFC podporují programovací jazyk C a Visual Basic (na platformách Windows)
- Připojení RFC lze vždy použít v celém systému. To znamená, že připojení RFC, které jste definovali v klientovi 000, lze použít také od klienta 100 (bez rozdílu).
- RFC je protokol pro volání speciálních podprogramů (funkčních modulů) po síti. Funkční moduly jsou srovnatelné s funkcemi C nebo PASCAL. Mají definované rozhraní, přes které lze vyměňovat data, tabulky a návratové kódy. Funkční moduly jsou spravovány v systému R / 3 ve vlastní knihovně funkcí, která se nazývá Builder funkcí.
- Function Builder (transakce SE37) poskytuje aplikačním programátorům užitečné prostředí pro programování, dokumentaci a testování funkčních modulů, které lze volat lokálně i vzdáleně. Systém R / 3 automaticky generuje další kód (útržek RFC) potřebný pro vzdálená volání.
- Parametry pro připojení RFC udržujete pomocí transakce SM59. Systém R / 3 je dodáván také s RFC-SDK (Software Development Kit), která využívá rozsáhlé knihovny C, aby bylo možné k systému R / 3 připojit externí programy.
- Jediným rozdílem mezi vzdáleným voláním funkčního modulu na jiný server a místním voláním je speciální parametr (cíl), který určuje cílový server, na kterém má být program spuštěn.
Výhody RFC:
RFC pomáhá snižovat úsilí programátorů tím, že jim umožňuje vyhnout se opětovnému vývoji modulů a metod na vzdálených systémech. Je dostatečně schopný:
- Převeďte data do formátu srozumitelného pro vzdálený (cílový) systém.
- Převeďte data do formátu srozumitelného pro vzdálený (cílový) systém.
- Vyvolejte určité rutiny, které jsou nezbytné pro zahájení komunikace se vzdáleným systémem.
- Zpracujte chyby, které se mohou vyskytnout v procesu komunikace.
Typy RFC:
Synchronní
Vyžaduje, aby byly systémy (klient i server) k dispozici v době komunikace nebo přenosu dat. Je to nejběžnější typ a je vyžadován, když je výsledek vyžadován bezprostředně po provedení sRFC.
sRFC je prostředek komunikace mezi systémy, kde je vyžadováno potvrzení. Zdroje zdrojového systému čekají na cílovém systému a zajišťují, že doručují zprávu / data pomocí ACKD. Data jsou konzistentní a spolehlivá pro komunikaci.
Problém je v tom, že pokud cílový systém není k dispozici, zdroje zdrojového systému počkají, dokud nebude k dispozici cílový systém. To může vést k tomu, že procesy zdrojového systému přejdou do režimu spánku / RFC / CPIC v cílových systémech, a proto blokují tyto zdroje.
Používá
- Pro komunikaci mezi systémy
- Pro komunikaci mezi serverem SAP Web Application Server a SAP GUI
Asynchronní
Jedná se o komunikaci mezi systémy, kde se nepožaduje potvrzení (je to podobné jako u doručování pohlednic). Nevyžaduje, aby byly oba systémy k dispozici v době provedení, a výsledek nemusí být okamžitě odeslán zpět do volajícího systému .Prostředek zdrojového systému nečeká na cílový systém, protože doručuje zprávu / data bez čekání na potvrzení. Není to spolehlivé pro komunikaci, protože pokud není cílový systém k dispozici, může dojít ke ztrátě dat. Používá -
- Pro komunikaci mezi systémy
- Pro paralelní zpracování
Transakční
Jedná se o speciální formu aRFC. Transakční RFC zajišťuje transakční zpracování zpracování kroků, které byly původně autonomní.Transakční RFC je metoda asynchronní komunikace, která provádí volaný funkční modul na serveru RFC pouze jednou, a to i v případě, že jsou data odeslána několikrát kvůli nějakému problému se sítí. Vzdálený systém nemusí být k dispozici v době, kdy klientský program RFC provádí tRFC. Komponenta tRFC ukládá volanou funkci RFC společně s odpovídajícími daty do databáze SAP pod jedinečným ID transakce (TID). tRFC je podobný aRFC, protože nečeká v cílovém systému (podobně jako registrovaný příspěvek). Pokud systém není k dispozici, zapíše Data do tabulek aRFC s ID transakce (SM58), které vybere plánovač RSARFCSE (který běží každých 60 sekund). Používá-
- Rozšíření asynchronního RFC
- Pro bezpečnou komunikaci mezi systémy
Ve frontě
Queueed RFC is an extension of tRFC. Rovněž zajišťuje, že jednotlivé kroky jsou zpracovávány v pořadí.Aby bylo zajištěno, že bude zpracováno více LUW (logická jednotka práce / transakce) v pořadí stanoveném aplikací. tRFC lze serializovat pomocí front (příchozí a odchozí fronty). Proto byl název zařazen do fronty RFC (qRFC). Používá-
- Rozšíření transakčního RFC
- Pro definovanou sekvenci zpracování
- Implementace qRFC se doporučuje, pokud chcete zaručit, že bude několik transakcí zpracováno v předem definovaném pořadí.
Typy připojení RFC
Typ 3 - položky určují spojení mezi systémy ABAP. Zde musíme zadat název hostitele / IP adresu. V případě potřeby však můžete určit přihlašovací údaje. To platí pro oba typy RFC, mezi systémy ABAP a externími hovory do systémů ABAPTyp I - položky specifikují systémy ABAP připojené ke stejné databázi jako aktuální systém. Tyto položky jsou předdefinovány a nelze je měnit. Příklad názvu záznamu: ws0015_K18_24
- ws0015 = název hostitele
- K18 = název systému (název databáze)
- 24 = název služby TCP
Typ T - cíle jsou připojení k externím programům, které používají RFC API k přijímání RFC. Typ aktivace může být Start nebo Registrace. Pokud je to Start, musíte zadat název hostitele a cestu ke spuštění programu.
Jak kódovat RFC?
1. Na kartě atributů funkčních modulů (kód transakce SE37) nastavte typ zpracování jako Vzdálený povolený modul a vytvořte vzdálený funkční modul.
2. Napište kód funkčního modulu.
3. Definujte cíl serveru RFC v klientském systému RFC, který volá vzdálenou funkci (prostřednictvím transakce SM59).
4. Deklarování parametrů : Všechna pole parametrů pro vzdálený funkční modul musí být definována jako referenční pole, tj. Jako pole slovníku ABAP.5. Výjimky: Systém interně zvyšuje hodnoty COMMUNICATION_FAILURE a SYSTEM_FAILURE. Ve vzdálené funkci můžete vyvolat výjimky stejně jako v místně volané funkci.
Ladění vzdálených volání funkcí
- Je to možné ladit volání vzdálené funkce na jiný systém.
- Při testování volání RFC ABAP na ABAP však můžete pomocí debuggeru ABAP sledovat provádění funkce RFC ve vzdáleném systému.
- Se vzdálenými hovory běží ladicí program ABAP (včetně ladicího rozhraní) v místním systému. Hodnoty dat a další informace o běhu vzdálené funkce jsou předávány ze vzdáleného systému.