SAP BAPI oktatóanyag – Hogyan hozzunk létre BAPI-t ABAP-ban

⚡ Okos összefoglaló

BAPI-ban SAP Az ABAP egy szabványosított, RFC-kompatibilis üzleti objektum metódus, amely lehetővé teszi a külső alkalmazások számára az R/3 folyamatok és adatok elérését. Ez az oldal ismerteti a szabványosított BAPI-kat, azok létrehozását az SWO1-ben, tesztelését, kiadását és a BAPI meghívását az ABAP-ból.

  • 🔌 Alapvető definíció: Az üzleti alkalmazásprogramozási felület (BAP) egy stabil módszer, amely szabványosított hozzáférést biztosít a külső rendszereknek. SAP üzleti folyamatok és adatok.
  • 🗃️ Üzleti objektum tárház: A BAPI-kat a BOR üzleti objektumtípusok metódusaiként definiálja, és RFC-képes függvénymodulokként valósítja meg.
  • ???? Szabványosított BAPI-k: A GetList, GetDetail, Create, Change, Delete és a Multiple változatok újrafelhasználható olvasási, írási és tömeges feldolgozási metódusokat biztosítanak.
  • 🇧🇷 Teremtés: Egy BAPI az SWO1 tranzakcióban épül be egy RFC-képes függvénymodulra mutató API metódus hozzáadásával.
  • Tesztelés és kiadás: A metódust a Business Object Builderben vagy SWUD-ban tesztelik, majd a függvénymodul felszabadításával és a metódus állapotának beállításával felszabadítják.
  • 📞 BAPI meghívása: Egy ABAP program meghívja a függvénymodult, majd BAPI_TRANSACTION_COMMIT utasítással véglegesíti a folyamatot, mivel a BAPI önmagában nem véglegesíti a folyamatot.

Hogyan hozzunk létre BAPI-t? SAP ABAP

Mi az a BAPI?

Az Business Application Programming Interface (BAPI) szabványos programozási interfészek (módszerek), amelyek lehetővé teszik a külső alkalmazások számára, hogy hozzáférjenek az R/3 rendszerben lévő üzleti folyamatokhoz és adatokhoz.

Azok stabil és szabványosított módszereket biztosítanak az R/3 rendszer és a külső alkalmazások, örökölt rendszerek és kiegészítők zökkenőmentes integrációja érdekében.

A BAPI-k meghatározása a BOR (üzleti objektumok tárolója) mint módszerei SAP üzleti objektumtípusok, amelyek meghatározott üzleti funkciókat látnak el. Ezeket a következőképpen valósítják meg: RFC-képes funkció modulok, és az ABAP Workbench Function Builderben jönnek létre.

Egyes BAPI-k és módszerek alapvető funkciókat biztosítanak, és a legtöbbhez használhatók SAP Üzleti objektumok.Ezeket az úgynevezett SZABVÁNYOS BAPI-k.

A szabványosított BAPI-k listája:

  • BAPI-k adatok olvasásához – GetList() , GetDetail() , GetStatus() , ExistenceCheck()
  • BAPI-k adatok létrehozásához vagy módosításához – Create() ,Change(),Delete() és Undelete() ,
  • BAPI-k tömeges feldolgozáshoz -ChangeMultiple(), CreateMultiple(), DeleteMultiple().

A BAPI előnyei

A BAPI-t előnyben részesítik a képernyőalapú technikákkal szemben, mivel ez egy dokumentált, kiadott interfész, amely SAP kiadások között stabil marad. Ez számos gyakorlati előnnyel jár.

  • Stabil felület: Egy kiadott BAPI aláírása nem változik frissítéskor, így a hívó program továbbra is működik.
  • Üzleti logika újrafelhasználása: Egy BAPI ugyanazokat az ellenőrzéseket futtatja le, mint a tranzakció, így a rajta keresztül hozzáadott adatok konzisztensek maradnak.
  • Távoli engedélyezés: Mivel a BAPI egy RFC-képes függvénymodul, meghívható egy másikból is. SAP rendszer, a Java vagy .NET program, vagy webszolgáltatás.
  • Nincs képernyőfüggőség: A kötegelt beviteli rögzítéssel ellentétben a BAPI nem szakad meg, ha a képernyő elrendezése megváltozik.

Miután a koncepció és annak előnyei tisztázódtak, a következő szakasz lépésről lépésre felépít egy BAPI-t.

Hogyan készítsünk BAPI-t

Step 1) Lépjen a swo1 tranzakcióhoz (Tools->Business Framework -> BAPI Development ->Business Object builder ). Válassza ki az üzleti objektumot annak a funkcionális követelménynek megfelelően, amelyhez a BAPI készül.

Hozzon létre egy BAPI-t az ABAP-ban

Step 2) Nyissa meg az üzleti objektumot változás módban. Ezután válassza a Utilities ->API Methods -> Add Methods (Segédprogramok ->API-módszerek ->Módszer hozzáadása) lehetőséget. Ezután adja meg a funkciómodul nevét, és válassza a Folytatás lehetőséget.

Hozzon létre egy BAPI-t az ABAP-ban

Step 3) A következő párbeszédpanelen a következő információkat kell megadni:

  • Módszer: Javasoljon megfelelő nevet a módszernek,
  • Szövegek: Írja be a BAPI leírását,
  • Rádiógombok: Párbeszéd, Synchronous, Példányfüggetlen . A BAPI-kat általában szinkronban hajtják végre.

Hozzon létre egy BAPI-t az ABAP-ban

Step 4) A módszer létrehozásához válassza az Igen lehetőséget a következő párbeszédpanelen.

Hozzon létre egy BAPI-t az ABAP-ban

Step 5) A program létrehozása és végrehajtása után ellenőrizze a programot az imént létrehozott metódusban. Így létrejön a BAPI.

Hozzon létre egy BAPI-t az ABAP-ban

A BAPI tesztelése

A BAPI-t az alábbi módon tesztelheti Tesztelés az üzleti objektum egyedi metódusa az Business Object Builderben. (vagy használhatja az „SWUD” tranzakciót a módszer tesztelésére) .

A BAPI felszabadítása és lefagyasztása

  • A BAPI feloldásához először engedje fel a funkciómodult (a se37 tranzakcióval).
  • Állítsa a metódus állapotát „kibocsátva” értékre a Business Object Builderben (SWo1 tranzakcióval – Szerkesztés-> Állapot módosítása-> Felszabadítva.)

Használhatja a BAPI Explorert (BAPI tranzakciókód) is a BAPI 360′-os nézetéhez

Hogyan hívhatunk meg egy BAPI-t ABAP-ban

Egy BAPI meghívása megegyezik bármely RFC-képes függvénymodul meghívásával. A fontos szabály, hogy egy BAPI soha nem ad ki saját COMMIT WORK utasítást, így a hívónak a BAPI_TRANSACTION_COMMIT utasítással kell megerősítenie a módosítást, vagy a BAPI_TRANSACTION_ROLLBACK utasítással el kell vetnie. Az alábbi példa egy standard BAPI-val rendelkező értékesítési megrendelést hoz létre.

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.

⚠️ Figyelmeztetés: Mindig ellenőrizd a RETURN táblát E vagy A típusú üzenetek után, mielőtt véglegesíted a folyamatot. A BAPI_TRANSACTION_COMMIT függvény meghívása hiba után hiányos dokumentumot ment, ami az egyik leggyakoribb BAPI hiba.

BAPI vs. BDC vs. RFC

Egy BAPI, egy BDC, és egy sima RFC mind adatokat mozgat a következőbe: SAP, de stabilitásukban és abban különböznek, hogy mire használják újra. Az alábbi táblázat összehasonlítja őket.

Kritériumai BAPI BDC RFC (egyéni)
Felület Egy üzleti objektum kiadott metódusa Egy tranzakció képernyőképének sorrendje Bármely egyéni függvénymodul
Stabilitás frissítéskor Garantált a kiadott BAPI-k esetében Megszakad, ha egy képernyő megváltozik A fejlesztőtől függ
Távoli engedélyezés Igen Nem Igen
Üzleti validáció Teljes, megegyezik a tranzakcióval Teljes, a tényleges képernyőket futtatja Csak azt, amit a fejlesztő kódol
A legjobb Stabil integráció és interfészek Betölti azokat a helyeket, ahol nincs BAPI Egyedi pont-pont szolgáltatások

Az alapszabály az, hogy ha létezik egy, kiadott BAPI-t használunk, ha nincs, akkor BDC-t használunk, és az egyéni RFC-ket az egyedi szolgáltatásokhoz tartjuk fenn.

GYIK

Egy BAPI végrehajtja a frissítést, de a COMMIT WORK műveletet a hívóra hagyja, így több BAPI egyetlen logikai munkaegységgé kombinálható. A BAPI_TRANSACTION_COMMIT ezután együtt menti el őket, megtartva a következőt:ping az adatok konzisztensek.

A BAPIRET2 típusú RETURN tábla tartalmazza a hívás üzeneteit. Az S típusú sor a sikert, az E a hibát, a W a figyelmeztetést és az A a megszakítást jelöli. A hívó ezt olvassa el, hogy eldöntse, véglegesíti-e a hívást.

A BAPI tranzakció megnyitja a BAPI Explorert, amely felsorolja az összes üzleti objektumot és azok metódusait a dokumentációval és a teszteszközökkel együtt. Az SE37 szintén megjelenít egy BAPI-t, mivel mindegyik egy RFC-képes függvénymodul.

Igen. Az ABAP fejlesztőeszközökben található mesterséges intelligencia asszisztensek a standard BAPI-t javasolják egy üzleti objektumhoz, és elkészítik a paramétertérképet.ping, és adja hozzá a commitot és a hibakezelést. A fejlesztő megerősíti a mezőket és teszteli a hívást.

Igen. Sok OData szolgáltatás és MI-integráció egy BAPI-t hív meg alul, mivel az már tartalmazza az üzleti logikát. Az újabb rétegek REST hozzáférést és természetes nyelvet adnak hozzá a stabil BAPI felülethez.

Foglald össze ezt a bejegyzést a következőképpen: