✅ Function Module(함수 모듈)이란?
- Function Module(펑션 모듈)은 ABAP에서 재사용 가능한 함수(Function)이다.
- Function Module은 Function Group(펑션 그룹) 내에서 관리되며, 여러 프로그램에서 호출하여 사용할 수 있다.
- ABAP의 표준 라이브러리 함수처럼 동작하며, 필요할 때 호출하여 기능을 수행할 수 있다.
- Exception(예외) 처리를 포함할 수 있어 안정적인 코드 작성이 가능하다.
📍 Function Module 생성 방법
1️⃣ Function Group(펑션 그룹) 생성
- Function Module은 반드시 Function Group 내에서 관리되어야 한다.
- Function Group은 여러 개의 Function Module을 포함하는 컨테이너 역할을 한다.
- Function Group을 생성한 후, 그 안에 Function Module을 추가해야 한다.
🔹 Function Group 생성 방법
- SE80 (Object Navigator) 실행
- Function Group 선택 후 Create
- Function Group의 이름 입력 (Z 또는 Y로 시작)
- 저장 후 Activate(활성화)
2️⃣ Function Module(펑션 모듈) 생성
- Function Group이 생성되었으면, 이제 Function Module을 만들어야 한다.
🔹 Function Module 생성 방법
- SE37 (Function Builder) 실행
- Function Module 이름 입력 (Z 또는 Y로 시작)
- Create(생성) 버튼 클릭
- Function Module 속성 입력
- Function Group 선택
- Short Text(설명) 입력
- Function Module 내부 로직 작성 후 Activate(활성화)
📌 Function Module의 주요 구성 요소
구성요소 | 설명 |
Import Parameters | 함수 실행 시 입력값(Parameters) |
Export Parameters | 함수 실행 후 출력값(Return Value) |
Changing Parameters | 입력값을 받아 변경 후 반환 |
Tables Parameters | 테이블 데이터 전달 |
Exceptions | 예외 처리(오류 발생 시 대응 방법 정의) |
📌 3️⃣ Function Module에 Import, Export, Exception 추가하기
✅ Import(입력값) 추가
- Function Module이 실행될 때 외부에서 입력받을 값을 정의한다.
- Import 파라미터를 설정하면, Function Module 호출 시 값을 전달해야 한다.
✅ Export(출력값) 추가
- Function Module 실행 후 계산된 결과값을 반환한다.
- Export 파라미터를 설정하면, Function Module을 호출한 프로그램에서 결과를 받을 수 있다.
✅ Exception(예외 처리) 추가
- Function Module 실행 중 오류가 발생하면 예외 처리(Exception Handling)를 수행한다.
- Exception을 설정하면 오류 발생 시 SY-SUBRC 값을 활용하여 오류를 확인할 수 있다.
📍 Function Module 사용 방법
1️⃣ Function Module 호출 방법
Function Module은 두 가지 방법으로 호출할 수 있다.
1️⃣ Function Group에서 원하는 Function Module을 직접 호출
2️⃣ Pattern을 사용하여 Function Module을 불러옴
🔹 Function Module 호출 예제
DATA: lv_input TYPE i VALUE 10,
lv_output TYPE i.
CALL FUNCTION 'Z_MY_FUNCTION_MODULE'
EXPORTING
iv_value = lv_input
IMPORTING
ev_result = lv_output
EXCEPTIONS
invalid_input = 1
others = 2.
IF sy-subrc <> 0.
WRITE: / '오류 발생! Function Module 실행 실패'.
ELSE.
WRITE: / 'Function Module 실행 성공. 결과:', lv_output.
ENDIF.
2️⃣ Function Module 호출 시 주요 부분 설명
✅ EXPORTING iv_value = lv_input → Function Module에 입력값(Import Parameter) 전달
✅ IMPORTING ev_result = lv_output → Function Module 실행 후 결과값(Export Parameter) 반환
✅ EXCEPTIONS invalid_input = 1 → 예외 처리(오류 발생 시 대응)
✅ IF sy-subrc <> 0 → Function Module 실행 결과 확인 (성공 or 실패 판별)
🔹 SY-SUBRC란?
- Function Module 실행 후 반환되는 시스템 필드.
- SY-SUBRC = 0이면 정상 실행, SY-SUBRC ≠ 0이면 오류 발생.
🚀 Function Module을 사용하는 이유
✅ 코드 재사용 가능 → 여러 프로그램에서 동일한 기능을 사용할 수 있음
✅ 모듈화된 개발 가능 → 유지보수가 편리하며, 코드가 간결해짐
✅ 예외 처리 기능 제공 → 오류 발생 시 안전한 코드 실행 가능
✅ 테이블 데이터를 활용한 연산 가능 → Import/Export 외에도 Tables 활용 가능
📌 요약
✔️ Function Module(펑션 모듈)은 ABAP에서 재사용 가능한 함수로, Function Group 내에서 관리된다.
✔️ Import(입력값), Export(출력값), Exception(예외 처리)를 설정하여 기능을 확장할 수 있다.
✔️ SY-SUBRC 값을 활용하여 Function Module 실행 결과를 확인하고 오류를 처리할 수 있다.
✔️ Function Module을 사용하면 코드 재사용과 유지보수가 쉬워지고, 안전한 예외 처리가 가능하다.
💡 핵심 정리
Function Module을 사용하면 프로그램을 모듈화하고 코드 재사용성을 높일 수 있으며,
예외 처리를 통해 안전한 실행이 가능하다.
SE37을 사용하여 Function Module을 생성하고, CALL FUNCTION을 사용하여 호출할 수 있다.
'SAP ABAP > 기본' 카테고리의 다른 글
Internal Tables (인터널 테이블) 개요 및 변수 선언 (0) | 2025.01.26 |
---|---|
Structures Variable (스트럭쳐 타입) (0) | 2025.01.26 |
서브루틴 (Subroutine)과 파라미터 전달 방식 (CALL BY REFERENCE / RESULT / VALUE / USING / CHANGING) (0) | 2025.01.21 |
서브루틴(Subroutine) vs 펑션 모듈(Function Module) – 차이점 비교 (0) | 2025.01.19 |
오류 수정 - ABAP Debugger 사용법 (0) | 2025.01.15 |