Kaugfunktsiooni kõne (RFC) sisse SAP juhendaja
Mis on RFC?
RFC on mehhanism, mis võimaldab ärirakendustel suhelda ja vahetada teavet (eelmääratletud vormingus) teiste süsteemidega. RFC tähistab "Kaugfunktsiooni kõne"
RFC koosneb kahest liidesest:
- ABAP-programmide helistamisliides
- Helistamisliides mitte-SAP programme.
mistahes ABAP programm saab helistada kaugfunktsiooni kasutades HELISTAMISE FUNKTSIOON…SIHT avaldus. The Sihtkoht parameeter ütleb SAP Süsteem, mida kutsutav funktsioon töötab muus süsteemis kui helistajad.
süntaks-
CALL FUNCTION 'remotefunction' DESTINATION dest EXPORTING f1 = IMPORTING f2 = TABLES t1 = EXCEPTIONS
Loogilised sihtkohad määratakse tehingu kaudu SM59 ja salvestatud tabelisse RFCDES
RFC liidese funktsioonid
- Kõigi parameetriandmete teisendamine kaugsüsteemis vajalikuks esituseks
- Kaugsüsteemiga rääkimiseks vajalike suhtlusrutiinide helistamine.
- Sidevigade käsitlemine ja soovi korral helistaja teavitamine ( kasutades KÕNEFUNKTSIOONI parameetrit EXCEPTIONS).
RFC on a SAP protokoll süsteemidevahelise suhtluse haldamiseks, et lihtsustada sellega seotud programmeerimist. See on funktsioonimooduli kutsumise protsess, mis asub helistajaprogrammist erinevas masinas. RFC-sid saab kasutada ka erinevate programmide kutsumiseks samas masinas, kuid tavaliselt kasutatakse seda siis, kui funktsioonimoodulid/programmid "helistavad" ja "kutsuvad" töötavad erinevates masinates.
In SAP, RFC-liidese süsteemi kasutatakse erinevate RFC-ühenduste loomiseks SAP süsteemidja ka a vahel SAP ja väline (mitte-SAP) süsteem.
Peab teadma RFC üksikasju
- SAP Kasutab süsteemide vahel andmete edastamiseks CPIC (Common Programming Interface for Communication) protokolli. On küll SAP Spetsiifiline protokoll. Remote Function Call (RFC) on sideliides, mis põhineb CPI-C-l, kuid millel on rohkem funktsioone ja rakenduste programmeerijatele lihtsam kasutada
- RFC teegi funktsioonid toetavad C programmeerimiskeel ja Visual Basic (sees Windows platvormid)
- RFC-ühendusi saab alati kasutada kogu süsteemis. See tähendab, et kliendis 000 määratletud RFC-ühendust saab kasutada ka kliendist 100 (ilma erinevusteta).
- RFC on protokoll spetsiaalsete alamprogrammide (funktsioonimoodulite) kutsumiseks üle võrgu. Funktsioonimoodulid on võrreldavad C-funktsioonide või PASCAL-protseduuridega. Neil on määratletud liides, mille kaudu saab vahetada andmeid, tabeleid ja tagastuskoode. Funktsioonimooduleid hallatakse R/3 süsteemis nende enda funktsiooniteegis, mida nimetatakse funktsioonide koostajaks.
- Function Builder (tehing SE37) pakub rakenduste programmeerijatele kasulikku keskkonda programmeerimiseks, dokumenteerimiseks ja Testimine funktsioonimoodulid, mida saab kutsuda nii lokaalselt kui ka eemalt. R/3 süsteem genereerib automaatselt kaugkõnede jaoks vajaliku lisakoodi (RFC stub).
- RFC-ühenduste parameetrid säilitate tehingu SM59 abil. R/3-süsteemiga on kaasas ka RFC-SDK (tarkvaraarenduskomplekt), mis kasutab ulatuslikke C-teeke, et võimaldada väliste programmide ühendamist R/3-süsteemiga.
- Ainus erinevus funktsioonimooduli kaugkõne teise serveri ja kohaliku kõne vahel on spetsiaalne parameeter (sihtkoht), mis määrab sihtserveri, millel programm käivitatakse.
RFC eelised
RFC aitab vähendada programmeerijate pingutusi, võimaldades neil vältida moodulite ja meetodite ümberarendamist kaugsüsteemides. See on piisavalt võimeline:
- Teisendage andmed kaug- (siht)süsteemile arusaadavasse vormingusse.
- Teisendage andmed kaug- (siht)süsteemile arusaadavasse vormingusse.
- Kutsuge välja teatud rutiinid, mis on vajalikud kaugsüsteemiga suhtlemise alustamiseks.
- Käsitlege suhtlusprotsessis tekkida võivaid vigu.
RFC tüübid
Synckroonne
Nõuab, et mõlemad süsteemid (klient ja server) oleksid side või andmeedastuse ajal kättesaadavad. See on kõige levinum tüüp ja seda nõutakse siis, kui tulemust nõutakse kohe pärast sRFC käivitamist.
sRFC on süsteemide vaheline suhtlusvahend, mille puhul on vaja kinnitusi. Lähtesüsteemi ressursid ootavad sihtsüsteemi ja tagavad sõnumi/andmete edastamise ACKD-ga. Andmed on suhtlemiseks järjepidevad ja usaldusväärsed.
Probleem on selles, et kui sihtsüsteem pole saadaval, ootavad lähtesüsteemi ressursid, kuni sihtsüsteem on saadaval. See võib viia selleni, et lähtesüsteemi protsessid lähevad sihtsüsteemides puhke-/RFC/CPIC-režiimi ja blokeerivad seega need ressursid.
Kasutatakse
- Süsteemidevahelise suhtluse jaoks
- Omavaheliseks suhtluseks SAP Veebirakenduse serverisse SAP GUI
Asünkroonne
See on süsteemidevaheline suhtlus, kus kinnitusi ei nõuta (see sarnaneb postkaardi kohaletoimetamisega). See ei nõua, et süsteemid oleksid täitmise ajal saadaval ja tulemust ei pea kohe helistavale süsteemile tagasi saatma .
Lähtesüsteemi ressurss ei oota sihtsüsteemi, kuna nad edastavad sõnumi/andmed ilma kinnitust ootamata. See ei ole side jaoks usaldusväärne, kuna andmed võivad kaduda, kui sihtsüsteem pole saadaval. Kasutatud -
- Süsteemidevahelise suhtluse jaoks
- Paralleelseks töötlemiseks
Tehinguline
See on aRFC erivorm. Tehinguline RFC tagab algselt autonoomsete töötlemisetappide tehingulaadse käsitlemise.
Tehinguline RFC on asünkroonne sidemeetod, mis käivitab kutsutud funktsioonimooduli RFC-serveris ainult üks kord, isegi kui andmeid saadetakse mõne võrguprobleemi tõttu mitu korda. Kaugsüsteem ei pea olema saadaval ajal, mil RFC-klientprogramm täidab tRFC-d. tRFC komponent salvestab kutsutud RFC-funktsiooni koos vastavate andmetega SAP unikaalse tehingu ID (TID) all. tRFC sarnaneb aRFC-ga, kuna see ei oota sihtsüsteemis (sarnane tähitud postitusega). Kui süsteem pole saadaval, kirjutab see andmed aRFC tabelitesse tehingu ID-ga (SM58), mille valib planeerija RSARFCSE (mis töötab iga 60 sekundi järel). Kasutatud -
- Asünkroonse RFC laiendus
- Süsteemidevahelise turvalise suhtluse jaoks
Järjekorras
Queued RFC on tRFC laiendus. Samuti tagab see, et üksikuid samme töödeldakse järjestikku. Tagamaks, et mitut LUW-d (töö/tehingu loogiline üksus) töödeldakse rakenduses määratud järjekorras. tRFC-d saab järjestada järjekordade abil (sissetulevad ja väljaminevad järjekorrad). Sellest ka nimi queued RFC (qRFC). Kasutatud -
- Tehingulise RFC laiendamine
- Määratletud töötlemisjärjestuse jaoks
- qRFC juurutamine on soovitatav, kui soovite tagada, et mitu tehingut töödeldakse etteantud järjekorras.
RFC ühenduste tüübid
kirjuta 3 – kirjed täpsustavad omavahelist seost ABAP süsteemid. Siin peame määrama hosti nime / IP-aadressi. Soovi korral saate siiski täpsustada sisselogimisandmeid. See kehtib mõlemat tüüpi RFC-de puhul ABAP-süsteemide vahel ja ABAP-süsteemide väliskõnede puhul
I tüüp - kirjed määravad ABAP-süsteemid, mis on ühendatud praeguse süsteemiga samasse andmebaasi. Need kirjed on eelnevalt määratletud ja neid ei saa muuta. Näidiskirje nimi: ws0015_K18_24
- ws0015=hosti nimi
- K18=süsteemi nimi (andmebaasi nimi)
- 24=TCP-teenuse nimi
Tüüp T – sihtkohad on ühendused väliste programmidega, mis kasutavad RFC-de vastuvõtmiseks RFC API-d. Aktiveerimise tüüp võib olla kas Start või Registreerimine. Kui see on Start, peate määrama käivitatava programmi hostinime ja teenime.
Kuidas RFC-d kodeerida?
1) Kaugfunktsiooni mooduli loomiseks määrake vahekaardil funktsioonimooduli atribuudid (tehingukood SE37) töötlemise tüübiks Kaugfunktsiooniga moodul.
2) Kirjutage funktsioonimooduli kood.
3) Määrake RFC-serveri sihtkoht RFC-kliendisüsteemis, mis kutsub kaugfunktsiooni (SM59 tehingu kaudu).
4) Parameetrite deklareerimine: kõik kaugfunktsiooni mooduli parameetriväljad tuleb määratleda viiteväljadena, st nagu ABAP-sõnastiku väljad.
5) Erandid: Süsteem tõstab sisemiselt COMMUNICATION_FAILURE ja SYSTEM_FAILURE. Erandeid saate kaugfunktsioonis esile kutsuda samamoodi nagu kohalikult kutsutud funktsioonis.
Kaugfunktsiooni kõnede silumine
- See on pole võimalik siluda kaugfunktsiooni kõne teisele süsteemile.
- ABAP-i-ABAP-i RFC-kõnede testimisel saate aga kasutada ABAP-i silurit, et jälgida RFC-funktsiooni täitmist kaugsüsteemis.
- Kaugkõnede korral töötab ABAP-i silur (sh silumisliides) kohalikus süsteemis. Andmeväärtused ja muu kaugfunktsiooni käitamise teave edastatakse kaugsüsteemist.