SAP ABAP/ABAP

사용자 입력, 날짜 처리, 서브루틴 구조

정호나 2025. 4. 13. 00:55

✅ 1. 사용자 입력 받기 (PARAMETERS / SELECT-OPTIONS)

🔹 PARAMETERS – 단일 값 입력

abap
복사편집
REPORT z_param_test.

PARAMETERS: p_name TYPE string.

WRITE: '안녕하세요,', p_name, '님!'.

📌 실행 시 화면에 입력창이 뜨고, 입력값이 p_name에 들어감!


🔹 SELECT-OPTIONS – 범위/복수 값 입력

abap
복사편집
REPORT z_select_test.

SELECT-OPTIONS: s_age FOR sy-datum.

WRITE: '입력한 날짜 범위:'.
WRITE: / 'From:', s_age-low.
WRITE: / 'To:', s_age-high.

📌 s_age-low ~ s_age-high → 사용자가 지정한 범위

※ SELECT-OPTIONS는 리스트, 범위, 제외 조건 등 복잡한 검색에 적합해


✅ 2. 날짜 타입 (DATE) 다루기

🔹 오늘 날짜 출력

abap
복사편집
REPORT z_date_today.

WRITE: '오늘 날짜는:', sy-datum.

📌 sy-datum = 시스템 현재 날짜 (YYYYMMDD)


🔹 날짜 계산 (예: 오늘 + 7일)

abap
복사편집
REPORT z_date_calc.

DATA: lv_today    TYPE d,
      lv_due_date TYPE d.

lv_today = sy-datum.
lv_due_date = lv_today + 7.

WRITE: '오늘:', lv_today.
WRITE: / '7일 후:', lv_due_date.

📌 TYPE d는 날짜 타입, ABAP에서는 날짜 연산도 +, -로 가능함


✅ 3. FORM / FUNCTION 모듈 기초

🔹 FORM – 간단한 서브루틴 함수

abap
복사편집
REPORT z_form_test.

DATA: lv_msg TYPE string.

lv_msg = 'ABAP 너무 재밌다!'.

PERFORM print_message USING lv_msg.

FORM print_message USING pv_text TYPE string.
  WRITE: / '>>', pv_text.
ENDFORM.

📌 PERFORM ~ USING → FORM 서브루틴 호출

📌 FORM ~ ENDFORM → 실제 서브루틴 구현


🔹 FUNCTION MODULE – (※ 실제 시스템 연결 필요)

이건 SAP 시스템 안에서만 가능하지만 구조는 이렇게 생김:

abap
복사편집
FUNCTION z_hello_function.
*"------------------------------------------------------
*" * Functionality: 사용자 이름을 받아 인사 메시지 출력
*"------------------------------------------------------
  DATA: lv_result TYPE string.

  CONCATENATE '안녕하세요,' iv_name '님!' INTO lv_result SEPARATED BY space.

  rv_message = lv_result.

ENDFUNCTION.

📌 iv_name (입력), rv_message (출력) 같은 인터페이스 파라미터 설정이 필요

📌 SAP GUI에서 SE37 트랜잭션 코드로 생성/실행 가능함


💡 마무리 꿀팁

'SAP ABAP > ABAP' 카테고리의 다른 글

💻 ABAP 실습용 기초 문제 세트 (with 설명)  (0) 2025.04.13
SAP MM 모듈  (0) 2025.04.09