SAP ABAP/기본

Function Module(함수 모듈) 생성 및 사용 방법

물꼬_ 2025. 1. 21. 19:35

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 생성 방법

  1. SE80 (Object Navigator) 실행
  2. Function Group 선택 후 Create
  3. Function Group의 이름 입력 (Z 또는 Y로 시작)
  4. 저장 후 Activate(활성화)

2️⃣ Function Module(펑션 모듈) 생성

  • Function Group이 생성되었으면, 이제 Function Module을 만들어야 한다.

🔹 Function Module 생성 방법

  1. SE37 (Function Builder) 실행
  2. Function Module 이름 입력 (Z 또는 Y로 시작)
  3. Create(생성) 버튼 클릭
  4. Function Module 속성 입력
    • Function Group 선택
    • Short Text(설명) 입력
  5. 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 값을 활용하여 오류를 확인할 수 있다.

Import(입력값) 추가

 

Export(출력값) 추가

 

Exception(예외 처리) 추가


📍 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을 사용하여 호출할 수 있다.