서브루틴(Subroutine) 개요
서브루틴은 FORM과 ENDFORM 구문을 사용하여 정의되며, 프로그램 내에서 재사용 가능한 코드 블록입니다. 주로 반복적인 작업이나 특정 기능을 캡슐화하는 데 사용됩니다.
특징
USING과 CHANGING 키워드를 통해 매개변수를 전달.구문 및 예제:
FORM calculate_sum USING p_num1 TYPE I
p_num2 TYPE I
CHANGING p_result TYPE I.
p_result = p_num1 + p_num2.
ENDFORM.
" 서브루틴 호출
DATA: lv_num1 TYPE I VALUE 5,
lv_num2 TYPE I VALUE 10,
lv_result TYPE I.
PERFORM calculate_sum USING lv_num1 lv_num2 CHANGING lv_result.
WRITE: / 'Sum:', lv_result.
USING: 입력 파라미터를 전달.CHANGING: 출력 또는 결과 값을 반환.함수 모듈(Function Module) 개요
함수 모듈은 SAP에서 제공하는 Function Builder를 통해 생성되며, SAP 시스템 전역에서 호출 가능한 모듈화된 코드입니다.
함수 모듈은 RFM(Remote Function Module)으로 확장 가능하며, 외부 시스템과 통신에도 사용됩니다.
특징
IMPORTING, EXPORTING, CHANGING, TABLES 등의 매개변수를 사용.구문 및 예제:
DATA: lv_output TYPE STRING.
CALL FUNCTION 'FUNCTION_NAME'
EXPORTING
input_param = 'Value'
IMPORTING
output_param = lv_output
EXCEPTIONS
others = 1.
IF sy-subrc = 0.
WRITE: / 'Function executed successfully:', lv_output.
ELSE.
WRITE: / 'Error occurred.'.
ENDIF.
EXPORTING: 함수에 입력값 전달.IMPORTING: 함수의 출력값 받기.EXCEPTIONS: 함수 실행 중 발생할 수 있는 예외 처리.SAP 표준 함수 모듈 예제
BAPI 개요
BAPI는 SAP의 비즈니스 객체(BO)를 통해 외부 애플리케이션과 데이터를 상호작용할 수 있도록 하는 표준화된 인터페이스입니다.
BAPI는 SAP 시스템 내에서 비즈니스 프로세스를 통합하거나 확장하기 위해 사용됩니다.
BAPI의 특징
BAPI의 주요 사용 사례
BAPI_CUSTOMER_GETDETAIL).BAPI_SALESORDER_CREATEFROMDAT2).BAPI_MATERIAL_SAVEDATA).구문 및 예제:
DATA: lt_return TYPE TABLE OF bapiret2,
lv_customer TYPE kunnr.
CALL FUNCTION 'BAPI_CUSTOMER_GETDETAIL'
EXPORTING
customer = '000123'
TABLES
return = lt_return.
IF sy-subrc = 0.
LOOP AT lt_return INTO DATA(ls_return).
WRITE: / ls_return-message.
ENDLOOP.
ELSE.
WRITE: / 'Error calling BAPI.'.
ENDIF.
TABLES: 메시지 또는 결과 값을 테이블 형태로 반환.COMMIT WORK 또는 ROLLBACK WORK로 트랜잭션을 처리.BAPI와 함수 모듈의 차이점