SAP Výukový program BAPI – Jak vytvořit BAPI v ABAP

⚡ Chytré shrnutí

BAPI v SAP ABAP je standardizovaná metoda obchodního objektu s podporou RFC, která umožňuje externím aplikacím přístup k procesům a datům R/3. Tato stránka vysvětluje standardizovaná rozhraní BAPI, jak je vytvořit v SWO1, jak je testovat, jak je vydávat a jak volat BAPI z ABAP.

  • 🔌 Základní definice: Rozhraní pro programování obchodních aplikací (Business Application Programming Interface) je stabilní metoda, která poskytuje externím systémům standardizovaný přístup k SAP obchodní procesy a data.
  • 🗃️ Úložiště obchodních objektů: BAPI jsou v BOR definována jako metody typů obchodních objektů a implementována jako funkční moduly s podporou RFC.
  • ???? Standardizované BAPI: Varianty GetList, GetDetail, Create, Change, Delete a Multiple poskytují opakovaně použitelné metody pro čtení, zápis a hromadné zpracování.
  • 🛠️ Stvoření: Rozhraní BAPI je v transakci SWO1 zabudováno přidáním metody API, která odkazuje na funkční modul s povoleným RFC.
  • (Tj. Testování a vydání: Metoda je testována v nástroji Business Object Builder nebo SWUD a poté uvolněna uvolněním funkčního modulu a nastavením stavu metody.
  • 📞 Volání BAPI: Program ABAP volá funkční modul a poté provede potvrzení (commit) s parametrem BAPI_TRANSACTION_COMMIT, protože BAPI samo o sobě neprovádí potvrzení (commit).

Jak vytvořit BAPI v SAP ABAP

Co je BAPI?

Business Application Programming Interface (BAPI) jsou standardizovaná programovací rozhraní (metody) umožňující externím aplikacím přístup k obchodním procesům a datům v systému R/3.

Oni poskytují stabilní a standardizované metody k dosažení bezproblémové integrace mezi systémem R/3 a externími aplikacemi, staršími systémy a doplňky.

BAPI jsou definovány v BOR (úložiště obchodních objektů) jako metody SAP typy obchodních objektů, které provádějí specifické obchodní funkce. Jsou implementovány jako Funkce s podporou RFC moduly a jsou vytvořeny v Tvůrci funkcí ABAP Workbench.

Některé BAPI a metody poskytují základní funkce a lze je použít pro většinu SAP Business Objects.Tyto se nazývají STANDARDIZOVANÉ BAPI.

Seznam standardizovaných BAPI:

  • BAPI pro čtení dat – GetList() , GetDetail() , GetStatus() , ExistenceCheck()
  • BAPI pro vytváření nebo změnu dat – Create() ,Change(),Delete() a Undelete() ,
  • BAPI pro hromadné zpracování -ChangeMultiple(), CreateMultiple(), DeleteMultiple().

Výhody BAPI

BAPI je upřednostňováno před technikami založenými na obrazovce, protože se jedná o zdokumentované a vydané rozhraní, které SAP zůstává stabilní napříč verzemi. To přináší několik praktických výhod.

  • Stabilní rozhraní: Podpis vydaného BAPI se při upgradu nemění, takže volající program pokračuje v práci.
  • Opětovné použití obchodní logiky: BAPI provádí stejná ověření jako transakce, takže data přidaná skrze něj zůstávají konzistentní.
  • Dálkové ovládání povoleno: Protože BAPI je funkční modul s podporou RFC, lze jej volat z jiného SAP systém, Java nebo program .NET, případně webová služba.
  • Bez závislosti na obrazovce: Na rozdíl od dávkového vstupního záznamu se BAPI nepřeruší při změně rozvržení obrazovky.

S jasným konceptem a jeho výhodami se v další části krok za krokem vytvoří BAPI.

Jak vytvořit BAPI

Krok 1) Přejděte na transakci swo1 (Nástroje->Business Framework -> Vývoj BAPI ->Business Object builder) . Vyberte obchodní objekt podle funkčního požadavku, pro který se vytváří BAPI.

Vytvořte BAPI v ABAP

Krok 2) Otevřete obchodní objekt v režimu změn. Poté vyberte Utilities ->API Methods ->Add method.Pak zadejte název funkčního modulu a zvolte Pokračovat.

Vytvořte BAPI v ABAP

Krok 3) V dalším dialogovém okně je třeba zadat následující informace:

  • Metoda : Navrhněte vhodný název pro metodu,
  • Texty: Zadejte popis pro BAPI,
  • Přepínací tlačítka: dialog, Synchronosný, na instanci nezávislý . BAPI jsou obvykle implementovány synchronně.

Vytvořte BAPI v ABAP

Krok 4) Chcete-li vytvořit metodu, vyberte v dalším dialogovém okně Ano.

Vytvořte BAPI v ABAP

Krok 5) Po vygenerování a spuštění programu zkontrolujte program v právě vytvořené metodě. Tím se vytvoří BAPI.

Vytvořte BAPI v ABAP

Testování BAPI

BAPI můžete otestovat pomocí Testování individuální metoda Business Object v Business Object Builderu. (nebo lze k otestování metody použít transakci 'SWUD') .

Uvolnění a zmrazení BAPI

  • Chcete-li uvolnit BAPI, nejprve uvolněte funkční modul (pomocí transakce se37).
  • Nastavte stav metody na „uvolněno“ v nástroji Business Object Builder (pomocí transakce SWo1 – Upravit-> změnit stav-> uvolněno. )

Můžete také použít BAPI Explorer (transakční kód BAPI) pro 360′ zobrazení na BAPI

Jak volat BAPI v ABAP

Rozhraní BAPI se volá stejně jako jakýkoli funkční modul s podporou RFC. Důležitým pravidlem je, že BAPI nikdy nevydává vlastní příkaz COMMIT WORK, takže volající musí změnu potvrdit pomocí BAPI_TRANSACTION_COMMIT nebo ji zahodit pomocí BAPI_TRANSACTION_ROLLBACK. Následující příklad vytvoří prodejní objednávku se standardním rozhraním BAPI.

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.

Warning️ Varování: Před potvrzením (commitem) vždy zkontrolujte tabulku RETURN, zda neobsahuje zprávu typu E nebo A. Volání BAPI_TRANSACTION_COMMIT po chybě uloží neúplný dokument, což je jedna z nejčastějších chyb BAPI.

BAPI vs. BDC vs. RFC

BAPI, a BDCa prostý RFC přesouvají všechna data do SAP, ale liší se stabilitou a tím, co znovu používají. Níže uvedená tabulka je porovnává.

Kritéria BAPI BDC RFC (vlastní)
Rozhraní Uvolněná metoda obchodního objektu Sekvence obrazovky transakce Jakýkoli vlastní funkční modul
Stabilita při upgradu Zaručeno pro vydané BAPI Přeruší se, pokud se změní obrazovka Záleží na vývojáři
Dálkové ovládání povoleno Ano Ne Ano
Ověření obchodní činnosti Plná, stejná jako transakce Plná, spouští skutečné obrazovky Pouze to, co vývojář kóduje
Nejlepší pro Stabilní integrace a rozhraní Zatížení, kde neexistuje BAPI Zakázkové služby point-to-point

Pravidlem je používat vydané BAPI, kdykoli existuje, v případě neexistence se uchýlit k BDC a rezervovat vlastní RFC pro zakázkové služby.

Nejčastější dotazy

BAPI provádí aktualizaci, ale ponechává COMMIT WORK na volajícím, takže několik BAPI lze sloučit do jedné logické jednotky práce. BAPI_TRANSACTION_COMMIT je pak ukládá společně, keeping data konzistentní.

Tabulka RETURN typu BAPIRET2 obsahuje zprávy volání. Řádek typu S představuje úspěch, E chybu, W varování a A přerušení. Volající si ji přečte, aby se rozhodl, zda provést potvrzení (commit).

Transakční BAPI otevírá Průzkumník BAPI, který obsahuje seznam všech obchodních objektů a jejich metod s dokumentací a testovacími nástroji. SE37 také zobrazuje BAPI, protože každý z nich je funkční modul s podporou RFC.

Ano. Asistenti umělé inteligence v nástrojích pro vývoj ABAP navrhují standardní BAPI pro obchodní objekt a vytvářejí mapu parametrů.pinga přidejte commit a ošetření chyb. Vývojář potvrdí pole a otestuje volání.

Ano. Mnoho služeb OData a integrací umělé inteligence nazývá BAPI pod sebou, protože to již nese obchodní logiku. Novější vrstvy přidávají REST přístup a přirozený jazyk nad rámec stabilního rozhraní BAPI.

Shrňte tento příspěvek takto: