본문 바로가기
ABAP 문법 & 기법/Dialog & Screen Painter

[SAP ABAP] Screen Painter 입력 필드 이력 남기는 법 — Def.Length + SAP GUI 이력 설정 매칭

by Song.sh 2026. 5. 14.

SAP에서 입력 필드를 자주 다루다 보면 "전에 입력했던 값이 자동완성처럼 떠줬으면 좋겠다" 는 요구가 종종 나옵니다. 사용자가 백스페이스를 누르거나 첫 글자만 입력해도 이전에 같은 필드에서 입력했던 값 목록이 드롭다운으로 뜨면 작업 효율이 훌쩍 올라가죠.

 

SAP GUI는 이 기능을 입력 이력(Input History) 이라는 이름으로 제공합니다. 다만 그냥 켠다고 동작하는 게 아니라, 화면(Screen Painter)에서 정의한 필드 길이와 GUI Options 의 이력 길이 설정이 정확히 일치해야 백스페이스 시 이력이 표시됩니다. 이게 안 맞으면 옵션을 켜도 아무 변화가 없습니다.

 

이 글은 Screen Painter 입력 필드에서 이력(History) 기능이 동작하도록 두 설정을 매칭시키는 법 을 정리한 메모입니다.


핵심 원리

SAP GUI 입력 이력은 클라이언트 PC에 텍스트 파일 형태로 저장됩니다. 사용자가 어떤 화면 어떤 필드에 어떤 값을 입력했는지를 GUI가 로컬에 기록하고, 다음 진입 시 같은 필드에서 백스페이스나 한 글자 입력 시 이력을 드롭다운으로 보여주는 방식입니다.

문제는 GUI가 이력을 매칭할 때 필드 길이(Def.Length) 를 키로 사용한다는 점입니다. 화면 정의된 필드 길이와 GUI Options 의 최대 이력 길이가 다르면 GUI가 매칭에 실패해서 이력이 안 뜹니다.

설정 위치 맞춰야 하는 값
Screen Painter (개발자 영역) 입력 필드의 Def.Length (정의 길이)
SAP GUI Options (사용자 PC 영역) 로컬 데이터 → 이력 → 최대 필드 이력 길이

이 둘이 같은 값 이어야 이력 기능이 동작합니다. 예를 들어 필드 Def.Length가 59면 GUI Options 의 최대 필드 이력 길이도 59여야 함.


1단계 — Screen Painter에서 필드 Def.Length 확인

SE51(Screen Painter) 또는 SE80 에서 해당 화면을 열고, 이력을 적용할 입력 필드를 더블 클릭해서 속성 창을 띄웁니다.

속성 항목 의미
요소 유형 입력/출력 필드(Input/Output Field) 이어야 함
이름 화면 내 필드 이름 (이력은 이 이름 기준으로 매칭)
Def.Length 필드 정의 길이 — 이력 매칭 키. GUI Options 값과 동일해야 함
가시 길이 (Visible Length) 화면에 표시되는 길이. 이력 매칭과는 무관

여기서 확인한 Def.Length 값(예: 59)을 기억해두고 2단계로 넘어갑니다.


2단계 — SAP GUI Options에서 이력 활성화 + 길이 매칭

사용자 PC의 SAP GUI 자체 설정을 만집니다. 개발자가 화면을 바꾼다고 끝나는 게 아니라 이력을 보고 싶은 각 사용자 PC에서 한 번씩 설정해야 한다는 점이 특이합니다.

경로

SAP GUI 우측 상단 설정 아이콘(톱니바퀴)옵션 또는 우클릭 → 옵션

옵션 창에서 로컬 데이터 → 이력 탭으로 이동.

설정 항목

항목 권장값
이력 상태 설정(N) 선택 — 활성화. (해제·즉시 옵션도 있지만 보통 "설정")
만료 시간(개월) 3 (기본값)
허용되는 최대 파일 크기(MB) 10 (기본값)
최대 엔트리 수 20 (기본값) — 한 필드당 최대 몇 개 이력 유지
최대 필드 이력 길이(문자) 1단계의 Def.Length 와 동일 값 입력 (예: 59)

마지막 항목이 핵심입니다. Screen Painter 의 Def.Length 와 동일 하게 맞춰야 GUI가 이력을 매칭합니다.

이력 파일은 보통 다음 경로에 저장됩니다.

C:\Users\<사용자명>\AppData\Roaming\SAP\SAP GUI\History

세션이 열려 있는 상태에서는 이 경로를 변경할 수 없으므로 GUI 모두 닫고 변경해야 합니다.


3단계 — 동작 확인

설정을 저장한 뒤 SAP GUI를 재시작(SAP Logon Pad까지 닫고 다시 실행) 합니다. 그 다음 해당 화면을 띄워서 입력 필드에 값 몇 개를 입력해보고 다른 화면으로 갔다가 다시 돌아옵니다.

빈 입력 필드에서 백스페이스 를 누르거나 입력 영역을 한 번 클릭하면, 이전에 입력했던 값들이 드롭다운 목록으로 표시됩니다. 키보드 화살표·마우스로 선택하면 그 값이 자동으로 채워짐.

만약 안 뜨면 다음을 차례로 확인.

체크 확인 항목
1 Screen Painter Def.Length = GUI Options 의 최대 필드 이력 길이 인가?
2 이력 상태가 설정(N) 인가?
3 SAP GUI 를 완전히 종료 후 재시작했는가?
4 최소 한 번은 값을 입력하고 다른 화면 갔다가 돌아왔는가? (첫 진입에는 이력 없음)

흔히 빠뜨리는 함정

Def.Length 와 가시 길이를 혼동

Def.Length(정의 길이)와 가시 길이(Visible Length)는 다릅니다. 화면에는 30자만 보이지만 내부 정의는 59일 수 있음. 이력 매칭 키는 Def.Length 이므로 가시 길이를 GUI Options 에 넣으면 이력이 안 뜸.

GUI Options 변경 후 재시작 안 함

옵션을 저장만 하고 GUI 세션을 그대로 두면 적용이 안 됩니다. SAP Logon Pad까지 모두 닫고 새로 실행해야 함.

다른 사용자 PC에서 이력 기대

이력은 로컬 PC 텍스트 파일 에 저장되므로 다른 사람 PC에서 본인이 입력한 값을 볼 수는 없습니다. 사용자별로 각자 GUI Options 설정 + 본인 입력 이력만 남음.

이력 파일 경로에 한글·공백

이력 디렉토리 경로에 한글이나 특수문자가 있으면 GUI 가 파일을 못 열거나 깨지는 케이스가 드물게 있습니다. 기본 경로 그대로 두는 게 안전.

이력 지우기 기능

같은 옵션 화면에 이력 지우기 버튼이 있습니다. 잘못된 값이나 민감 정보(예: 임시 비밀번호)가 이력에 남았을 때 사용. 단순히 한 필드만 지우는 건 안 됨 — 전체 이력 일괄 삭제.

모든 화면에 적용되는 건 아님

이력 기능은 SAP 표준 입력 필드에 한해 동작합니다. 일부 GUI 컨트롤(CL_GUI_INPUT_FIELD 같은 클래스 기반 입력, ALV 셀 편집 등)에서는 이력이 적용되지 않을 수 있음.


요약

단계 위치 할 일
1 SE51 Screen Painter 입력 필드 속성에서 Def.Length 확인 (예: 59)
2 SAP GUI Options → 로컬 데이터 → 이력 이력 상태 설정(N) + 최대 필드 이력 길이 = Def.Length 와 동일
3 SAP GUI 재시작 후 화면 진입 백스페이스 또는 클릭으로 이력 드롭다운 확인

이력 기능은 SAP GUI 가 기본으로 제공하는 사용성 향상 기능이지만, 화면 정의 길이와 GUI Options 의 이력 길이가 매칭 되어야 동작한다는 작은 함정이 있습니다. 개발자가 화면 한 번 만들고 끝낼 일이 아니라, 실제 사용자 PC에서도 한 번 설정해줘야 한다는 점을 같이 안내해두면 현업이 헷갈리지 않게 사용할 수 있습니다.


Disclaimer — 이 포스트는 실무 정리 노트를 바탕으로 AI 보조로 정리되었습니다. SAP 버전·SAP GUI 버전·Windows 환경에 따라 옵션 메뉴 명칭이나 동작이 다를 수 있으므로 운영 환경 적용 전 개발 시스템에서 확인하시기 바랍니다.