SAP BAPI-opetusohjelma – BAPI:n luominen ABAP:ssa

⚡ Älykäs yhteenveto

BAPI-koodi SAP ABAP on standardoitu, RFC-yhteensopiva liiketoimintaobjektin metodi, jonka avulla ulkoiset sovellukset voivat käyttää R/3-prosesseja ja -dataa. Tällä sivulla selitetään standardoidut BAPI-rajapinnat, niiden luominen SWO1:ssä, testaus, julkaisu ja BAPI-rajapinnan kutsuminen ABAP:sta.

  • 🔌 Ydinmääritelmä: Liiketoimintasovellusliittymä (BSI) on vakaa menetelmä, joka antaa ulkoisille järjestelmille standardoidun pääsyn SAP liiketoimintaprosessit ja data.
  • 🗃️ Liiketoimintaobjektien tietovarasto: BAPI-rakenteet määritellään BOR:ssa liiketoimintaobjektityyppien metodeina ja toteutetaan RFC-yhteensopivina funktiomoduuleina.
  • 📚 Standardoidut BAPI-rajapinnat: GetList, GetDetail, Create, Change, Delete ja Multiple-variantit tarjoavat uudelleenkäytettäviä luku-, kirjoitus- ja massakäsittelymenetelmiä.
  • 🛠️ Creation: BAPI luodaan SWO1-transaktioon lisäämällä API-metodi, joka osoittaa RFC-yhteensopivaan funktiomoduuliin.
  • Testaus ja julkaisu: Metodi testataan Business Object Builderissa tai SWUD:ssa ja julkaistaan ​​sitten vapauttamalla funktiomoduuli ja asettamalla metodin tila.
  • 📞 BAPI-komennon kutsuminen: ABAP-ohjelma kutsuu funktiomoduulia ja tekee sitten commitin BAPI_TRANSACTION_COMMIT-metodilla, koska BAPI ei commitu yksinään.

BAPI:n luominen SAP ABAP

Mikä on BAPI?

Business Application Programming Interface (BAPI) ovat standardoituja ohjelmointirajapintoja (menetelmiä), joiden avulla ulkoiset sovellukset voivat käyttää liiketoimintaprosesseja ja R/3-järjestelmän tietoja.

Ne tarjota vakaita ja standardoituja menetelmiä R/3-järjestelmän ja ulkoisten sovellusten, vanhojen järjestelmien ja lisäosien saumattoman integroinnin saavuttamiseksi.

BAPI:t määritellään kohdassa BOR (Business objektin arkisto) menetelminä SAP liiketoimintaobjektityypit, jotka suorittavat tiettyjä liiketoimintatoimintoja. Ne toteutetaan seuraavasti: RFC-yhteensopiva toiminto moduuleista ja ne luodaan ABAP Workbenchin Function Builderissa.

Jotkut BAPI:t ja menetelmät tarjoavat perustoimintoja, ja niitä voidaan käyttää useimpiin SAP Business Objects.Niitä kutsutaan STANDARDOIDUT BAPI:t.

Luettelo standardoiduista BAPI:ista:

  • BAPI:t tietojen lukemiseen – GetList() , GetDetail() , GetStatus() , ExistenceCheck()
  • BAPI:t tietojen luomiseen tai muuttamiseen - Luo() ,Change(),Delete() ja Undelete() ,
  • BAPI:t massakäsittelyyn -ChangeMultiple(), CreateMultiple(), DeleteMultiple().

BAPI:n edut

BAPI-rajapintaa suositaan näyttöön perustuviin tekniikoihin verrattuna, koska se on dokumentoitu ja julkaistu rajapinta, joka SAP pysyy vakaana eri julkaisuissa. Tämä tuo useita käytännön etuja.

  • Vakaa käyttöliittymä: Julkaistun BAPI-funktion allekirjoitus ei muutu päivityksen yhteydessä, joten kutsuva ohjelma jatkaa toimintaansa.
  • Liiketoimintalogiikan uudelleenkäyttö: BAPI suorittaa samat validoinnit kuin tapahtuma, joten sen kautta lisätyt tiedot pysyvät yhdenmukaisina.
  • Etäkäyttö käytössä: Koska BAPI on RFC-yhteensopiva funktiomoduuli, sitä voidaan kutsua toisesta SAP järjestelmä, a Java tai .NET-ohjelma tai verkkopalvelu.
  • Ei näyttöriippuvuutta: Toisin kuin eräsyötteen tallennus, BAPI ei katkea näytön asettelun muuttuessa.

Kun konsepti ja sen hyödyt ovat selvät, seuraavassa osiossa rakennetaan BAPI askel askeleelta.

Kuinka luoda BAPI

Vaihe 1) Mene tapahtumaan swo1 (Tools->Business Framework -> BAPI Development ->Business Object builder ) .Valitse liiketoimintaobjekti sen toiminnallisen vaatimuksen mukaan, jota varten BAPI luodaan.

Luo BAPI ABAPissa

Vaihe 2) Avaa liiketoimintaobjekti muutostilassa. Valitse sitten Apuohjelmat -> API-menetelmät -> Lisää menetelmä. Syötä sitten toimintomoduulin nimi ja valitse Jatka.

Luo BAPI ABAPissa

Vaihe 3) Seuraavassa valintaikkunassa on määritettävä seuraavat tiedot:

  • Menetelmä: Ehdota menetelmälle sopiva nimi,
  • Tekstit: Anna kuvaus BAPI:lle,
  • Radiopainikkeet: Dialogi, Synchronous, instanssiriippumaton . BAPI:t toteutetaan yleensä synkronisesti.

