Vzdálené volání funkcí (RFC) in SAP konzultace

Co je RFC?

RFC je mechanismus, který umožňuje obchodní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í:

  1. Volací rozhraní pro programy ABAP
  2. Rozhraní pro volání proSAP programy.

Žádný program ABAP může volat vzdálenou funkci pomocí FUNKCE VOLÁNÍ...CÍL prohlášení. The DESTINACE parametr říká SAP Systém, ve kterém volaná funkce běží v jiném systému než volající.

Syntax-

CALL FUNCTION 'remotefunction'

DESTINATION dest

EXPORTING f1 =

IMPORTING f2 =

TABLES t1 =

EXCEPTIONS

Logická místa určení jsou definována 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.
  • Ošetření komunikačních chyb a v případě potřeby upozornění volajícího (pomocí parametru VÝJIMKY ve FUNKCI CALL).

Funkce rozhraní RFC

RFC je a SAP protokol pro zpracování komunikace mezi systémy pro zjednodušení souvisejícího programování. Je to proces volání funkčního modulu, který se nachází na jiném počítači než volající program. RFC lze také použít k volání jiného programu na stejném stroji, ale obvykle se používá, když „volání“ a „volané“ funkční moduly/programy běží na samostatných strojích.

Funkce rozhraní RFC

In SAP, RFC Interface systém se používá pro nastavení RFC spojení mezi různými SAP systémya také mezi a SAP a externí (neSAP) Systém.

Musíte vědět podrobnosti o RFC

  • SAP K přenosu dat mezi systémy používá protokol CPIC (Common Programming Interface for Communication). To je SAP Specifický protokol. Vzdálené volání funkcí (RFC) je komunikační rozhraní založené na CPI-C, ale s více funkcemi a jednodušší pro programátory aplikací.
  • Funkce knihovny RFC podporují C programovací jazyk a Visual Basic (zap Windows platformy)
  • 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é z klienta 100 (bez rozdílu).
  • RFC je protokol pro volání speciálních podprogramů (funkčních modulů) přes síť. Funkční moduly jsou srovnatelné s funkcemi C nebo procedurami 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 v jejich vlastní knihovně funkcí, nazývané Function Builder.
  • Funkce Builder (transakce SE37) poskytuje aplikačním programátorům užitečné prostředí pro programování, dokumentaci a Testování funkční moduly, které lze volat lokálně i vzdáleně. Systém R/3 automaticky generuje dodatečný 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 také dodáván se sadou RFC-SDK (Software Development Kit), která využívá rozsáhlé knihovny C umožňující připojení externích programů k systému R/3.
  • Jediný rozdíl 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 (destinace), který určuje cílový server, na kterém má být program spuštěn.

Výhody RFC

RFC pomáhá snížit úsilí programátorů tím, že jim umožňuje vyhnout se opětovnému vývoji modulů a metod ve 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.
  • Ošetřete chyby, které se mohou vyskytnout v procesu komunikace.

Typy RFC

Typy RFC

Synchronosný

Vyžaduje, aby oba systémy (klient i server) byly dostupné 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 ihned po provedení sRFC.

sRFC je prostředek komunikace mezi systémy, kde jsou vyžadována potvrzení. Prostředky zdrojového systému čekají na cílový systém a zajišťují, aby doručily zprávu/data s ACKD. Data jsou konzistentní a spolehlivá pro komunikaci.

Problém je v tom, že pokud cílový systém není dostupný, zdroje zdrojového systému počkají, dokud nebude dostupný cílový systém. To může vést k tomu, že procesy zdrojového systému přejdou v cílových systémech do režimu spánku/RFC/CPIC, a tím tyto zdroje zablokují.

Používá se pro

  • Pro komunikaci mezi systémy
  • Pro komunikaci mezi SAP Webový aplikační server na SAP GUI

Asynchronní

Jedná se o komunikaci mezi systémy, kde se nevyžadují potvrzení (je podobná doručování pohlednic). Nevyžaduje, aby byly oba systémy v době provádění k dispozici, a není vyžadováno okamžité zaslání výsledku zpět volajícímu systému. .

Zdroj zdrojového systému nečeká na cílový systém, protože doručuje zprávu/data, aniž by čekal na jakékoli potvrzení. Není spolehlivý pro komunikaci, protože data mohou být ztracena, pokud cílový systém není dostupný. 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í kroků zpracování, které byly původně autonomní.

Transakční RFC je asynchronní komunikační metoda, která provede volaný funkční modul na serveru RFC pouze jednou, i když jsou data odeslána vícekrát kvůli nějakému problému se sítí. Vzdálený systém nemusí být dostupný v době, kdy klientský program RFC provádí tRFC. Komponenta tRFC ukládá volanou funkci RFC spolu s odpovídajícími daty v SAP databáze pod jedinečným ID transakce (TID). tRFC je podobné aRFC, protože nečeká u cílového systému (podobně jako doporučená pošta). Pokud systém není dostupný, 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ě

Queued RFC je rozšířením tRFC. Zajišťuje také postupné zpracování jednotlivých kroků. Aby bylo zaručeno, že více LUW (Logical Unit of Work/Transaction) bude zpracováno v pořadí specifikovaném aplikací. tRFC lze serializovat pomocí front (příchozí a odchozí fronty). Odtud název ve frontě 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 několik transakcí bude zpracováno v předem definovaném pořadí.

Typy RFC připojení

Typy RFC připojení

Zadejte 3 – záznamy určují spojení mezi Systémy ABAP. Zde musíme zadat jméno hostitele / IP adresu. V případě potřeby však můžete zadat přihlašovací údaje. To platí pro oba typy RFC, mezi systémy ABAP a externími voláními do systémů ABAP

Typ I - položky specifikují systémy ABAP připojené ke stejné databázi jako aktuální systém. Tyto položky jsou předdefinované a nelze je upravovat. Příklad názvu položky: 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 pro příjem 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) V záložce atributy funkčního modulu (kód transakce SE37) nastavte typ zpracování jako Remote-enabled module pro vytvoření vzdáleného funkčního modulu.

Jak kódovat RFC

2) Napište kód pro funkční modul.

Jak kódovat RFC

3) Definujte cíl RFC serveru v klientském systému RFC, který volá vzdálenou funkci (přes transakci SM59).

Jak kódovat RFC

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ě vyvolá COMMUNICATION_FAILURE a SYSTEM_FAILURE. Ve vzdálené funkci můžete vyvolat výjimky stejně jako v lokálně volané funkci.

Ladění vzdálených volání funkcí

  • To je není možné ladit vzdálené volání funkce do jiného systému.
  • Při testování volání RFC ABAP-to-ABAP však můžete použít ladicí program ABAP ke sledování provádění funkce RFC ve vzdáleném systému.
  • Při vzdálených voláních běží ladicí program ABAP (včetně ladícího rozhraní) na místním systému. Hodnoty dat a další informace o běhu pro vzdálenou funkci jsou předávány ze vzdáleného systému.