쌓고 쌓다
[ABAP] Number Range 연도를 붙여서 사용하는 방법 본문
위처럼 연도 + 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를 연도와 함께 번호를 뽑아 사용했다.
연도와 함께 라벨링이 적용되는 모습을 확인할 수 있다.
'SAP > ABAP' 카테고리의 다른 글
[ABAP] Range Variable로 Date 타입에 LIKE처럼 사용 (2) | 2025.04.30 |
---|---|
ALV Grid Event, 클래스 이벤트 사용시 PBO 타는 방법 (4) | 2025.04.28 |
FieldCatalog를 사용할때 ABAP Dictionary의 모든 필드 가져오기 (2) | 2025.04.19 |
유효한 값이 들어가게 Check Table(외래키) 이용하기 (2) | 2025.04.15 |
[ABAP] SELECTION SCREEN에서 LISTBOX와 WHERE절 (4) | 2025.02.26 |