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.

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.
Vaihe 2) Avaa liiketoimintaobjekti muutostilassa. Valitse sitten Apuohjelmat -> API-menetelmät -> Lisää menetelmä. Syötä sitten toimintomoduulin nimi ja valitse Jatka.
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.
Vaihe 4) Luo menetelmä valitsemalla Kyllä seuraavassa valintaikkunassa.
Vaihe 5) Kun ohjelma on luotu ja suoritettu, tarkista ohjelma juuri luodulla menetelmällä. Siten BAPI luodaan.
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.





