📌 Internal Table이란?

🔸 정의

Internal Table은 ABAP 프로그램 내에서 데이터를 일시적으로 저장하기 위한 메모리 내의 테이블.
프로그램이 실행 중일 때만 존재하며, 종료되면 사라짐.

🔸 왜 쓰는가?

  • DB를 매번 조회하지 않고 한번 불러온 데이터를 반복 사용하기 위해
  • 계산 결과, 조회 결과, 가공 데이터 등을 메모리에 저장해 빠르게 처리하기 위해
  • 데이터를 반복 처리(loop) 하거나 조건 검색하기 쉽게 하기 위해

🧱 Internal Table의 구조

📎 두 가지 방식이 있음

구식 방식 (Header Line 포함) 내부 테이블에 헤더 라인 포함 구형 프로그램에서 많이 사용됨
신식 방식 (Work Area 분리) 테이블은 테이블대로, Work Area는 따로 권장 방식, 최신 방식

✍️ 사용 방식 비교

1. 구식 방식 (Header Line 사용)

DATA: it_employees TYPE STANDARD TABLE OF zemployees WITH HEADER LINE.

it_employees-ename = 'John'.
APPEND it_employees.  " 헤더 라인의 데이터를 테이블에 추가

2. 신식 방식 (Separate Work Area 사용) ✅ 추천!

 
DATA: it_employees TYPE STANDARD TABLE OF zemployees,
      wa_employee  TYPE zemployees.

wa_employee-ename = 'John'.
APPEND wa_employee TO it_employees.

👉 신식 방식에서는 APPEND, READ, MODIFY 등 모두 work area를 통해 수행!


🔁 Internal Table은 어떻게 쓰이나?

  • DB에서 SELECT한 데이터를 저장해서 반복 처리 (LOOP) 가능
  • 조건 검색, 필터링, 정렬 등 다양한 내부 처리
  • 결과 데이터를 모아서 출력하거나 다른 프로그램/모듈로 전달

🛠 내부적으로 사용하는 용어


Header Line 테이블 자체에 포함된 1개의 레코드 공간 (구식 방식에서만 사용)
Work Area 테이블 구조와 동일한 개별 데이터 단위. 데이터를 담아서 처리함 (신식)
Table Body 내부 테이블에 저장된 전체 레코드 집합

📏 용량 제한 및 성능 팁

  • SAP 내부 구조상 내부 테이블은 최대 약 2GB까지 허용
  • 하지만 가능한 작게 유지하는 것이 성능상 좋음!
  • 여러 프로그램이 큰 테이블을 사용하면 메모리 부족 또는 속도 저하 발생 가능

👉 시스템 운영자(BASIS 담당자)에게 혼날 수 있음 😅


✅ 요약 정리

내부 테이블 실행 중인 프로그램에서 데이터를 메모리에 저장하기 위한 구조
용도 DB 조회 결과 저장, 반복 처리, 계산 값 저장, 화면 출력 등
구식 방식 Header line 사용, 구버전 코드에서 자주 등장
신식 방식 Work area 별도로 선언, 모듈화와 가독성, 재사용성이 뛰어남 → 권장
유의사항 메모리 낭비 주의, 꼭 필요한 데이터만 저장하기

Element Block

사용자에게 더 보기 좋고 직관적인 화면을 제공하기 위해 입력 필드들을 그룹으로 묶고 테두리(FRAME)를 씌우는 방법


📌 목표

Element Block을 사용해서:

  • 관련된 필드들을 묶기
  • 테두리(FRAME)와 제목(TITLE) 붙이기
  • 화면을 더 깔끔하고 사용자 친화적으로 구성

🧾 기본 문법

🔷 블록 정의 기본 구조

SELECTION-SCREEN BEGIN OF BLOCK <block_name> WITH FRAME TITLE <text_symbol>. " 이 안에 PARAMETERS, SELECT-OPTIONS 등 필드들 넣기 
SELECTION-SCREEN END OF BLOCK <block_name>.
 
BLOCK <name> 블록 이름 지정 (예: my_block1)
WITH FRAME 테두리(프레임) 표시
TITLE <text_symbol> 프레임 위에 표시될 제목 (텍스트 심볼 사용)

🔧 예제 코드

SELECTION-SCREEN BEGIN OF BLOCK my_block1 WITH FRAME TITLE text-001.

PARAMETERS: my_ee TYPE i,
            my_box1 AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK my_block1.

INITIALIZATION.
  text-001 = '직원 정보 입력'.

🖼 실행 결과:

 
+----------------------+
| 직원 정보 입력       |
|                      |
| my_ee: [      ]      |
| [ ] my_box1          |
+----------------------+

📌 특징 요약


필드 그룹화 관련 필드를 묶어서 보기 편하게 구성
프레임 추가 블록에 WITH FRAME 옵션으로 박스 테두리 생성
제목 추가 TITLE text-xxx으로 제목 표시 가능 (TEXT-001, TEXT-002 등 사용)
중첩 가능 블록 안에 또 다른 블록을 넣는 것도 가능 (sub-grouping 효과)
선택 요소 구성 완성 지금까지 배운 PARAMETERS, SELECT-OPTIONS, COMMENT, SKIP, ULINE 등과 함께 사용 가능

 

  • TITLE에 사용할 텍스트는 Text Element (Text Symbol) 로 만들기
    → 유지보수도 쉽고, 다국어 대응도 가능해!
  • 실제 SAP 표준 트랜잭션 화면에서도 이런 블록 구조 자주 사용됨
  • 사용자에게 직관적인 데이터 입력 흐름을 만들어주는 데 매우 효과적

✅ 결론

Element Block은 ABAP Selection Screen에서 시각적 그룹화를 위한 핵심 기능

🎯 목표

Selection Screen에 여러 요소를 한 줄(line)로 배치하거나, **정확한 위치(position)**에 필드를 놓는 방법을 배우는 것!


✅ 1. BEGIN OF LINE ... END OF LINE

이 구문은 여러 요소(텍스트, 파라미터 등)를 한 줄 안에 나란히 배치할 수 있게 해준다.

🔹 기본 구조

SELECTION-SCREEN BEGIN OF LINE.

  SELECTION-SCREEN COMMENT /1(15) TEXT-001.  "텍스트 심볼
  SELECTION-SCREEN COMMENT /20(10) comm1.    "변수 comm1의 값
  PARAMETERS: abc(5).                        "5자 길이의 입력 필드

SELECTION-SCREEN END OF LINE.

👉 이 안에 있는 요소들은 한 줄에 나란히 출력
기본적으로 텍스트의 위치/길이는 /위치(길이) 형식으로 설정함!


✅ 2. COMMENT에 쓰이는 값

  • TEXT-001 → 텍스트 심볼 (다국어 지원)
  • comm1 → 변수 (보통 INITIALIZATION에서 값 넣음)
INITIALIZATION.
  comm1 = 'Hello SAP'.

✅ 3. 왜 BEGIN~END 쓰는가?

  • 이렇게 쓰면 PARAMETERS 자체의 기본 라벨은 사라진다
  • 그래서 라벨이 필요하면 반드시 COMMENT를 써서 직접 텍스트를 붙여야 함!

✅ 4. POSITION으로 위치 조절

SELECTION-SCREEN POSITION n.
👉 다음 필드의 시작 위치를 열 단위로 직접 지정 가능

예시:

SELECTION-SCREEN BEGIN OF LINE.
  SELECTION-SCREEN COMMENT /1(10) TEXT-001.
  SELECTION-SCREEN POSITION 30.
  PARAMETERS: abc(5).
SELECTION-SCREEN END OF LINE.

 


✅ 5. POS_LOW, POS_HIGH

SAP 기본 필드처럼 자동 정렬을 하고 싶다면 고정된 위치상수 사용 가능:


상수 의미
POS_LOW 왼쪽 정렬 기준 위치 (Low 필드 위치)
POS_HIGH 오른쪽 정렬 기준 위치 (High 필드 위치)

예시:

SELECTION-SCREEN POSITION POS_LOW. " 기본 왼쪽 정렬 위치 
PARAMETERS: abc(5).
 

✨ 화면 정리 예시 (전체 흐름)

INITIALIZATION.
  comm1 = 'Hello SAP'.

SELECTION-SCREEN BEGIN OF LINE.
  SELECTION-SCREEN COMMENT /1(15) TEXT-001.
  SELECTION-SCREEN COMMENT /20(10) comm1.
  PARAMETERS: abc(5).
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP.      " 한 줄 띄우기
SELECTION-SCREEN ULINE.     " 밑줄

✅ 핵심 정리 요약


기능 설명
BEGIN OF LINE ... END OF LINE 여러 요소를 한 줄에 배치
COMMENT /pos(len) 위치 조절된 설명 텍스트 표시
POSITION n 다음 필드의 열 위치 지정
POS_LOW / POS_HIGH 기본 필드 정렬 위치를 지정할 때 사용
PARAMETERS BEGIN~END 안에 넣으면 기본 라벨 안 나옴, 직접 COMMENT 필요

🧾 📌 목표

Selection Screen에 입력 필드가 아닌 설명용 텍스트(주석) 를 추가하는 방법 익히기

 

✅ 문법 요약: 

SELECTION-SCREEN COMMENT

🔹 기본 형태

SELECTION-SCREEN COMMENT /pos(len) text.

 

요소 설명
/pos 수평 위치 (화면 왼쪽에서 몇 번째 문자)
len 텍스트 길이
text 표시할 텍스트. 직접 문자열 또는 텍스트 심볼 사용

 

🧪 사용 예시

1. 텍스트 심볼(TEXT-001)로 출력

 
SELECTION-SCREEN COMMENT /40(15) TEXT-001. " 위치 40, 길이 15

이렇게 선언한 후, TEXT-001에는 "Surname" 같은 문장을 넣어두면 됨.

➕ Go To > Text Elements > Text Symbols에서 설정 가능


2. 직접 텍스트 변수 사용 (예: comm1)

SELECTION-SCREEN COMMENT /40(15) comm1.
  • 따로 DATA: comm1 TYPE c LENGTH 15. 선언 안 해도 됨
  • 대신 INITIALIZATION 이벤트 블록에서 직접 값 할당:
 
INITIALIZATION. comm1 = 'Hello SAP'.

➡️ 이 방식은 코드로 주석 내용을 유동적으로 제어할 수 있어 유용함


💡 Tip: 위치 조정

  • /40(15) → 화면의 40번째 위치부터 15글자 표시
  • /1(20) → 맨 왼쪽 정렬로 20글자 표시
  • 위치 조절로 라인 아래 설명 추가, 구역 명시 등에 활용 가능


✅ 정리

COMMENT 입력 필드 없이 설명 텍스트만 출력
TEXT-001 텍스트 심볼 활용 → 여러 언어 번역 가능
comm1 코드에서 값 넣는 텍스트 변수 (초기화 블록에서 할당)
위치/길이 /위치(길이) 형식으로 조정 가능

✅ 목적

Selection Screen(선택 화면)을 보기 좋고 직관적으로 만들기!

→ 입력 필드 정렬, 간격 조정, 구분선 넣기 등을 통해 사용자가 이해하기 쉽게 구성

 


 

🧰 사용하는 문법: 

SELECTION-SCREEN

1.  SKIP  – 줄 간 공백 추가

SELECTION-SCREEN SKIP.         " 한 줄 공백
SELECTION-SCREEN SKIP 2.       " 두 줄 공백

 

2.  ULINE –  수평 구분선 추가

SELECTION-SCREEN ULINE.        " 전체 줄

오류 msg가 뜸!!!

ABAP 메시지란?

  • 사용자에게 피드백(오류, 정보 등)을 제공하기 위한 텍스트.
  • 하드코딩된 문자열을 사용하지 않고, 메시지를 별도로 정의해서 사용해야 유지 보수가 쉽고 다국어 지원이 가능함.

🔸 메시지 클래스 (Message Class)

  • 메시지들은 모두 T100이라는 표준 테이블에 저장됨.
  • 메시지를 사용하려면 SE91 트랜잭션에서 메시지 클래스를 먼저 생성해야 함.
  • 예시:
    • 메시지 클래스 이름: ZMES1
    • 메시지 번호: 000
    • 메시지 텍스트: Employee number is too high.

🔸 메시지 문법

 
MESSAGE e000(zmes1).
  • e는 메시지 타입 (error)
  • 000은 메시지 번호
  • (zmes1)은 메시지 클래스

🔸 메시지 타입 종류

타입설명효과
타입 설명 효과
A Abnormal termination 프로그램 즉시 종료
E Error 오류 표시, 입력 필드 재진입
I Information 알림 창
S Success 상태 바에 표시 (성공 메시지)
W Warning 경고 표시
X Exit 시스템 덤프 발생 (강제종료)

가장 자주 쓰는 건 E (오류)와 I (정보).


🔸 WITH 추가 구문으로 변수 전달하기

 
MESSAGE e001(zmes1) WITH my_ee.
  • 메시지 텍스트를 이렇게 작성:
 
Employee number & is too high.
  • & 자리에 WITH로 넘긴 my_ee 값이 자동으로 들어감.
  • 최대 4개까지 넘길 수 있음
 
MESSAGE e002(zmes1) WITH var1 var2 var3 var4.

🔸 활용 예시

 
AT SELECTION-SCREEN ON my_ee. IF my_ee > wa_employee. MESSAGE e001(zmes1) WITH my_ee. ENDIF.
  • 사용자가 너무 큰 사번을 입력했을 때, 지정한 메시지를 보여줌.
  • WITH 덕분에 그 값을 메시지에 바로 삽입 가능!

  • 메시지는 프로그램에 종속되지 않음 → 여러 프로그램에서 공통 사용 가능
  • 회사에서 HR, FI, MM 등 모듈별 표준 메시지 클래스가 미리 정의되어 있는 경우가 많음.
  • 재사용 가능한 메시지를 쓰면 협업에 좋고 유지보수도 쉬움!

text symbol정하고 출력이 잘되는 모습@@!

✅ Text Symbols란?

텍스트 심볼(Text Symbol) 은 ABAP 프로그램 안에서 하드코딩된 문자열(literal text) 을 대신해 사용하는 재사용 가능한 텍스트 객체.

예시: 일반적인 하드코딩

WRITE: '성명'.

➡️ 대신 이렇게 사용!

 
WRITE: text-001.

text-001은 텍스트 심볼 번호 001에 해당하는 문자열을 참조함 


✅ 왜 Text Symbols를 써야하는 걸까?

🔁 재사용 가능 여러 군데서 같은 텍스트를 사용하면, 나중에 수정할 때 한 번만 변경하면 됨
🌍 다국어 번역 지원 SAP 시스템은 다국어 환경이라, Text Symbol만 바꾸면 언어별로 자동 처리 가능
💡 가독성 향상 하드코딩 대신 의미 있는 심볼 번호 사용 시 유지보수가 편해짐
🔧 화면 출력과 연동 쉬움 출력 메시지나 UI에 쉽게 연결 가능

✅ 사용 방법

  1. 프로그램 내에서 사용
 
WRITE: text-001. "텍스트 심볼 001번 사용
  1. 선언 형식
    • 항상 text-XXX 형식 (XXX은 3자리 숫자)
    • 예: text-001, text-100, text-999
  2. 텍스트 심볼 정의 방법
    • SE38 또는 SE80 → Go to > Text Elements > Text Symbols
    • 또는 소스코드에서 text-001을 더블클릭 → "객체 생성" 창이 뜨면 YES
  3. 텍스트 등록
    • 001, 002, ..., 999 항목에 원하는 텍스트를 입력
    • 예: 001 → 성명, 002 → 부서, 003 → 입사일
  4. 제한 사항
    • 최대 1,000개 사용 가능
    • 각 텍스트의 최대 길이는 132자

✅ 예제

 
WRITE: '성명', "하드코딩 (지양) / text-001. "텍스트 심볼 사용

text-001에 "성명"이라는 텍스트가 들어 있다면, 결과는 '성명' '성명' 이렇게 출력된다.