Luo BAPI ABAPissa

Vaihe 4) Luo menetelmä valitsemalla Kyllä seuraavassa valintaikkunassa.

Luo BAPI ABAPissa

Vaihe 5) Kun ohjelma on luotu ja suoritettu, tarkista ohjelma juuri luodulla menetelmällä. Siten BAPI luodaan.

Luo BAPI ABAPissa

BAPI:n testaus

Voit testata BAPI:n Testaus Business Objectin yksilöllinen menetelmä Business Object Builderissa. (tai menetelmän testaamiseen voidaan käyttää tapahtumaa "SWUD").

BAPI:n vapauttaminen ja jäädyttäminen

  • Vapauta BAPI vapauttamalla ensin toimintomoduuli (tapahtuman se37 avulla).
  • Aseta menetelmän tilaksi "vapautettu" Business Object Builderissa ( käyttämällä tapahtumaa SWo1 – Muokkaa-> muuta tilaa-> vapautettu. )

Voit myös käyttää BAPI Exploreria (tapahtumakoodi BAPI) 360′-näkymään BAPI:ssa

BAPI:n kutsuminen ABAP:ssa

BAPI-funktiota kutsutaan kuten mitä tahansa RFC-yhteensopivaa funktiomoduulia. Tärkeä sääntö on, että BAPI ei koskaan anna omaa COMMIT WORK -komentoa, joten kutsujan on vahvistettava muutos BAPI_TRANSACTION_COMMIT-komennolla tai hylättävä se BAPI_TRANSACTION_ROLLBACK-komennolla. Alla oleva esimerkki luo myyntitilauksen, jossa käytetään vakio-BAPI-komentoa.

DATA: ls_header  TYPE bapisdhd1,
      lt_items   TYPE STANDARD TABLE OF bapisditm,
      lt_return  TYPE STANDARD TABLE OF bapiret2,
      lv_order   TYPE vbeln.

* Fill the header and item structures, then call the BAPI
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
  EXPORTING
    order_header_in = ls_header
  IMPORTING
    salesdocument   = lv_order
  TABLES
    order_items_in  = lt_items
    return          = lt_return.

* A BAPI does not commit on its own - decide based on the return table
READ TABLE lt_return WITH KEY type = 'E' TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ENDIF.

⚠️ Varoitus: Tarkista aina RETURN-taulukosta E- tai A-tyyppinen viesti ennen committia. BAPI_TRANSACTION_COMMIT-funktion kutsuminen virheen jälkeen tallentaa epätäydellisen dokumentin, mikä on yksi yleisimmistä BAPI-virheistä.

BAPI vs. BDC vs. RFC

BAPI, a BDCja pelkkä RFC siirtävät tiedot SAP, mutta ne eroavat toisistaan ​​stabiilisuuden ja uudelleenkäytön suhteen. Alla oleva taulukko vertailee niitä.

Kriteeri BAPI BDC RFC (mukautettu)
liitäntä Liiketoimintaobjektin julkaistu metodi Tapahtuman näyttöjärjestys Mikä tahansa mukautettu funktiomoduuli
Vakaus päivityksen yhteydessä Taattu julkaistuille BAPI-tiedostoille Katkeaa, jos näyttö muuttuu Riippuu kehittäjästä
Etäkäyttö käytössä Kyllä Ei Kyllä
Liiketoiminnan validointi Täysi, sama kuin tapahtuma Täysi, näyttää varsinaiset näytöt Vain kehittäjän koodaama
Parasta Vakaa integraatio ja rajapinnat Kuormat, joissa BAPI-pistettä ei ole Räätälöidyt pisteestä pisteeseen -palvelut

Nykyään kannattaa käyttää julkaistua BAPI-rajapintaa aina, kun sellainen on olemassa, palata BDC-rajapintaan, kun sellaista ei ole, ja varata mukautettuja RFC-tietoja räätälöidyille palveluille.

UKK

BAPI suorittaa päivityksen, mutta jättää COMMIT WORK -työn kutsujalle, joten useita BAPI-työtehtäviä voidaan yhdistää yhdeksi loogiseksi työyksiköksi. BAPI_TRANSACTION_COMMIT tallentaa ne sitten yhdessä, säilytäping tiedot ovat johdonmukaisia.

BAPIRET2-tyypin RETURN-taulukko sisältää kutsun viestit. Tyypin S rivi tarkoittaa onnistumista, E virhettä, W varoitusta ja A keskeytystä. Kutsuja lukee rivin päättääkseen, vahvistaako hän kutsun.

Transaktio-BAPI avaa BAPI Explorerin, joka listaa jokaisen liiketoimintaobjektin ja sen metodit dokumentaatioineen ja testaustyökaluineen. Myös SE37 näyttää BAPI:n, koska jokainen niistä on RFC-yhteensopiva funktiomoduuli.

Kyllä. ABAP-kehitystyökalujen tekoälyavustajat ehdottavat liiketoimintaobjektin vakio-BAPI-rajapintaa ja luonnostelevat parametrikartan.pingja lisää commit ja virheiden käsittely. Kehittäjä vahvistaa kentät ja testaa kutsua.

Kyllä. Monet OData-palvelut ja tekoälyintegraatiot kutsuvat alla olevaa BAPI-rajapintaa, koska se sisältää jo liiketoimintalogiikan. Uudemmat kerrokset lisäävät REST-käyttöoikeuden ja luonnollisen kielen vakaan BAPI-rajapinnan päälle.

Tiivistä tämä viesti seuraavasti: