◆ 넘버레인지(번호범위)란? 자동으로 숫자를 증가시켜 번호를 부여하기 위한 오브젝트.
(예) 인사 포털에서 기안 작성 시 결재문서 번호 채번(발번)
넘버레인지를 생성, 사용, 삭제하는 방법을 알아보자.
◆ 넘버레인지 생성
- 티코드 : SNRO
- 오브젝트명 입력 후 Create 클릭.(예: ZADOCU)

- 넘버레인지의 내역(Txt) 입력.
- Number Length Domain(번호 길이 도메인) : 해당 넘버레인지 오브젝트의 속성을 도메인을 참조하여 정의(타입과 길이)
- % Warning(경고) : 해당 넘버레인지 오브젝트에 번호가 n%만큼 할당되었을 경우에 경고함
- 모두 입력 후 저장 버튼 클릭
- 저장 후, 표 모양 아이콘(간격 편집) 클릭.(단축키 F7)

- 넘버레인지 오브젝트가 생성되었다. 이제 간격(Intervals)을 설정해보자.
- 간격(Intervals) 편집 모양 아이콘 클릭.

- Number Range No.(번호범위 번호) : 해당 넘버레인지(번호범위) 오브젝트 내에서 구분을 위한 식별 변호, 하나의 넘버레인지 오브젝트 안에 여러 개의 번호범위 번호를 지정해서 개별 사용 가능. (예) 자격수당 결재문서 번호 : '01' 사용, 사직서 결재문서 번호 : '02' 사용
- From No.(시작 번호) : 채번이 시작되는 첫번째 번호
- To Number(종료 번호) : 마지막 번호
- NR Status(상태) : 현재 몇번까지 채번되었는지 최종 번호(넘버레인지 상태 값)

- 내용 입력 후 저장 버튼 클릭.
- 이제 최종적으로 이 오브젝트를 사용할 준비가 되었다.

◆ 넘버레인지 사용
프로그램 내에서 넘버레인지 오브젝트를 사용하여 번호를 부여하기 위해 펑션 NUMBER_GET_NEXT 을 호출한다.
- NUMBER_GET_NEXT : 넘버레인지에서 다음 숫자 할당
- LV_NUMBER에 번호가 채번되어 담긴다.
DATA: LV_NUMBER TYPE NUMC10.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = '01'
object = 'ZADOCU'
IMPORTING
number = LV_NUMBER
EXCEPTIONS
interval_not_found = 1
number_range_not_intern = 2
object_not_found = 3
quantity_is_0 = 4
quantity_is_not_1 = 5
interval_overflow = 6
buffer_overflow = 7
OTHERS = 8.
◆ 넘버레인지 삭제
혹여나. 넘버레인지 오브젝트 자체를 삭제하고 싶다면?
티코드 SNRO에는 삭제 버튼이 안보인다.
상단 메뉴에서 찾았는데 이마저도 비활성화 되어 있다.
넘버레인지를 삭제 하기 위해서는, 1) 간격 초기화 ➡️ 2) 오브젝트 삭제 순서대로 진행되어야 한다.
1) 간격 초기화
- 지금까지 해당 오브젝트 내에 부여된 모든 번호가 삭제된다.
- 모든 간격을 선택한 후 행 삭제 버튼 클릭 -> 저장 버튼 클릭

2) 넘버레인지 오브젝트 삭제
이제 SNRO에서 상단 메뉴 Number range object(번호 범위 오브젝트)에 보면 삭제 버튼이 활성화되어 있다.
- Delete 클릭.
- 넘버레인지 오브젝트 삭제 완료.

-끝-
'★ SAP 이야기 > ABAP' 카테고리의 다른 글
| [ABAP] SE11 테이블 조회 옵션 변경하기(List/Grid) (0) | 2025.05.18 |
|---|---|
| [ABAP] FOR문, Iteration Expressions 다양한 예시 코드 (0) | 2025.05.18 |
| [ABAP] Internal table 구조로 Field Catalog 생성하기 (0) | 2025.05.16 |
| [ABAP] LOOP AT GROUP BY 쉬운 예제 프로그램 (0) | 2025.05.16 |
| [ABAP] 사용 가능한 SAP GUI 최대 세션 수 찾기 (0) | 2025.05.16 |