Kaugfunktsioonide kõne (RFC) SAP-i õpetuses

Lang L: none (table-of-contents):

Anonim

Mis on RFC?

RFC on mehhanism, mis võimaldab ärirakendustel suhelda ja vahetada teavet (eelnevalt määratletud vormingutes) teiste süsteemidega. RFC tähistab kaugfunktsionaalset kõnet

RFC koosneb kahest liidesest:

  1. ABAP-programmide kutseliides
  2. Helistamisliides mitte-SAP programmidele.

Iga ABAP-programm võib helistada kaugfunktsioonile, kasutades käsku CALL FUNCTION… DESTINATION . Sihtkoht parameetri ütleb SAP süsteemi, mis nimetatakse funktsiooni töötab süsteem peale helistajad.Süntaks-

CALL FUNCTION 'kaugfunktsioon'Sihtkoht sihtkohtEKSPORTIMINE f1 =IMPORTIMINE f2 =TABELID t1 =ERANDID

Loogilised sihtkohad määratakse tehingu SM59 kaudu ja salvestatakse RFC-liidese tabelisse RFCDES-
funktsioonid

  • Kõigi parameetriandmete teisendamine kaugsüsteemis vajalikuks esituseks
  • Helistades kaugsüsteemiga rääkimiseks vajalikele suhtlusrutiinidele.
  • Sidevigade käsitlemine ja soovi korral helistajast teavitamine (kasutades funktsiooni CALL FUNCTION parameetrit EXCEPTIONS).


RFC on SAP-protokoll süsteemide vahelise suhtluse haldamiseks, et lihtsustada seotud programmeerimist. See on funktsioonimooduli kutsumine, mis asub helistajaprogrammist erinevas masinas. RFC-sid saab kasutada ka sama masina erineva programmi kutsumiseks, kuid tavaliselt kasutatakse seda juhul, kui funktsiooni moodulid / programmid "helistamine" ja "kutsumine" töötavad eraldi masinates.


SAP-is kasutatakse RFC-liidesesüsteemi RFC-ühenduste loomiseks erinevate SAP-süsteemide vahel, samuti SAP-i ja välise (mitte-SAP) süsteemi vahel.

Peab teadma üksikasju RFC kohta

  • SAP kasutab süsteemide vahel andmete edastamiseks CPIC-protokolli (Common Programming Interface for Communication). See on SAP-spetsiifiline protokoll. Kaugfunktsioonkõne (RFC) on CPI-C-l põhinev kommunikatsiooniliides, kuid rohkemate funktsioonidega ja rakendusprogrammeerijatel hõlpsamini kasutatav
  • RFC teegi funktsioonid toetavad C-programmeerimiskeelt ja Visual Basicut (Windowsi platvormidel)
  • RFC-ühendusi saab alati kasutada kogu süsteemis. See tähendab, et kliendis 000 määratletud RFC-ühendust saab kasutada ka kliendilt 100 (ilma igasuguse erinevuseta).
  • RFC on spetsiaalsete alamprogrammide (funktsioonimoodulite) kutsumine üle võrgu. Funktsioonimoodulid on võrreldavad C-funktsioonide või PASCAL-protseduuridega. Neil on määratletud liides, mille kaudu saab andmeid, tabeleid ja tagastuskoode vahetada. Funktsioonimooduleid hallatakse R / 3 süsteemis oma funktsioonide teegis, mida nimetatakse funktsioonide koostajaks.
  • Funktsioonide looja (tehing SE37) pakub rakendusprogrammeerijatele kasulikku keskkonda funktsioonimoodulite programmeerimiseks, dokumenteerimiseks ja testimiseks, mida saab helistada nii lokaalselt kui ka kaugelt. R / 3 süsteem genereerib kaugkõnede jaoks vajaliku lisakoodi (RFC-tüvi) automaatselt.
  • RFC-ühenduste parameetrid säilitate tehingu SM59 abil. R / 3 süsteem tarnitakse ka koos RFC-SDK-ga (tarkvaraarenduskomplekt), mis kasutab ulatuslikke C-teeke, et võimaldada väliste programmide ühendamist R / 3-süsteemiga.
  • Ainus erinevus funktsioonimooduli kaugkõnest teise serverisse ja kohalik kõne vahel on spetsiaalne parameeter (sihtkoht), mis määrab sihtserveri, kus programm käivitatakse.

RFC eelised:

RFC aitab vähendada programmeerijate jõupingutusi, lastes neil vältida kaugsüsteemide moodulite ja meetodite uuesti väljatöötamist. See on piisavalt võimeline:

  • Teisendage andmed kaug- (siht) süsteemi jaoks arusaadavasse vormingusse.
  • Teisendage andmed kaug- (siht) süsteemi jaoks arusaadavasse vormingusse.
  • Helistage teatud rutiinid, mis on vajalikud kaugsüsteemiga ühenduse loomiseks.
  • Käsitle vead, mis võivad tekkida suhtlemisprotsessis.

RFC tüübid:


Sünkroonne

Nõuab, et nii süsteemid (klient kui server) oleksid side või andmeedastuse ajal kättesaadavad. See on kõige tavalisem tüüp ja see on vajalik, kui tulemus on vajalik kohe pärast sRFC käivitamist.
sRFC on sidevahend süsteemide vahel, kus on vaja kinnitusi. Allikasüsteemi ressursid ootavad sihtsüsteemi ja tagavad, et nad edastaksid sõnumi / andmed ACKD-ga. Andmed on sidepidamiseks järjepidevad ja usaldusväärsed.
Küsimus on selles, kui sihtsüsteem pole saadaval, ootavad allikasüsteemi ressursid, kuni sihtsüsteem on saadaval. See võib viia allikasüsteemi protsesside siirdumiseni sihtsüsteemide puhkerežiimi / RFC / CPIC-režiimi ja blokeerib need ressursid.
Kasutatud

  • Süsteemidevaheliseks suhtluseks
  • SAP-i veebirakendusserveri ja SAP-i GUI vahelise suhtluse jaoks

Asünkroonne

See on süsteemide omavaheline suhtlus, kus kinnitusi pole vaja (see sarnaneb postkaartide kättetoimetamisega). See ei nõua, et mõlemad süsteemid oleksid täitmise ajal saadaval ja tulemust ei pea kohe helistajale tagasi saatma .

Allikasüsteemi ressurss ei oota sihtsüsteemi, kuna nad edastavad sõnumi / andmed ootamata ühtegi kinnitust. See pole suhtlemiseks usaldusväärne, kuna andmed võivad kaduma minna, kui sihtsüsteem pole saadaval. Kasutatud -

  • Süsteemidevaheliseks suhtluseks
  • Paralleelseks töötlemiseks

Tehinguline

See on aRFC erivorm. Tehinguline RFC tagab algselt autonoomsete töötlemisetappide tehingulaadse käitlemise.

Tehinguline RFC on asünkroonne kommunikatsioonimeetod, mis täidab kutsutud funktsioonimoodulit RFC-serveris ainult üks kord, isegi kui andmeid saadetakse mõne võrguprobleemi tõttu mitu korda. Kaugsüsteem ei pea olema saadaval ajal, kui RFC klientprogramm tRFC-d käivitab. TRFC-komponent salvestab kutsutud RFC-funktsiooni koos vastavate andmetega SAP-i andmebaasi unikaalse tehingu ID (TID) alla. tRFC sarnaneb aRFC-ga, kuna see ei oota sihtsüsteemis (sarnane registreeritud postitusega). Kui süsteem pole saadaval, kirjutab see andmed aRFC-tabelitesse tehingu ID-ga (SM58), mille valib ajastaja RSARFCSE (mis töötab iga 60 sekundi järel). Kasutatud-

  • Asünkroonse RFC laiendamine
  • Turvaliseks suhtlemiseks süsteemide vahel

Järjekorras

Järjekorras olev RFC on tRFC laiendus. See tagab ka üksikute sammude järjestikuse töötlemise.

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). Seega oli nimi järjekorras RFC (qRFC). Kasutatud-

  • Tehingulise RFC pikendamine
  • Määratletud töötlemisjärjestuse jaoks
  • QRFC rakendamine on soovitatav, kui soovite tagada, et mitu tehingut töödeldakse etteantud järjekorras.

RFC-ühenduste tüübid


Tüüp 3 - kirjed määravad ühenduse ABAP-süsteemide vahel. Siin peame määrama hostinime / IP-aadressi. Soovi korral saate siiski määrata sisselogimisteabe. See kehtib mõlemat tüüpi RFC-de kohta, ABAP-süsteemide ja ABAP-süsteemide väliskõnede vahelI tüüp - kirjed määravad praeguse süsteemiga samasse andmebaasi ühendatud ABAP-süsteemid. Need kirjed on eelnevalt määratletud ja neid ei saa muuta. Kirje nime näide: ws0015_K18_24

  • ws0015 = hostinimi
  • 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. Määra vahekaardil funktsioonimooduli atribuudid (tehingukood SE37) kaugfunktsioonimooduli loomiseks töötlustüübiks kaugtoega 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 kaugfunktsioonimooduli parameetriväljad tuleb määratleda viiteväljadena , näiteks nagu ABAP sõnaraamatu väljad.5. Erandid: süsteem tõstab sisemiselt COMMUNICATION_FAILURE ja SYSTEM_FAILURE. Kaugfunktsioonis saate erandeid tõsta nagu kohalikult kutsutud funktsioonis.

Kaugfunktsioonide kõnede silumine

  • On võimatu siluda serveri funktsioon kõne teise süsteemi.
  • ABAP-to-ABAP RFC-kõnede testimisel saate aga kasutada ABAP-silurit kaugsüsteemi RFC-funktsiooni täitmise jälgimiseks.
  • Kaugkõnede korral töötab ABAP-silur (sh silumisliides) kohalikus süsteemis. Andmed väärtused ja muu kaugfunktsiooni käitamise teave edastatakse kaugsüsteemist.