728x90
SMALL
BAPI 란?
- BAPI(Business Application Programming Interface)는 SAP에서 제공하는 표준화된 프로그래밍 인터페이스입니다.
- BAPI는 SAP의 객체 지향 개념을 기반으로 하며, 주로 데이터 통합, 시스템 간 통신, 사용자 정의 애플리케이션 개발 등의 목적으로 사용됩니다.
쉽게 말하면, BAPI는 SAP의 표준 트랜잭션을 프로그램 내에 함수를 통해 실행 하는 기능을 지원하는 것으로 이해하면 되겠습니다.
BAPI의 구조
BAPI는 일반적으로 다음과 같은 구성 요소로 이루어져 있습니다.
- Import Parameters: 외부에서 함수로 전달되는 입력 데이터.
- Export Parameters: BAPI 실행 후 외부로 반환되는 출력 데이터.
- Tables: 입력과 출력을 모두 처리할 수 있는 테이블 형식의 파라미터.
BAPI 사용 예시
- 판매오더를 생성하기 위해 사용 되는 "BAPI_SALESORDER_CREATEFROMDAT2" 함수 ABAP 코드 예시입니다.
DATA: lt_return TYPE TABLE OF bapiret2,
lt_order_items_in TYPE TABLE OF bapiorderitemin,
lt_order_partners TYPE TABLE OF bapiaddr1,
lt_order_schedules TYPE TABLE OF bapischdl,
lt_order_conditions TYPE TABLE OF bapicond,
ls_salesdocument TYPE bapisaleorder,
ls_return TYPE bapiret2.
"헤더 데이터 설정
ls_salesdocument-doc_type = 'OR'. " 주문 유형 (예: 'OR' - 표준 주문)
ls_salesdocument-sales_org = '1000'. " 판매 조직
ls_salesdocument-distr_chan = '10'. " 유통 채널
ls_salesdocument-division = '00'. " 부서
"파트너 정보 설정 (예: 고객)
APPEND VALUE #( partn_role = 'AG' partn_numb = '100000' ) TO lt_order_partners. " AG: 주문자 역할
"주문 항목 설정
APPEND VALUE #( material = 'MAT001' target_qty = '10' plant = '1000' ) TO lt_order_items_in.
"스케줄라인 설정
APPEND VALUE #( it_qty = '10' req_date = '20240809' ) TO lt_order_schedules.
"조건 설정 (예: 가격)
APPEND VALUE #( cond_type = 'PR00' cond_value = '100.00' currency = 'USD' ) TO lt_order_conditions.
"판매 주문 생성 BAPI 호출
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = ls_salesdocument
IMPORTING
salesdocument_ex = ls_salesdocument
TABLES
return = lt_return
order_items_in = lt_order_items_in
order_partners = lt_order_partners
order_schedules = lt_order_schedules
order_conditions = lt_order_conditions.
"반환 메시지 확인
LOOP AT lt_return INTO ls_return.
WRITE: / ls_return-message.
ENDLOOP.
"변경 사항 커밋
IF lt_return IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
▶ BAPI 함수는 SAP 프로세스를 프로그램 내에 태워 사용자가 직접 Standard T-code 접근 없이 데이터를 생성 및 변경할 수 있는 장점이 있습니다. 하지만 수많은 BAPI 함수와 매우 많은 Parameter, 어떤 Parameter를 사용해야 할지 찾기 힘들고 에러 메시지를 찾기 힘들다고 생각됩니다.
다음에는 BAPI 함수를 잘 사용할 수 있는 Tip과 테스트 방법 등을 포스팅해보겠습니다:)
728x90
LIST
'SAP > ABAP' 카테고리의 다른 글
[SAP ABAP]Shift - 문자열 이동 명령어 (0) | 2024.08.23 |
---|---|
[ABAP]시스템 변수 정의 (0) | 2024.08.12 |
[ABAP]ABAP 프로그램 동작 순서 (0) | 2024.08.09 |
[ABAP]ALV Spreadsheet 디폴트 설정 - SALV_BS_ADMIN_MAINTAIN (0) | 2024.08.08 |
[ABAP]SXPG_COMMAND_EXECUTE - SAP 외부 명령어 실행 함수 (0) | 2024.08.07 |