✅ 사용 팁

  • 💬 다국어 환경에서는 필수
    • 예: 영어 사용자에겐 "Name", 한국어 사용자에겐 "성명"
  • 🧼 UI 정리에도 좋음
    • 텍스트 중앙 정렬이나 필드 헤더에 텍스트를 붙일 때 유리함
  • 🔄 변경이 잦은 텍스트일수록 추천
    • 매번 WRITE '무슨무슨말' 하느니 text-005 하나 바꾸는 게 훨씬 편함!

✅ Variant란? (변형값 저장 기능)

Variant는 사용자가 selection screen(선택화면)에 입력한 값을 저장해두었다가, 나중에 불러와서 재사용할 수 있는 기능!


📌 기본 사용법 (사용자 관점)

  1. 프로그램 실행 (F8)
  2. 선택화면에 필드 값 입력
  3. 상단 도구바에서 Save (디스켓 아이콘) 클릭
  4. Variant 이름 입력 (예: Z1), 설명도 입력
  5. 저장!

👉 다음에 프로그램 실행 시 "Get Variant" 버튼(시계 아이콘) 을 클릭하면 저장한 값들을 불러올 수 있음


🛠️ 개발자/운영자 관점: SE38에서 Variant 생성

  1. SE38에서 프로그램 선택
  2. 상단 도구바의 Variants 버튼 클릭
  3. Create → Variant 이름 지정
  4. 선택화면에서 값 입력
  5. 설명 입력 후 Save
  6. 생성 완료!

🟡 이렇게 만들면 다른 사용자들이 사용할 수 있는 공용 Variant가 됨


⚙️ Variant 속성 (Attributes) 설명

Variant를 선택 후 Change → Attributes 버튼을 누르면 다양한 옵션 설정 가능:


Only for background processing 이 Variant는 백그라운드 작업(batch job) 전용으로 사용
🔒 Protect variant 다른 사용자가 이 Variant를 사용하지 못하도록 보호
🙈 Only display in catalog 사용자가 F4로 Variant 목록 볼 때 목록에 숨김
🧩 Field attributes (필드 속성) 각 필드별로 다양한 설정 가능

📌 Field Attributes (필드 속성) 정리


🛡 Protect field 해당 필드 수정 불가(회색 비활성화)
Hide field 선택화면에서 해당 필드를 숨김
📌 Required field 입력 필수 필드로 지정 (기존 OBLIGATORY와 유사)
🗂 Save field without value 값을 비워도 그 상태로 저장됨
🔄 Selection variable 값이 변하는 경우, 다른 시스템 변수와 연결 가능 (예: 오늘 날짜 등)

※ P는 Parameter, S는 Select-option 필드를 의미한다.


🎯 예제 상황 정리

  1. my_dob (date of birth) 필드를 Protect로 설정한 Variant를 저장함
  2. 이후 프로그램 실행 시, my_dob 필드는 회색으로 비활성화됨
    • 사용자가 수정할 수 없음!

✅ Variant 기능 요약


입력값 저장 입력한 필드값들을 저장하고 나중에 불러오기 가능
사용자별/공용 개인용/전체용 Variant 구분 가능
백그라운드용 설정 배치 작업 전용으로 지정 가능
필드 속성 제어 필드 숨기기, 보호, 필수 등 세부 제어 가능

 

  • 운영자가 자주 실행하는 보고서에 기본값 세팅할 때
  • 사용자가 초기값 자동으로 채우고 실행할 때
  • 배치 작업에서 자동 실행 시 사용
  • 특정 사용자에게만 고정된 설정을 제공할 때 주로 쓰인다고함

 

🔧 Variant 속성들

  • Only for background processing:즉, **배치 작업(Batch Job)**에서만 사용하도록 설정할 수 있다.
  • 👉 이 옵션은 해당 Variant를 백그라운드 작업 전용으로 제한함
  • Protect Variant:
  • 👉 다른 사용자가 해당 Variant를 사용하지 못하도록 보호
  • Only display in catalog:
  • 👉 Variant는 존재하지만, F4 도움말 목록에는 표시되지 않음

 


 

🔎 필드 속성(Field Attributes)

 

