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 환경에 따라 옵션 메뉴 명칭이나 동작이 다를 수 있으므로 운영 환경 적용 전 개발 시스템에서 확인하시기 바랍니다.
'ABAP 문법 & 기법 > Dialog & Screen Painter' 카테고리의 다른 글
| [SAP ABAP] SubScreen + Tabstrip Control — Dialog 화면 안에 다른 화면 임베드 (CALL SUBSCREEN INCLUDING) (0) | 2026.05.15 |
|---|