Remote Function Call (RFC) sisään SAP ABAP opetusohjelma
⚡ Älykäs yhteenveto
Etäfunktiokutsu (RFC) on SAP viestintämekanismi, jonka avulla ABAP-ohjelma voi kutsua toisessa koneessa käynnissä olevaa funktiomoduulia SAP tai ulkoinen järjestelmä. Se abstracTarkistaa verkon putkiston, muuntaa tietomuodot ja näyttää virheet selkeästi takaisin soittajalle.
Mikä on RFC? SAP?
RFC tarkoittaa EtäfunktiokutsuSe on mekanismi, jonka avulla liiketoimintasovellukset voivat kommunikoida ja vaihtaa tietoa – ennalta määritellyissä muodoissa – muiden järjestelmien kanssa. RFC on yleisin tapa SAP järjestelmä kommunikoi toisen kanssa, ja se on myös silta, joka yhdistää SAP järjestelmiin ei-SAP sovelluksissa.
RFC tarjoaa kaksi rajapintaa:
- Kutsuva käyttöliittymä ABAP-ohjelmat.
- Kutsuva käyttöliittymä muille kuinSAP ohjelmia.
Mikä tahansa ABAP-ohjelma voi käynnistää etäfunktion käyttämällä PUHELUTOIMINTO… KOHDE lausunto. The DESTINATION parametri kertoo SAP järjestelmä, jossa kutsuttu funktio suoritetaan eri järjestelmässä kuin kutsuja.
Syntaksi
CALL FUNCTION 'remotefunction'
DESTINATION dest
EXPORTING f1 = ...
IMPORTING f2 = ...
TABLES t1 = ...
EXCEPTIONS ...
Loogiset kohteet määritellään transaktion kautta SM59 ja tallennettu taulukkoon RFCDES.
RFC-liitännän toiminnot
RFC-ajonaikainen ympäristö vastaa kolmesta asiasta jokaisessa kutsussa:
- Muuntaa kaikki parametritiedot etäjärjestelmän odottamaan esitystapaan.
- Soittaminen viestintärutiineihin, joita tarvitaan etäjärjestelmän kanssa puhumiseen.
- Viestintävirheiden käsittely ja niiden ilmoittaminen soittajalle
EXCEPTIONSparametriCALL FUNCTION.
RFC on SAP protokolla, joka käsittelee järjestelmien välistä kommunikaatiota ja yksinkertaistaa siihen liittyvää ohjelmointia. Se on prosessi, jossa kutsutaan funktiomoduulia, joka sijaitsee eri koneella kuin kutsuva ohjelma. RFC:itä voidaan teknisesti käyttää funktiomoduulin kutsumiseen sama koneella, mutta niitä käytetään useimmiten silloin, kun kutsuva ja kutsuttu ohjelma suoritetaan eri koneilla. RFC-rajapintajärjestelmää käytetään RFC-yhteyksien muodostamiseen eri koneiden välille SAP järjestelmät, samoin kuin välillä SAP ja ulkoinen (ei-SAP) järjestelmät.
RFC:n pakolliset tiedot
- SAP käyttää CPIC protokolla (Common Programming Interface for Communication) tiedonsiirtoon järjestelmien välillä. CPIC on SAP-kohtainen. RFC on CPI-C:n päälle rakennettu tietoliikennerajapinta, mutta siinä on enemmän toimintoja ja sovellusohjelmoijille käyttäjäystävällisempi käyttöliittymä.
- RFC-kirjastotoiminnot tukevat C-ohjelmointikieli ja Visual Basic päällä Windows alustoille.
- RFC-yhteydet toimivat koko järjestelmässä. Asiakasohjelmassa 000 määriteltyä RFC-yhteyttä voidaan käyttää myös asiakkaasta 100 ilman eroja.
- RFC on protokolla erikoistuneiden aliohjelmien (funktiomoduulien) kutsumiseen verkon kautta. Funktiomoduulit ovat verrattavissa C-funktioihin tai Pascal-proseduureihin: ne tarjoavat määritellyn rajapinnan, jonka kautta tietoja, taulukoita ja paluukoodeja vaihdetaan. Funktiomoduuleja hallitaan... SAP järjestelmä omassa kirjastossaan, Funktioiden rakentaja.
- Funktioiden rakentaja (tapahtuma SE37) tarjoaa sovellusohjelmoijille ympäristön kirjoittamiseen, dokumentointiin ja testaus funktiomoduuleja, joita voidaan kutsua sekä paikallisesti että etänä. Järjestelmä luo automaattisesti lisäkoodin ( RFC-tynkä) tarvitaan etäpuheluita varten.
- RFC-yhteyksiä ylläpidetään transaktioiden avulla SM59. SAP lähettää myös RFC-SDK (Software Development Kit), joka käyttää laajoja C-kirjastoja, jotta ulkoiset ohjelmat voivat muodostaa yhteyden SAP järjestelmään.
- Ainoa ero etäpuhelun ja paikallispuhelun välillä toiselle palvelimelle on
DESTINATIONparametri, joka määrittää kohdepalvelimen, jolla ohjelman tulisi suorittaa.
RFC:n edut
RFC vähentää ohjelmointityötä poistamalla tarpeen toteuttaa moduuleja ja metodeja uudelleen etäpäässä. RFC-kerros huolehtii seuraavista asioista:
- Muunna data etäjärjestelmän (kohdejärjestelmän) ymmärtämään muotoon.
- Etäjärjestelmän kanssa viestinnän muodostamiseen tarvittavien rutiinien kutsuminen.
- Viestinnän aikana ilmenevien virheiden käsittely.
- Tarjoaa luotettavaa transaktionaalista semantiikkaa, kun käytetään transaktionaalisia tai jonotettuja variantteja.
RFC-tyypit
SAP tukee neljää RFC-muunnosta. Jokainen tarjoaa erilaisen kompromissin latenssin, luotettavuuden ja järjestystakuiden välillä.
1. Synckrooninen RFC (sRFC)
SyncKronous RFC edellyttää, että sekä asiakas että palvelin ovat käytettävissä kutsun aikaan. Se on yleisin tyyppi ja sitä käytetään aina, kun kutsuja tarvitsee tuloksen heti suorituksen jälkeen.
sRFC on järjestelmien välinen viestintätapa, jossa odotetaan kuittauksia. Lähdejärjestelmän resurssit odottavat kohdejärjestelmää ja varmistavat, että viesti saapuu perille kuittauksen kera. Vaihdetut tiedot ovat yhdenmukaisia ja luotettavia.
Haittapuolena on, että jos kohdejärjestelmä ei ole käytettävissä, lähdejärjestelmän resurssit odottavat sen paluuta, mikä voi siirtää lähdejärjestelmän prosessit lepo-/RFC/CPIC-tilaan kohdejärjestelmässä ja estää resurssien käytön.
Käytetään:
- Reaaliaikainen viestintä järjestelmien välillä.
- Viestintä välillä SAP Web-sovelluspalvelin ja SAP GUI.
2. Asynkroninen RFC (aRFC)
Asynkroninen RFC on järjestelmien välistä viestintää, jossa ei vaadita kuittausta – verrattavissa järjestelmän katkaisemiseen.ping postikortti postitse. Molempien järjestelmien ei tarvitse olla käytettävissä suoritushetkellä, eikä tulosta palauteta välittömästi kutsuvalle järjestelmälle.
Lähdejärjestelmäresurssi ei odota kohdejärjestelmää; se toimittaa tiedot ja siirtyy eteenpäin. Tämä tekee aRFC:stä nopean, mutta ei yksinään luotettavan — tietoja voi kadota, jos kohdejärjestelmä ei ole käytettävissä.
Käytetään:
- Järjestelmien välinen käynnistys- ja unohda-kommunikaatio.
- Rinnakkainen käsittely eri järjestelmissä.
3. Transaktionaalinen RFC (tRFC)
Transaktionaalinen RFC on asynkronisen RFC:n erityinen muoto. Se varmistaa transaktionaalisen käsittelyn prosessointivaiheissa, jotka muuten olisivat autonomisia.
tRFC suorittaa kutsutun funktiomoduulin RFC-palvelimella tasan kerran, vaikka tiedot lähetettäisiin useita kertoja verkko-ongelmien vuoksi. Etäjärjestelmän ei tarvitse olla käytettävissä sillä hetkellä, kun RFC-asiakasohjelma suorittaa kutsun. tRFC-komponentti tallentaa kutsutun funktion ja sen tiedot RFC-palvelimelle. SAP tietokanta yksilöllisen tunnisteen alla Tapahtumatunnus (TID)Jos kohdejärjestelmä ei ole käytettävissä, tiedot kirjoitetaan RFC-taulukoihin (näkyvät tapahtumassa SM58) ja myöhemmin ajoitusraportin poimima RSARFCSE, joka toimii 60 sekunnin välein.
Käytetään:
- Asynkronisen RFC:n laajentaminen enintään kerran toimitettavalla sisällöllä.
- Luotettava kommunikaatio järjestelmien välillä, joissa täsmälleen kerran suoritettavalla toiminnalla on merkitystä.
4. Jonotettu RFC (qRFC)
Jonotettu RFC laajentaa tRFC:tä takaamalla, että yksittäiset vaiheet käsitellään kutsuvan sovelluksen määrittämässä järjestyksessä. Sen varmistamiseksi, että useat LUW:t (Logical Units of Work / transactions) käsitellään aiotussa järjestyksessä, tRFC voidaan sarjoittaa käyttämällä saapuvia ja lähteviä jonoja – mistä nimi "jonotettu RFC" tulee.
Käytetään:
- Transaktionaalisen RFC:n laajentaminen tiukalla järjestyksellä.
- Skenaariot, joissa määritelty käsittelyjärjestys on pakollinen.
- Tapaukset, joissa useita tapahtumia on käsiteltävä ennalta määritellyssä järjestyksessä.
RFC-tyyppien vertailu
| Tyyppi | Soittaja odottaa? | Luotettava? | Tilattu? | Best For |
|---|---|---|---|---|
| sRFC | Kyllä | Kyllä | Ei sovellu (yksittäinen puhelu) | Reaaliaikaiset haut |
| aRFC | Ei | Ei | Ei | Sytytä ja unohda -periaatteella tehtävä rinnakkainen työ |
| tRFC | Ei | Kyllä (tasan kerran) | Ei | Luotettavat asynkroniset päivitykset |
| qRFC | Ei | Kyllä (tasan kerran) | Kyllä | Tarkkaan järjestetyt päivitykset |
RFC-yhteyksien tyypit
SM59 tukee useita yhteystyyppejä. Kolme yleisintä on esitetty alla.
Tyyppi 3 — ABAP-ABAP
Tyypin 3 merkinnät määrittävät yhteyden seuraavien välillä: ABAP-järjestelmätIsäntänimi tai IP-osoite on pakollinen; kirjautumistiedot voidaan antaa valinnaisesti. Tyyppiä 3 voidaan käyttää sekä ABAP-järjestelmien välisissä RFC-viesteissä että ulkoisissa ABAP-järjestelmiin tulevissa puheluissa.
Tyyppi I — Saman tietokannan vertaiskäyttäjä
Tyypin I merkinnät määrittävät ABAP-järjestelmät, jotka jakavat saman tietokannan nykyisen järjestelmän kanssa. Nämä merkinnät ovat ennalta määritettyjä, eikä niitä voida muokata. Tyypillinen merkinnän nimi näyttää tältä ws0015_K18_24:
- ws0015 — isäntänimi
- K18 — järjestelmän (tietokannan) nimi
- 24 — TCP-palvelun nimi
Tyyppi T — Ulkoinen ohjelma
Tyypin T kohteet muodostavat yhteyden ulkoisiin ohjelmiin, jotka käyttävät RFC-rajapintaa RFC:iden vastaanottamiseen. Aktivointityyppi voi olla jompikumpi seuraavista: Aloita or RekisteröintiJos se on Käynnistä, on annettava käynnistettävän ohjelman isäntänimi ja polku.
Miten Code RFC
RFC:n kokonaisvaltainen rakentaminen sisältää viisi vaihetta. Kolme ensimmäistä ovat mekaanisia klikkauksia SE37:ssä ja SM59:ssä; kaksi viimeistä liittyvät conin saamiseen.tracoikealla.
Vaihe 1: Transaktion funktiomoduulin määritteet-välilehdellä SE37, aseta käsittelytyypiksi Etäkäyttöinen moduuli merkitäksesi funktiomoduulin RFC-yhteensopivaksi.
Vaihe 2: Kirjoita funktiomoduulin koodi lähdekoodieditoriin.
Vaihe 3: Määritä RFC-palvelimen kohde RFC-asiakasjärjestelmässä, joka kutsuu etäfunktiota — tehdään transaktiossa SM59.
Vaihe 4 — Parametrien määrittäminen: Kaikki etäfunktiomoduulin parametrikentät on määriteltävä viitekentiksi – eli ne on kirjoitettava ABAP-sanakirjan kenttiä vasten. Arvoparametreja ei sallita etäkäyttöisissä funktiomoduuleissa.
Vaihe 5 – Poikkeukset: Järjestelmä nostaa VIESTINTÄVIKA ja JÄRJESTELMÄVIRHE sisäisesti siirtotason virheiden perusteella. Sovellustason poikkeuksia voidaan aiheuttaa etäfunktion sisällä aivan kuten paikallisessakin funktiossa.
Etätoimintokutsujen virheenkorjaus
- On virheenkorjaus ei ole mahdollista etäfunktiokutsu ei-ABAP-järjestelmään klassisella tavalla — vieras ajonaikainen ympäristö on läpinäkymätön.
- ABAP-ABAP-RFC-kutsuissa ABAP-virheenkorjaajaa voidaan kuitenkin käyttää RFC-funktion suorituksen valvontaan etäjärjestelmässä.
- Etäkutsuissa ABAP-virheenkorjausohjelma (käyttöliittymä mukaan lukien) toimii paikallisessa järjestelmässä. Etäfunktion data-arvot ja muut ajonaikaiset tiedot suoratoistetaan takaisin etäjärjestelmästä.
avain SAP RFC-tapahtumat
Päivittäinen RFC-työkalupakki tiivistyy muutamaan T-koodiin, jotka jokaisen ABAP-kehittäjän ja Basis-ylläpitäjän tulisi osata refleksinomaisesti.
| T-koodi | Tarkoitus |
|---|---|
| SM59 | Ylläpidä RFC-kohteita — isäntä, kirjautuminen, tyyppi, suojaus. |
| SE37 | Function Builder — luo tai muokkaa etäkäyttöisiä funktiomoduuleja. |
| SM58 | Valvo epäonnistuneita transaktionaalisia RFC-pyyntöjä ja käsittele ne uudelleen. |
| SMQ1 / SMQ2 | Valvo lähteviä (SMQ1) ja saapuvia (SMQ2) qRFC-jonoja. |
| LUOTTAMUS | Ylläpidä HTTPS-suojattujen RFC-kohteiden käyttämiä SSL-varmenteita. |
| ST22 | Tarkasta epäonnistuneiden etäpuheluiden aiheuttamat lyhyitä vedoksia. |
Parhaat käytännöt SAP RFC
Hyvin suunniteltu RFC-kerros pitää integraatiot nopeina, havaittavina ja helposti kehitettävissä. Seuraavat tavat kannattaa ottaa huomioon jokaisessa projektissa.
- Valitse oikea variantti huijaukselletract. Käytä sRFC:tä synkronisiin hakuihin, tRFC:tä enintään kerran tapahtuviin asynkronisiin päivityksiin ja qRFC:tä, kun järjestyksellä on merkitystä.
- Käytä uudelleen yhtä kohdetta kohdejärjestelmää kohden sen sijaan, että isäntänimiä jaettaisiin useisiin kohteisiin, se tekee tunnistetietojen kierrätyksestä tracpöytä.
- Älä koskaan koodaa tunnistetietoja kovakoodein ABAPissa. Käytä luotettavia järjestelmäyhteyksiä tai suojattuja kirjautumistikettejä aina kun mahdollista.
- Seuraa SM58:aa ja SMQ2:ta säännöllisesti. Juuttuneet tRFC-merkinnät viivästyttävät liiketoimintaprosesseja hiljaisesti, kunnes ne käsitellään uudelleen.
- Välitä vain viittaustyyppisiä parametreja. Arvoparametrit rikkovat etäkäyttöiset funktiomoduulit.
- Käytä STRUSTia TLS-varmenteiden hallintaan HTTPS-kohteissa vanhentuneet varmenteet ovat yleisin syy salaperäisiin COMMUNICATION_FAILURE-vedoksiin.