화면에 보이는 개별 필드들에 대해 속성 조정이 가능함

 

 

  • Protect field: 값을 변경하지 못하도록 회색 비활성화
  • Hide field: 필드를 숨김
  • Required field: 입력을 필수로 설정
  • Save fields without values: 값이 없어도 빈 상태 저장 가능
  • Switch GPA off: 글로벌 파라미터 자동 입력 방지
  • P: Parameter
  • 👉 파라미터 필드를 나타냄
  • S: Select-option
  • 👉 Select-Options 필드를 나타냄

 

🔧 Variant 속성들이 잘 이해가 안가서 정리하는 상세 설명


✅ 1. Only for background processing

"이 Variant는 백그라운드(batch job) 작업에서만 사용할 수 있게 제한한다."

📌 이 옵션을 설정하면:

  • 사용자가 직접 실행(F8) 하거나 화면에서 Variant를 불러오는 것은 불가능
  • SM36 등의 백그라운드 작업에서만 이 Variant를 사용할 수 있음

📍 사용 예시

야간에 자동으로 돌리는 월말 급여 집계 프로그램

  • 담당자가 매번 입력하지 않고, 고정된 값으로 자동 실행
  • 이 Variant를 일반 사용자가 실수로 수정하거나 실행하지 못하게 하려면
    → 이 옵션을 켜두는 게 안전함

✅ 2. Protect Variant

"다른 사용자가 이 Variant를 선택하거나 실행하지 못하도록 막는다."

📌 이 옵션을 설정하면:

  • 해당 Variant는 Variant 목록(F4) 에 나타날 수 있음
  • 그러나 실행은 등록한 사용자만 가능
  • 다른 사용자는 실행하거나 수정할 수 없음

📍 사용 예시

특정 부서에서만 사용하는 매출 정산 Variant

  • 다른 부서 직원이 실수로 이 Variant를 선택하거나 실행하지 못하게
  • 특정 담당자가 만든 Variant를 보호(Protect) 하면 안전하게 유지됨

✅ 3. Only display in catalog

"Variant는 존재하지만, F4 도움말 목록에는 보이지 않는다."

📌 이 옵션을 설정하면:

  • Variant는 실행은 가능하지만
  • F4 눌러서 Variant를 고를 때 목록에 보이지 않음
  • 즉, 숨겨진 상태로 사용됨

📍 사용 예시

테스트 용도로 만든 내부 전용 Variant

  • 다른 사람에게 보여줄 필요는 없지만, 내부에서 직접 이름으로 호출해서 사용할 수 있음
    → 예를 들어, 배치 작업에서 Variant 이름을 직접 지정할 수 있으니 숨겨두기만 해도 됨

💡 정리 표


✅ Only for background processing 백그라운드 작업 전용 Variant 야간 자동 보고서, 일일 배치
🔒 Protect Variant 다른 사용자 접근 제한 보안상 민감한 보고서 설정
🙈 Only display in catalog F4 목록에서 숨김 테스트용, 내부 전용 설정

✅ Selection Texts 개념과 사용 방법 정리


📌 문제 상황

지금까지 PARAMETERS, SELECT-OPTIONS 등으로 Selection Screen을 만들면, 화면에 이렇게 표시됨.

MY_EE [__________] MY_DOB [_____] to [_____]

이름이 전부 기술적인 변수명이기 때문에,
→ 일반 사용자에겐 무슨 뜻인지 알기 어려움 😓


💡 해결 방법: Selection Texts 사용

ABAP 프로그램에서는 화면에 보이는 필드 이름(라벨)을 바꾸기 위해 Selection Texts를 사용

Selection Text는 기술적 변수명을 **사람이 읽기 쉬운 설명(라벨)**으로 바꿔주는 일종의 "텍스트 매핑"이라고 생각하면됨

PARAMETERS: my_ee LIKE zemployees-employee.

➡ Selection Text를 설정하면 화면에 이렇게 보임:

Employee Number [__________]

 


🧱 ABAP 프로그램의 Text Elements (텍스트 요소)

ABAP에는 3가지 주요 Text Element가 있다.


유형 설명
Selection Texts Selection Screen의 필드 이름을 사용자 친화적으로 표시
Text Symbols WRITE: text-001.처럼 소스코드에서 메시지를 대체
List Headings 리스트 출력 시 헤더(컬럼 이름)로 사용

🛠️ Selection Text 설정하는 방법

  1. SE38에서 프로그램 열기
  2. 상단 메뉴에서 Goto → Text Elements → Selection Texts 클릭
  3. 좌측엔 PARAMETERS, SELECT-OPTIONS의 변수명이 자동 표시됨
  4. 우측 칸에 사용자용 라벨(설명) 입력
  5. 저장(💾) & 활성화(⚙️)

📷 참고화면 예시:

변수명 라벨(설명)
MY_EE Employee Number
MY_BOX1 Include Contract Staff
WA_GREEN Color: Green

✅ 팁: ABAP Dictionary 참조 필드 자동 라벨링

  • zemployees-dob 같은 데이터베이스 테이블 필드를 사용했다면?
  • 오른쪽의 "체크박스" 버튼 클릭 → ABAP Dictionary에서 설명 자동 불러오기

🟢 예: dob → 자동으로 "Date of Birth" 채워짐


🔁 전체 흐름 요약


구분 설명
PARAMETERS: my_ee... Selection screen 필드 선언
Selection Texts 설정 사용자가 보게 될 "라벨" 입력
저장 + 활성화 프로그램 실행 시 라벨 적용됨

🎯 왜 Selection Text를 꼭 써야 할까?

  • 사용자에게 의미 있는 설명 제공 가능
  • ABAP 프로그램이 다국어 지원 가능 (번역도 쉽게 가능)
  • 코드 수정 없이 화면만 다듬는 UI 변경 가능

✅ SELECT-OPTIONS 구문 추가 설명 정리


🔷 기본 개념

SELECT-OPTIONS는 사용자가 값의 범위나 여러 개의 값을 입력할 수 있도록 도와주는 강력한 selection screen 입력 방식

SELECT-OPTIONS: s_dob FOR zemployees-dob.​

 

위 코드를 실행하면, 사용자는 다음과 같이 입력할 수 있음

  • 단일 값
  • 구간 (예: 1990-01-01 ~ 2000-12-31)
  • 다중 값 (추가 버튼 눌러서 여러 개 입력)
  • 제외 조건 (특정 날짜 제외)

📌 주요 추가 옵션들

옵션 설명
OBLIGATORY 해당 입력 필드는 필수 입력 (빈 값으로 실행 불가)
LOWER CASE 소문자 입력 허용 (기본은 대문자로 자동 변환됨)
NO-EXTENSION 다중 선택 버튼 제거 — 사용자가 여러 값이나 범위를 추가하지 못하게 제한

 


🔍 NO-EXTENSION 옵션 설명

✅ 사용 예시:

 
SELECT-OPTIONS: s_dob FOR zemployees-dob NO-EXTENSION.
 
📌 효과:
  • 사용자가 입력할 수 있는 범위는 단 한 개만 가능
  • **“여러 값 추가 버튼”**이 사라짐
  • 입력 UI는 간단하게 유지됨 (ex: Low, High만 있음)

🔎 언제 쓰면 좋을까?

  • 프로그램의 조건상 단 하나의 구간만 허용될 때
  • 사용자가 실수로 여러 조건을 넣는 것을 방지하고 싶을 때
  • 간단하고 제한된 검색을 원할 때

🖥️ 화면 비교


기본 select-option no-extension추가시
![✅ 다중 입력 버튼 있음] ❌ 다중 입력 버튼 없음
다중 값, 범위, 제외 입력 가능 단일 값 + 단일 범위만 가능

💬 기타 옵션들과 비교 요약


옵션 역할
OBLIGATORY 필수 입력 필드로 설정
LOWER CASE 소문자 입력 허용
NO-EXTENSION 다중/복합 입력 막고 간단한 범위만 허용

🧠 요약

  • SELECT-OPTIONS는 사용자 입력을 위한 범위 및 다중 값 기능 제공
  • NO-EXTENSION을 붙이면 사용자는 최대 1개의 범위만 입력 가능
  • 복잡한 검색이 필요 없고, 단순한 필터만 허용하고 싶을 때 유용

=> 다중 선택 사라진 모습!!

+ Recent posts