Mikä on RFC?
RFC on mekanismi, jonka avulla yrityssovellukset voivat kommunikoida ja vaihtaa tietoja (ennalta määritetyissä muodoissa) muiden järjestelmien kanssa. RFC on lyhenne sanoista 'Remote Function Call'
RFC koostuu kahdesta rajapinnasta:
- Kutsuva käyttöliittymä ABAP-ohjelmille
- Soittorajapinta muille kuin SAP-ohjelmille.
Mikä tahansa ABAP-ohjelma voi kutsua etätoimintoa käskyllä CALL FUNCTION… DESTINATION . KOHDE parametri kertoo SAP-järjestelmän, että sanottu funktio toimii muu järjestelmä kuin soittajille.Syntaksi-
CALL FUNCTION 'etätoiminto'DESTINATION destVIENTI f1 =TUONTI f2 =TAULUKOT t1 =POIKKEUKSET
Loogiset kohteet määritetään tapahtuman SM59 kautta ja tallennetaan RFC-rajapinnan taulukkoon RFCDES-
toiminnot
- Muunna kaikki parametritiedot etäjärjestelmässä tarvittavaksi esitykseksi
- Etäjärjestelmän puhumiseen tarvittavien viestintärutiinien soittaminen.
- Tiedonsiirtovirheiden käsittely ja tarvittaessa soittajan ilmoittaminen (käyttämällä PUHELUTOIMINNON parametria EXCEPTIONS).
RFC on SAP-protokolla, joka käsittelee järjestelmien välistä viestintää yksinkertaistamaan siihen liittyvää ohjelmointia. Se on toimintomoduulin kutsumisprosessi, joka asuu eri koneessa kuin soittajaohjelma. RFC: itä voidaan käyttää myös eri koneiden kutsumiseen samalla koneella, mutta yleensä sitä käytetään, kun 'kutsuvat' ja 'kutsutut' toimintomoduulit / ohjelmat ovat käynnissä erillisillä koneilla.
SAP: ssä RFC-liitäntäjärjestelmää käytetään RFC-yhteyksien luomiseen eri SAP-järjestelmien välillä sekä SAP: n ja ulkoisen (ei-SAP) järjestelmän välillä.
Täytyy tietää yksityiskohtia RFC: stä
- SAP käyttää CPIC (Common Programming Interface for Communication) -protokollaa tiedonsiirtoon järjestelmien välillä. Se on SAP-spesifinen protokolla. RFC (Remote Function Call) on CPI-C-pohjainen tietoliikenneliitäntä, mutta siinä on enemmän toimintoja ja sovellusohjelmoijien helppo käyttää
- RFC-kirjastotoiminnot tukevat C-ohjelmointikieliä ja Visual Basicia (Windows-alustoilla)
- RFC-yhteyksiä voidaan aina käyttää koko järjestelmässä, mikä tarkoittaa, että asiakkaan 000 määrittelemää RFC-yhteyttä voidaan käyttää myös asiakkaalta 100 (ilman eroa).
- RFC on protokolla erityisten aliohjelmien (toimintomoduulien) kutsumiseksi verkon kautta. Toimintomoduulit ovat verrattavissa C-toimintoihin tai PASCAL-menettelyihin. Heillä on määritelty käyttöliittymä, jonka kautta tietoja, taulukoita ja palautuskoodeja voidaan vaihtaa. Toimintomoduuleja hallitaan R / 3-järjestelmässä omassa toimintokirjastossaan, nimeltään Function Builder.
- Function Builder (tapahtuma SE37) tarjoaa sovellusohjelmoijille hyödyllisen ympäristön toimintomoduulien ohjelmointiin, dokumentointiin ja testaamiseen, joita voidaan kutsua sekä paikallisesti että etänä. R / 3-järjestelmä luo automaattisesti etäpuheluihin tarvittavan lisäkoodin (RFC-tynkä).
- Ylläpidät parametrit RFC-yhteyksille käyttämällä tapahtumaa SM59. R / 3-järjestelmä toimitetaan myös RFC-SDK: n (Software Development Kit) kanssa, joka käyttää laajoja C-kirjastoja, jotta ulkoiset ohjelmat voidaan liittää 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 uudelleen kehittämistä etäjärjestelmissä. Se pystyy tarpeeksi:
- Muunna tiedot kauko- (kohde) järjestelmän ymmärrettävään muotoon.
- Muunna tiedot kauko- (kohde) järjestelmän ymmärrettävään muotoon.
- Kutsu tietyt rutiinit, jotka ovat välttämättömiä tiedonsiirron aloittamiseksi etäjärjestelmän kanssa.
- Käsittele viestinnässä mahdollisesti esiintyviä virheitä.
RFC-tyypit:
Synkroninen
Edellyttää, että molemmat järjestelmät (asiakas ja palvelin) ovat käytettävissä tiedonsiirron tai tiedonsiirron aikana. Se on yleisin tyyppi ja vaaditaan, kun tulos vaaditaan heti sRFC: n suorittamisen jälkeen.
sRFC on viestintäväline järjestelmien välillä, joissa vaaditaan kuittauksia. Lähdejärjestelmän resurssit odottavat kohdejärjestelmää ja varmistavat, että ne toimittavat viestin / datan ACKD: n kanssa. Tiedot ovat johdonmukaisia ja luotettavia viestinnän kannalta.
Ongelma on, jos kohdejärjestelmää ei ole käytettävissä, 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 estävät näin nämä resurssit.
Käytetään
- Järjestelmien väliseen viestintään
- Yhteydenpitoon SAP-verkkosovelluspalvelimen ja SAP-käyttöliittymän välillä
Asynkroninen
Se on järjestelmien välinen tiedonsiirto, jossa kuittauksia ei vaadita (se on samanlainen kuin postikortin toimitus) .Se ei vaadi, että molemmat järjestelmät ovat käytettävissä suoritushetkellä, eikä tulosta tarvitse välittömästi lähettää takaisin soittavalle järjestelmälle .Lähdejärjestelmän resurssi ei odota kohdejärjestelmää, koska se toimittaa viestin / datan odottamatta mitään kuittausta. Se ei ole luotettava tiedonsiirtoon, koska data voi kadota, jos kohdejärjestelmää ei ole käytettävissä. Käytetään -
- Järjestelmien väliseen viestintään
- Rinnakkaiskäsittelyä varten
Kaupallinen
Se on erityinen aRFC-muoto. Transactionional RFC varmistaa alun perin itsenäisten käsittelyvaiheiden tapahtumamaisen käsittelyn.Kaupallinen RFC on asynkroninen viestintämenetelmä, joka suorittaa kutsutun toimintomoduulin RFC-palvelimessa vain kerran, vaikka tietoja lähetettäisiin useita kertoja jonkin verkon ongelman vuoksi. Etäjärjestelmän ei tarvitse olla käytettävissä, kun RFC-asiakasohjelma suorittaa tRFC: tä. TRFC-komponentti tallentaa kutsutun RFC-toiminnon yhdessä vastaavien tietojen kanssa SAP-tietokantaan yksilöllisen tapahtuman tunnuksen (TID) alle. tRFC on samanlainen kuin aRFC, koska se ei odota kohdejärjestelmässä (samanlainen kuin rekisteröity post). Jos järjestelmää ei ole käytettävissä, se kirjoittaa tiedot aRFC-taulukoihin, joissa on tapahtuman tunnus (SM58), jonka ajastin RSARFCSE valitsee (joka toimii 60 sekunnin välein). Käytetty
- Asynkronisen RFC: n laajennus
- Turvalliseen tiedonsiirtoon järjestelmien välillä
Jonossa
Jonossa oleva RFC on tRFC: n laajennus. Se varmistaa myös, että yksittäiset vaiheet käsitellään peräkkäin.Sen varmistamiseksi, että useita LUW-tiedostoja (looginen työ- / tapahtumayksikkö) käsitellään sovelluksen määrittelemässä järjestyksessä. tRFC voidaan sarjoittaa käyttämällä jonoja (saapuvat ja lähtevät jonot). Tästä syystä nimi oli jonossa RFC (qRFC). Käytetty
- Kaupallisen RFC: n laajennus
- Määritetylle prosessointisekvenssille
- QRFC: n käyttöönottoa suositellaan, jos haluat taata, että useita tapahtumia käsitellään ennalta määritetyssä järjestyksessä.
RFC-yhteyksien tyypit
Tyyppi 3 - merkinnät määrittävät ABAP-järjestelmien välisen yhteyden. Tässä meidän on määritettävä isäntänimi / IP-osoite. Voit kuitenkin määrittää kirjautumistiedot haluttaessa. Tämä koskee molempia RFC-tyyppejä, ABAP-järjestelmien ja ABAP-järjestelmien ulkoisten puhelujen välillä,tyyppi I - merkinnät määrittävät ABAP-järjestelmät, jotka on kytketty samaan tietokantaan kuin nykyinen järjestelmä. Nämä merkinnät ovat ennalta määriteltyjä, eikä niitä voi muokata. Esimerkki merkinnästä: 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-sovellusliittymää RFC: n vastaanottamiseen. Aktivointityyppi voi olla joko Käynnistä tai Rekisteröinti. Jos se on Käynnistä, sinun on määritettävä käynnistettävän ohjelman isäntänimi ja polku.
Kuinka koodata RFC?
1. Määritä toimintomoduulin määritteet -välilehdessä (tapahtumakoodi SE37) prosessointityypiksi Etäkäyttöinen moduuli etätoimintomoduulin luomiseksi.
2. Kirjoita toimintomoduulin koodi.
3. Määritä RFC-palvelimen kohde RFC-asiakasjärjestelmässä, joka kutsuu etätoimintoa (SM59-tapahtuman kautta).
4.Parametrien ilmoittaminen : Kaikki etätoimintomoduulin parametrikentät on määritettävä viitekentiksi, kuten ABAP-sanakentät.5.Poikkeukset: Järjestelmä nostaa sisäisesti COMMUNICATION_FAILURE ja SYSTEM_FAILURE. Voit nostaa poikkeuksia etätoiminnossa samalla tavalla kuin paikallisesti kutsutulla toiminnolla.
Etätoimintojen puheluiden virheenkorjaus
- Etätoimintakutsu ei ole mahdollista virheenkorjausta toiseen järjestelmään.
- ABAP-ABAP-RFC-puheluita testattaessa voit kuitenkin käyttää ABAP-virheenkorjainta seuraamaan RFC-toiminnon suorittamista etäjärjestelmässä.
- Etäpuheluissa ABAP-virheenkorjausohjelma (mukaan lukien virheenkorjausrajapinta) toimii paikallisessa järjestelmässä. Etätoiminnon data-arvot ja muut ajotiedot välitetään etäjärjestelmästä.