SAP Hướng dẫn BAPI – Cách tạo BAPI trong ABAP

⚡ Tóm tắt thông minh

BAPI trong SAP ABAP là một phương thức chuẩn hóa, hỗ trợ RFC của đối tượng nghiệp vụ, cho phép các ứng dụng bên ngoài truy cập vào các quy trình và dữ liệu của R/3. Trang này giải thích về các BAPI chuẩn hóa, cách tạo một BAPI trong SWO1, kiểm thử, phát hành và cách gọi BAPI từ ABAP.

  • 🔌 Định nghĩa cốt lõi: Giao diện lập trình ứng dụng doanh nghiệp (BAIP) là một phương pháp ổn định cung cấp cho các hệ thống bên ngoài quyền truy cập tiêu chuẩn hóa vào... SAP quy trình kinh doanh và dữ liệu.
  • 🗃️ Kho lưu trữ đối tượng nghiệp vụ: BAPI được định nghĩa trong BOR là các phương thức của các kiểu đối tượng nghiệp vụ và được triển khai dưới dạng các mô-đun chức năng hỗ trợ RFC.
  • 📚 BAPI tiêu chuẩn hóa: Các phương thức GetList, GetDetail, Create, Change, Delete và các biến thể Multiple cung cấp các phương pháp đọc, ghi và xử lý hàng loạt có thể tái sử dụng.
  • 🛠️ Sự sáng tạo: Một BAPI được xây dựng trong giao dịch SWO1 bằng cách thêm một phương thức API trỏ đến một mô-đun chức năng được kích hoạt RFC.
  • Kiểm thử và phát hành: Phương thức được kiểm thử trong Business Object Builder hoặc SWUD, sau đó được phát hành bằng cách giải phóng mô-đun chức năng và thiết lập trạng thái phương thức.
  • 📞 Gọi BAPI: Một chương trình ABAP gọi module hàm và sau đó thực hiện commit bằng BAPI_TRANSACTION_COMMIT, vì BAPI không tự thực hiện commit.

Cách tạo BAPI trong SAP ABAP

BAPI là gì?

Giao diện lập trình ứng dụng doanh nghiệp (BAPI) là các giao diện (phương thức) lập trình được tiêu chuẩn hóa cho phép các ứng dụng bên ngoài truy cập vào các quy trình và dữ liệu kinh doanh trong Hệ thống R/3.

Thi cung cấp các phương pháp ổn định và tiêu chuẩn hóa để đạt được sự tích hợp liền mạch giữa Hệ thống R/3 và các ứng dụng bên ngoài, hệ thống cũ và tiện ích bổ sung.

BAPI được xác định trong BOR(Kho đối tượng kinh doanh) như các phương pháp SAP Các loại đối tượng nghiệp vụ thực hiện các chức năng nghiệp vụ cụ thể. Chúng được triển khai như sau: Chức năng hỗ trợ RFC các mô-đun và được tạo trong Trình tạo chức năng của Bàn làm việc ABAP.

Một số BAPI và phương pháp cung cấp các chức năng cơ bản và có thể được sử dụng cho hầu hết các mục đích SAP Đối tượng kinh doanh. Chúng được gọi là BAPI ĐƯỢC TIÊU CHUẨN.

Danh sách BAPI được tiêu chuẩn hóa:

  • BAPI để đọc dữ liệu – GetList() , GetDetail() , GetStatus() , ExistenceCheck()
  • BAPI để tạo hoặc thay đổi dữ liệu- Create() ,Change(),Delete() và Undelete() ,
  • BAPI để xử lý hàng loạt -ChangeMultiple(), CreateMultiple(), DeleteMultiple().

Ưu điểm của BAPI

BAPI được ưa chuộng hơn các kỹ thuật dựa trên màn hình vì nó là một giao diện được ghi chép và phát hành. SAP Duy trì tính ổn định qua các phiên bản. Điều này mang lại một số lợi ích thiết thực.

  • Giao diện ổn định: Chữ ký của một BAPI đã được phát hành không thay đổi khi nâng cấp, do đó chương trình gọi vẫn hoạt động bình thường.
  • Tái sử dụng logic nghiệp vụ: BAPI thực hiện các bước xác thực tương tự như giao dịch, do đó dữ liệu được thêm vào thông qua nó luôn nhất quán.
  • Kích hoạt từ xa: Vì BAPI là một mô-đun chức năng hỗ trợ RFC, nên nó có thể được gọi từ một mô-đun khác. SAP hệ thống, một Java hoặc chương trình .NET, hoặc dịch vụ web.
  • Không phụ thuộc vào màn hình: Khác với việc ghi dữ liệu nhập hàng loạt, BAPI không bị lỗi khi bố cục màn hình thay đổi.

Sau khi đã hiểu rõ khái niệm và lợi ích của nó, phần tiếp theo sẽ hướng dẫn xây dựng BAPI từng bước một.

Cách tạo BAPI

Bước 1) Đi tới giao dịch swo1 (Công cụ->Khung nghiệp vụ -> Phát triển BAPI ->Trình tạo đối tượng nghiệp vụ). Chọn đối tượng nghiệp vụ, theo yêu cầu chức năng mà BAPI đang được tạo.

Tạo BAPI trong ABAP

Bước 2) Mở đối tượng kinh doanh ở chế độ thay đổi. Sau đó chọn Tiện ích -> Phương thức API -> Thêm phương thức. Sau đó nhập tên mô-đun chức năng và chọn Tiếp tục.

Tạo BAPI trong ABAP

Bước 3) Trong hộp thoại tiếp theo, cần phải chỉ định những thông tin sau:

  • Phương pháp: Đề xuất một tên thích hợp cho phương pháp,
  • Văn bản: Nhập mô tả cho BAPI,
  • Các nút radio: Hộp thoại, Synchronous, độc lập với phiên bản. BAPI thường được triển khai đồng bộ.

Tạo BAPI trong ABAP

Bước 4) Để tạo phương pháp, hãy chọn Có trong hộp thoại tiếp theo.

Tạo BAPI trong ABAP

Bước 5) Sau khi chương trình được tạo và thực thi, hãy kiểm tra chương trình theo phương thức vừa tạo. Như vậy, BAPI được tạo.

Tạo BAPI trong ABAP

Kiểm tra BAPI

Bạn có thể kiểm tra BAPI bằng cách Kiểm tra phương thức riêng lẻ của Đối tượng Kinh doanh trong Trình tạo Đối tượng Kinh doanh. (hoặc người ta có thể sử dụng giao dịch 'SWUD' để kiểm tra phương thức).

Phát hành và đóng băng BAPI

  • Để giải phóng BAPI, trước tiên hãy giải phóng mô-đun chức năng (sử dụng giao dịch se37).
  • Đặt trạng thái của phương thức thành 'đã phát hành' trong Trình tạo đối tượng nghiệp vụ (sử dụng giao dịch SWo1 – Chỉnh sửa-> thay đổi trạng thái-> đã phát hành. )

Bạn cũng có thể sử dụng BAPI Explorer (Mã giao dịch BAPI) để xem 360′ trên BAPI

Cách gọi BAPI trong ABAP

Một BAPI được gọi giống như bất kỳ module hàm nào được kích hoạt RFC. Quy tắc quan trọng là BAPI không bao giờ tự phát ra lệnh COMMIT WORK, vì vậy người gọi phải xác nhận thay đổi bằng BAPI_TRANSACTION_COMMIT hoặc hủy bỏ nó bằng BAPI_TRANSACTION_ROLLBACK. Ví dụ dưới đây tạo một đơn đặt hàng bán hàng bằng BAPI chuẩn.

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.

⚠️ Cảnh báo: Luôn kiểm tra bảng RETURN để tìm thông báo loại E hoặc A trước khi thực hiện lệnh commit. Việc gọi BAPI_TRANSACTION_COMMIT sau khi xảy ra lỗi sẽ lưu một chứng từ chưa hoàn chỉnh, đây là một trong những lỗi BAPI phổ biến nhất.

BAPI so với BDC so với RFC

Một BAPI, một BDCvà một RFC đơn giản đều chuyển dữ liệu vào SAPNhưng chúng khác nhau về độ ổn định và khả năng tái sử dụng. Bảng dưới đây so sánh chúng.

Tiêu chí BAPI BDC RFC (tùy chỉnh)
Giao thức Phương thức Released của một đối tượng nghiệp vụ Trình tự hiển thị màn hình của một giao dịch Bất kỳ mô-đun chức năng tùy chỉnh nào
Độ ổn định khi nâng cấp Đảm bảo cho các BAPI đã phát hành. Sẽ bị lỗi nếu màn hình thay đổi Tùy thuộc vào nhà phát triển.
Đã bật từ xa Không
Xác thực kinh doanh Đầy đủ, giống như giao dịch Đầy đủ, hiển thị các màn hình thực tế Chỉ những gì nhà phát triển lập trình mới làm được.
Tốt nhất cho Tích hợp và giao diện ổn định Tải dữ liệu khi không có BAPI nào tồn tại. Dịch vụ kết nối điểm-đến-điểm tùy chỉnh

Nguyên tắc chung là sử dụng BAPI đã được phát hành bất cứ khi nào có sẵn, chuyển sang sử dụng BDC khi không có, và chỉ dành các RFC tùy chỉnh cho các dịch vụ đặc thù.

Câu Hỏi Thường Gặp

Một BAPI thực hiện việc cập nhật nhưng để lại lệnh COMMIT WORK cho người gọi, do đó nhiều BAPI có thể được kết hợp thành một đơn vị công việc logic duy nhất. Sau đó, BAPI_TRANSACTION_COMMIT lưu chúng lại với nhau, giữ nguyên...ping Dữ liệu nhất quán.

Bảng RETURN thuộc kiểu BAPIRET2 chứa các thông báo của lệnh gọi. Một hàng thuộc kiểu S là thành công, E là lỗi, W là cảnh báo và A là hủy bỏ. Bên gọi đọc bảng này để quyết định có thực hiện lệnh gọi hay không.

Giao dịch BAPI mở Trình khám phá BAPI, liệt kê mọi đối tượng nghiệp vụ và các phương thức của nó cùng với tài liệu và công cụ kiểm thử. SE37 cũng hiển thị một BAPI, vì mỗi BAPI là một mô-đun chức năng được kích hoạt RFC.

Đúng vậy. Các trợ lý AI trong các công cụ phát triển ABAP đề xuất BAPI chuẩn cho một đối tượng nghiệp vụ, lập bản đồ tham số.pingvà thêm phần xử lý lỗi và cam kết. Nhà phát triển xác nhận các trường và kiểm tra lệnh gọi.

Đúng vậy. Nhiều dịch vụ OData và tích hợp AI gọi đến BAPI ở tầng dưới, vì nó đã chứa sẵn logic nghiệp vụ. Các lớp mới hơn bổ sung thêm quyền truy cập REST và xử lý ngôn ngữ tự nhiên trên nền giao diện BAPI ổn định.

Tóm tắt bài viết này với: