SAP Tutorial BAPI – Cum se creează BAPI în ABAP

⚡ Rezumat inteligent

BAPI în SAP ABAP este o metodă standardizată, activată prin RFC, a unui obiect business, care permite aplicațiilor externe să acceseze procesele și datele R/3. Această pagină explică BAPI-urile standardizate, cum se creează unul în SWO1, testarea, lansarea și cum se apelează un BAPI din ABAP.

  • 🔌 Definiția de bază: O interfață de programare a aplicațiilor de business este o metodă stabilă care oferă sistemelor externe acces standardizat la SAP procese și date de afaceri.
  • 🗃️ Depozit de obiecte business: BAPI-urile sunt definite în BOR ca metode ale tipurilor de obiecte business și implementate ca module de funcții activate pentru RFC.
  • 📚 BAPI-uri standardizate: Variantele GetList, GetDetail, Create, Change, Delete și Multiple oferă metode reutilizabile de citire, scriere și procesare în masă.
  • 🛠️ Creare: O API BAPI este construită în tranzacția SWO1 prin adăugarea unei metode API care indică un modul de funcții activat pentru RFC.
  • Testare și lansare: Metoda este testată în Business Object Builder sau SWUD, apoi lansată prin eliberarea modulului funcțional și setarea stării metodei.
  • 📞 Apelarea unui BAPI: Un program ABAP apelează modulul de funcții și apoi se confirmă cu BAPI_TRANSACTION_COMMIT, deoarece un BAPI nu se confirmă singur.

Cum se creează BAPI în SAP ABAP

Ce este BAPI?

Business Application Programming Interface (BAPI) sunt interfețe (metode) de programare standardizate care permit aplicațiilor externe să acceseze procesele și datele de afaceri din sistemul R/3.

Ei oferi metode stabile și standardizate pentru a realiza o integrare perfectă între sistemul R/3 și aplicațiile externe, sistemele vechi și suplimentele.

BAPI-urile sunt definite în BOR (depozitarul obiectelor de afaceri) ca metode de SAP tipuri de obiecte business care îndeplinesc funcții business specifice. Acestea sunt implementate ca Funcție activată pentru RFC module și sunt create în Function Builder al ABAP Workbench.

Unele BAPI-uri și metode oferă funcții de bază și pot fi utilizate pentru majoritatea SAP Obiecte de afaceri. Acestea sunt numite BAPI-uri STANDARDIZATE.

Lista BAPI-urilor standardizate:

  • BAPI-uri pentru citirea datelor – GetList() , GetDetail() , GetStatus() , ExistenceCheck()
  • BAPI-uri pentru crearea sau modificarea datelor - Create() ,Change(),Delete() și Undelete() ,
  • BAPI-uri pentru procesare în masă -ChangeMultiple(), CreateMultiple(), DeleteMultiple().

Avantajele BAPI

O interfață BAPI este preferată tehnicilor bazate pe ecran, deoarece este o interfață documentată și lansată care SAP menține stabilitatea de-a lungul versiunilor. Acest lucru aduce mai multe beneficii practice.

  • Interfață stabilă: Semnătura unei API lansate nu se modifică la o actualizare, așadar programul apelant continuă să funcționeze.
  • Reutilizarea logicii de business: Un BAPI execută aceleași validări ca și tranzacția, astfel încât datele adăugate prin intermediul său rămân consecvente.
  • Activat de la distanță: Deoarece un BAPI este un modul de funcții activat RFC, acesta poate fi apelat din altă parte. SAP sistem, a Java sau un program .NET sau un serviciu web.
  • Fără dependență de ecran: Spre deosebire de o înregistrare de intrare în lot, un BAPI nu se întrerupe atunci când se modifică aspectul ecranului.

Având conceptul și beneficiile sale clare, următoarea secțiune construiește un BAPI pas cu pas.

Cum se creează un BAPI

Pas 1) Accesați tranzacția swo1 (Tools->Business Framework -> BAPI Development ->Business Object builder ) .Selectați obiectul de afaceri, conform cerinței funcționale pentru care este creat BAPI.

Creați un BAPI în ABAP

Pas 2) Deschideți obiectul de afaceri în modul de modificare. Apoi selectați Utilities ->API Methods ->Add method. Apoi introduceți numele modulului funcțional și selectați Continue.

Creați un BAPI în ABAP

