OFFSET
: 필드(주로 문자열)에서 몇 번째 자리부터 볼 건지 지정하는 위치 값
예시
ABC 일때, A의 위치는 0번째
| 글자 | A | B | C |
| 위치 | 0 | 1 | 2 |
사용법
field+offset(length) " offset(시작위치)로부터 length(길이) 자리를 가져옴
| 요소 | 의미 |
| field | 대상 문자열 |
| offset | 시작 위치 |
| length | 가져올 길이 |
실무에서 많이 쓰는 용도
1. 코드에서 자리수 의미가 있을 때 - 사업자번호, 자재코드 앞자리 구분
2. 숫자 앞 0 제거 - 000123' → '123'
3. 문자열 중 특정 플래그 체크 - 3번째 자리가 'A'인지
로직 예시
- 특정 글자 추출
DATA LV_OFFSET TYPE SY-DATUM.
LV_OFFSET = SY-DATUM. "20260128
WRITE: LV_OFFSET+4(2), "결과값 01 - 4번째에서 2글자 추출
LV_OFFSET+4. "결과값 0128

→ 오늘 날짜인 '20260128'에서 4번째 위치(0번째가 A)로부터 2글자 추출
→ LEN은 생략시, 문자열의 마지막까지를 의미함
- 문자열 일부 잘라오기 (SUBSTRING 역할)
DATA: LV_TEXT TYPE STRING VALUE 'ABCDE',
LV_PART TYPE STRING.
LV_PART = LV_TEXT+2(2).
WRITE LV_PART.

→ ABCDE 중 2번째 위치(0번째가 A)로부터 2글자 추출
- 특정 위치 문자 바꾸기
DATA LV_TEXT TYPE CHAR05 VALUE 'ABCDE'.
LV_TEXT+1(1) = 'Z'.
WRITE LV_TEXT.

→ 'ABCDE'중 1번째 위치(0번째가 A)로부터 1글자를 'Z'로 변경
- FIELD-SYMBOL 필드심볼 이용
DATA LV_OFFSET TYPE SY-DATUM.
LV_OFFSET = SY-DATUM. " 20260128
FIELD-SYMBOLS <FS_OFFSET>.
ASSIGN LV_OFFSET+4(*) TO <FS_OFFSET>.
WRITE <FS_OFFSET>. "결과값 0128

→ 필드심볼이용하여 사용 가능
→ 오늘 날짜인 '20260128'에서 4번째 위치(0번째가 A)로부터 문자열 마지막까지 추출
→ 필드심볼에서는 LENGHT 누락이 안되기에 마지막까지 추출 시 (*) 사용
'SAP' 카테고리의 다른 글
| SAP ICON 아이콘 (상태/기능/가시성/업무속도 올리기) (0) | 2026.02.06 |
|---|---|
| MM_HISTORY_POPUP_SHOW 구매오더 이력 팝업 (0) | 2026.02.05 |
| SAP ABAP Select 구문, TIPS (0) | 2026.01.23 |
| SAP Text Table 내역 가져오기 (0) | 2026.01.21 |
| SAP Domain Fixed Value 도메인 값, 내역 가져오기 [GET_DOMAIN_VALUES 사용 X] (0) | 2026.01.20 |