쌓고 쌓다

[ABAP] Number Range 연도를 붙여서 사용하는 방법 본문

SAP/ABAP

[ABAP] Number Range 연도를 붙여서 사용하는 방법

승민아 2025. 4. 21. 12:14

 

위처럼 연도 + 000000 번호 형식으로

Number Range를 만들고자한다.

 

2025년에는 000001부터 999999까지

2026년에는 000001부터 999999까지와

같은 패턴으로 만들어보자.

 

Number Range에 연도를 붙여 만드는게 구글링해도 잘 안나와서

정리하고자 한다~.

 

T code : SNRO

 

Number Range를 만드는 T code는 SNRO이다.

 

 

Number Range Object 이름을 적어주고 Create

 

 

 

우리의 프로젝트에서 전표번호는

NUMC이 아닌 CHAR 타입이다.

 

Number Length Domain : Numeric이나 Char로 되어져 있는것이 Number Length Domain에 와야한다.

% Warning : 번호를 딸때 임계치가 10%까지 왔을때 경고이다.

예를 들어 1~100까지 할당했을때 1부터 번호를 따다가 90 번호를 딸때 경고가 오는 것이다.

 

To-business year flag : 연도별로 Number Range를 설정하겠다.

No rolling : 번호를 취득해서 999999까지 왔을때 다시 1번부터 취득하게 할 것 인지. 체크 안하면 999999까지 왔을때 다시 1부터 리턴해준다.

 

Interval 버튼이 있다.

 

Intervals 조회나 수정을 누르자.

 

위와 같이 Number Range를 설정해주자.

 

나중에 Number를 딸때 함수에 Number Range No와 Year를 입력하여

Number를 따올 수 있다.

 

Number Range No : 하나의 Number Range에서 여러 구간으로 나눌 수 있다.

 

Year : 이전에 To-business year flag를 체크했기에 생겨난 필드이다.

사용할 연도까지 넣어줘야한다.

 

From No. : 시작 번호

To Number : 마지막 번호

NR Status : 현재 번호 상태

 

NR Status 같은 경우에 202500020이 되어있는데

Numeric과 달리 Char에서는

현재 번호가 XXXX0020이라는 말이 아니다.

XXXX0001 ~ XXXX0010까지는 0010으로

XXXX0011 ~ XXXX0020 까지 0020으로

NR Status가 표시된다.

 

 

Number Range에 번호를 딸때

NUMBER_GET_NEXT 메소드를 사용해야한다.

 

Function Builder인 T code : se37 에서 Number Range를 테스트해볼 수 있다. 

 

NR_RANGE_NR에 번호가 들어간다.

 

이전에 작성했던 구간인 Number Ragne No.를 써주면 된다.

 

OBJECT : Number Range Object명인 ZFC_FI_01을 넣어준다.

TOYEAR : 연도를 넣어준다.

 

Export 값으로 NUMBER를 뽑아올 수 있다.

 

프로젝트에는 SY-DATUM+0(4)으로 현재 연도를 뽑아와서 파라미터로 넘겨주며

Number Range를 연도와 함께 번호를 뽑아 사용했다.

 

연도와 함께 라벨링이 적용되는 모습을 확인할 수 있다.

Comments