Pas 3) În următoarea casetă de dialog, trebuie specificate următoarele informații:

  • Metodă: sugerați un nume adecvat pentru metodă,
  • Texte: Introduceți descrierea pentru BAPI,
  • Butoane radio : Dialog, Synchronous, independent de instanță. BAPI-urile sunt de obicei implementate sincron.

Creați un BAPI în ABAP

Pas 4) Pentru a crea metoda, selectați Da în următoarea casetă de dialog.

Creați un BAPI în ABAP

Pas 5) După ce programul a fost generat și executat, verificați programul în metoda tocmai creată. Astfel, este creat un BAPI.

Creați un BAPI în ABAP

Testarea BAPI

Puteți testa BAPI prin Testarea metoda individuală a Business Object din Business Object Builder. (sau se poate folosi tranzacția „SWUD” pentru a testa metoda).

Eliberarea și înghețarea BAPI

  • Pentru a elibera BAPI , mai întâi eliberați modulul de funcție ( folosind tranzacția se37 ) .
  • Setați starea metodei la „eliberată” în Business Object Builder (folosind tranzacția SWo1 – Editare-> modificare stare-> eliberat. )

Puteți utiliza, de asemenea, BAPI Explorer (Cod tranzacție BAPI) pentru vizualizarea 360′ pe BAPI

Cum se apelează un BAPI în ABAP

Un BAPI este apelat ca orice modul de funcție activat RFC. Regula importantă este că un BAPI nu emite niciodată propriul COMMIT WORK, așadar apelantul trebuie să confirme modificarea cu BAPI_TRANSACTION_COMMIT sau să o anuleze cu BAPI_TRANSACTION_ROLLBACK. Exemplul de mai jos creează o comandă de vânzare cu un BAPI standard.

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.

⚠️ Atenție: Verificați întotdeauna tabela RETURN pentru un mesaj de tip E sau A înainte de validare. Apelarea funcției BAPI_TRANSACTION_COMMIT după o eroare salvează un document incomplet, aceasta fiind una dintre cele mai frecvente greșeli BAPI.

BAPI vs. BDC vs. RFC

Un BAPI, un BDCși un RFC simplu mută toate datele în SAP, dar diferă în ceea ce privește stabilitatea și reutilizarea. Tabelul de mai jos le compară.

Criterii BAPI BDC RFC (personalizat)
interfaţă Metoda lansată a unui obiect business Secvența de ecran a unei tranzacții Orice modul de funcții personalizate
Stabilitate la actualizare Garantat pentru BAPI-urile eliberate Întreruperi dacă se schimbă un ecran Depinde de dezvoltator
Telecomanda activată Da Nu Da
Validarea afacerii Complet, la fel ca tranzacția Complet, rulează ecranele reale Doar ceea ce codează dezvoltatorul
Cel mai bun pentru Integrare și interfețe stabile Încărcări unde nu există BAPI Servicii personalizate punct la punct

Regula generală este să se utilizeze un BAPI lansat ori de câte ori există unul, să se recurgă la un BDC atunci când acesta nu există și să se rezerve RFC-uri personalizate pentru servicii personalizate.

Întrebări frecvente

Un BAPI efectuează actualizarea, dar lasă sarcina COMMIT WORK apelantului, astfel încât mai multe BAPI-uri pot fi combinate într-o singură unitate logică de lucru. BAPI_TRANSACTION_COMMIT le salvează apoi împreună, păstrândping datele sunt consistente.

Tabela RETURN de tip BAPIRET2 conține mesajele apelului. Un rând de tip S reprezintă succes, E reprezintă eroare, W reprezintă avertisment, iar A reprezintă abandonare. Apelantul îl citește pentru a decide dacă va valida apelul.

Transaction BAPI deschide BAPI Explorer, care listează fiecare obiect business și metodele sale, împreună cu documentația și instrumentele de testare. SE37 prezintă, de asemenea, un BAPI, deoarece fiecare este un modul de funcție activat RFC.

Da. Asistenții AI din instrumentele de dezvoltare ABAP sugerează BAPI-ul standard pentru un obiect de business, schițează harta parametrilor.pingși adăugați commit-ul și gestionarea erorilor. Dezvoltatorul confirmă câmpurile și testează apelul.

Da. Multe servicii OData și integrări AI apelează la un BAPI în interior, deoarece acesta transportă deja logica de business. Noile straturi adaugă acces REST și limbaj natural peste interfața BAPI stabilă.

Rezumați această postare cu: