Remote Function Call (RFC) sisään SAP oppitunti
Mikä on RFC?
RFC on mekanismi, jonka avulla yrityssovellukset voivat kommunikoida ja vaihtaa tietoja (ennalta määritetyissä muodoissa) muiden järjestelmien kanssa. RFC tarkoittaa "Kaukotoimintopuhelu"
RFC koostuu kahdesta rajapinnasta:
- Kutsuva käyttöliittymä ABAP-ohjelmille
- Soittoliittymä ei-SAP ohjelmia.
mitään ABAP ohjelma voi kutsua etätoimintoa käyttämällä PUHELUTOIMINTO… KOHDE lausunto. The DESTINATION parametri kertoo SAP Järjestelmä, jossa kutsuttu toiminto toimii muussa järjestelmässä kuin soittajat.
Syntaksi-
CALL FUNCTION 'remotefunction' DESTINATION dest EXPORTING f1 = IMPORTING f2 = TABLES t1 = EXCEPTIONS
Loogiset kohteet määritetään tapahtuman kautta SM59 ja tallennettu taulukkoon RFCDES
RFC-liitännän toiminnot
- Muunnetaan kaikki parametritiedot etäjärjestelmässä tarvittavaan esitykseen
- Soittaminen viestintärutiineihin, joita tarvitaan etäjärjestelmän kanssa puhumiseen.
- Viestintävirheiden käsittely ja ilmoittaminen soittajalle, jos niin halutaan (käyttäen CALL FUNCTION -toiminnon EXCEPTIONS-parametria).
RFC on a SAP protokolla järjestelmien välisen viestinnän käsittelemiseksi ohjelmoinnin yksinkertaistamiseksi. Se on prosessi, jossa kutsutaan toimintomoduulia, joka sijaitsee eri koneessa kuin soittajaohjelma. RFC:tä voidaan käyttää kutsumaan myös eri ohjelmaa samalla koneella, mutta yleensä sitä käytetään, kun 'kutsut' ja 'kutsutut' toimintomoduulit/-ohjelmat ovat käynnissä eri koneissa.
In SAP, RFC-liitäntäjärjestelmää käytetään RFC-yhteyksien muodostamiseen erilaisten välillä SAP järjestelmätja myös välillä a SAP ja ulkoinen (ei-SAP) järjestelmä.
Täytyy tietää yksityiskohdat RFC:stä
- SAP Käyttää CPIC-protokollaa (Common Programming Interface for Communication) tiedonsiirtoon järjestelmien välillä. Se on SAP Erityinen protokolla. Remote Function Call (RFC) on CPI-C:hen perustuva viestintäliittymä, jossa on enemmän toimintoja ja helpompi sovellusohjelmoijien käyttää.
- RFC-kirjastotoiminnot tukevat C-ohjelmointikieli ja Visual Basic (päällä Windows alustat)
- RFC-yhteyksiä voidaan aina käyttää koko järjestelmässä. Tämä tarkoittaa, että asiakassovelluksessa 000 määrittelemääsi RFC-yhteyttä voidaan käyttää myös asiakkaasta 100 (ilman eroa).
- RFC on protokolla erityisten aliohjelmien (toimintomoduulien) kutsumiseksi verkon kautta. Funktiomoduulit ovat verrattavissa C-funktioihin tai PASCAL-proseduureihin. Niillä on määritelty rajapinta, jonka kautta tietoja, taulukoita ja palautuskoodeja voidaan vaihtaa. Toimintomoduuleja hallitaan R/3-järjestelmässä niiden omassa funktiokirjastossa, nimeltään Function Builder.
- Function Builder (transaction SE37) tarjoaa sovellusohjelmoijille hyödyllisen ympäristön ohjelmointiin, dokumentointiin ja Testaus toimintomoduulit, joita voidaan kutsua paikallisesti tai etänä. R/3-järjestelmä luo automaattisesti lisäkoodin (RFC stub), jota tarvitaan etäpuheluihin.
- Ylläpidät RFC-yhteyksien parametreja käyttämällä tapahtumaa SM59. R/3-järjestelmän mukana toimitetaan myös RFC-SDK (Software Development Kit), joka käyttää laajoja C-kirjastoja mahdollistaakseen ulkoisten ohjelmien liittämisen R/3-järjestelmään.
- Ainoa ero toimintomoduulin etäkutsun toiselle palvelimelle ja paikallispuhelun välillä on erityinen parametri (kohde), joka määrittää kohdepalvelimen, jolla ohjelma suoritetaan.
RFC:n edut
RFC auttaa vähentämään ohjelmoijien ponnisteluja antamalla heidän välttää moduulien ja menetelmien uudelleenkehittämistä etäjärjestelmissä. Se pystyy tarpeeksi:
- Muunna tiedot etäjärjestelmän (kohde) ymmärtämään muotoon.
- Muunna tiedot etäjärjestelmän (kohde) ymmärtämään muotoon.
- Kutsu tiettyjä rutiineja, jotka ovat välttämättömiä yhteyden aloittamiseksi etäjärjestelmän kanssa.
- Käsittele viestintäprosessissa mahdollisesti ilmeneviä virheitä.
RFC-tyypit
Synckrooninen
Edellyttää, että molemmat järjestelmät (asiakas ja palvelin) ovat käytettävissä tiedonsiirron tai tiedonsiirron aikana. Se on yleisin tyyppi ja sitä tarvitaan, kun tulosta vaaditaan välittömästi sRFC:n suorittamisen jälkeen.
sRFC on järjestelmien välinen viestintäväline, jossa vaaditaan kuittauksia. Lähdejärjestelmän resurssit odottavat kohdejärjestelmää ja varmistavat, että ne toimittavat viestin/datan ACKD:llä. Tiedot ovat johdonmukaisia ja luotettavia viestintää varten.
Ongelmana on, että jos kohdejärjestelmä ei ole saatavilla, lähdejärjestelmän resurssit odottavat, kunnes kohdejärjestelmä on käytettävissä. Tämä voi johtaa siihen, että lähdejärjestelmän prosessit siirtyvät lepotilaan/RFC/CPIC-tilaan kohdejärjestelmissä ja siten estävät nämä resurssit.
Käytetään
- Järjestelmien väliseen viestintään
- välistä viestintää varten SAP Web-sovelluspalvelimeen SAP GUI
asynkroninen
Se on järjestelmien välistä viestintää, jossa kuittauksia ei vaadita (se on samanlainen kuin postikorttitoimitus). Se ei edellytä sekä järjestelmien olevan käytettävissä suoritushetkellä että tulosta ei tarvitse lähettää välittömästi takaisin kutsuvaan järjestelmään. .
Lähdejärjestelmän resurssi ei odota kohdejärjestelmää, koska se toimittaa viestin/datan odottamatta kuittausta. Se ei ole luotettava tiedonsiirtoon, koska tiedot voivat kadota, jos kohdejärjestelmä ei ole käytettävissä. Käytetään -
- Järjestelmien väliseen viestintään
- Rinnakkaiseen käsittelyyn
kaupallisen
Se on aRFC:n erityinen muoto. Transaktionaalinen RFC varmistaa alun perin itsenäisten käsittelyvaiheiden tapahtumamaisen käsittelyn.
Transaktionaalinen RFC on asynkroninen viestintämenetelmä, joka suorittaa kutsutun toimintomoduulin RFC-palvelimessa vain kerran, vaikka dataa lähetettäisiin useita kertoja verkko-ongelman vuoksi. Etäjärjestelmän ei tarvitse olla käytettävissä silloin, kun RFC-asiakasohjelma suorittaa tRFC:tä. tRFC-komponentti tallentaa kutsutun RFC-funktion yhdessä vastaavien tietojen kanssa SAP tietokanta yksilöllisen tapahtumatunnuksen (TID) alla. tRFC on samanlainen kuin aRFC, koska se ei odota kohdejärjestelmässä (samanlainen kuin kirjattu posti). Jos järjestelmä ei ole käytettävissä, se kirjoittaa tiedot aRFC-taulukoihin tapahtumatunnuksella (SM58), jonka valitsee ajoittaja RSARFCSE (joka suoritetaan 60 sekunnin välein). Käytetty -
- Asynkronisen RFC:n laajennus
- Turvalliseen tiedonsiirtoon järjestelmien välillä
Jonossa
Jono-RFC on tRFC:n laajennus. Se myös varmistaa, että yksittäiset vaiheet käsitellään peräkkäin. Taataan, että useat LUW:t (looginen työn/tapahtuman yksikkö) käsitellään sovelluksen määrittämässä järjestyksessä. tRFC voidaan sarjottaa käyttämällä jonoja (saapuvien ja lähtevien jonot). Tästä johtuu nimi queued RFC (qRFC). Käytetty -
- Transaction RFC:n laajennus
- Määritellylle käsittelyjaksolle
- qRFC:n käyttöönotto on suositeltavaa, jos haluat taata, että useita tapahtumia käsitellään ennalta määritetyssä järjestyksessä.
RFC-yhteyksien tyypit
Tyyppi 3 – merkinnät määrittelevät yhteyden ABAP-järjestelmät. Tässä meidän on määritettävä isäntänimi / IP-osoite. Voit kuitenkin halutessasi määrittää kirjautumistiedot. Tämä koskee molempia RFC-tyyppejä, ABAP-järjestelmien välillä ja ulkoisia kutsuja ABAP-järjestelmiin
Tyyppi I - merkinnät määrittävät ABAP-järjestelmät, jotka on yhdistetty samaan tietokantaan kuin nykyinen järjestelmä. Nämä merkinnät ovat ennalta määritettyjä, eikä niitä voi muuttaa. Esimerkkimerkinnän nimi: ws0015_K18_24
- ws0015=isäntänimi
- K18=järjestelmän nimi (tietokannan nimi)
- 24=TCP-palvelun nimi
Tyyppi T – Kohteet ovat yhteyksiä ulkoisiin ohjelmiin, jotka käyttävät RFC API:ta RFC:iden vastaanottamiseen. Aktivointityyppi voi olla joko aloitus tai rekisteröinti. Jos se on Käynnistä, sinun on määritettävä käynnistettävän ohjelman isäntänimi ja polkunimi.
Kuinka koodata RFC?
1) Aseta toimintomoduulin attribuutit-välilehdellä (tapahtumakoodi SE37) käsittelytyypiksi Remote-enabled module luodaksesi etätoimintomoduulin.
2) Kirjoita toimintomoduulin koodi.
3) Määritä etätoimintoa kutsuvan RFC-palvelimen kohde RFC-asiakasjärjestelmässä (SM59-tapahtuman kautta).
4) Parametrien ilmoittaminen: Kaikki etätoimintomoduulin parametrikentät on määritettävä viitekentiksi, eli kuten ABAP-sanakirjakentiksi.
5) Poikkeukset: Järjestelmä nostaa COMMUNICATION_FAILURE ja SYSTEM_FAILURE sisäisesti. Voit nostaa poikkeuksia etäfunktiossa aivan kuten tekisit paikallisesti kutsutussa funktiossa.
Etätoimintokutsujen virheenkorjaus
- On virheenkorjaus ei ole mahdollista etätoimintokutsu toiseen järjestelmään.
- Kuitenkin, kun testaat ABAP-ABAP RFC-kutsuja, voit käyttää ABAP-debuggeria RFC-toiminnon suorittamisen seuraamiseen etäjärjestelmässä.
- Etäpuheluiden yhteydessä ABAP-debuggeri (mukaan lukien virheenkorjausliittymä) toimii paikallisessa järjestelmässä. Data-arvot ja muut etätoiminnon ajotiedot välitetään etäjärjestelmästä.