프로젝트 하다보면 타 시스템과의 인터페이스 할 때나, CBO테이블에 Sequence 번호를 입력하는 경우가 있다.
이 때, 사용자가 직접 채번하면 휴먼에러의 가능성이 있기 때문에 시스템이 채번하는 펑션이 존재한다.
해당 펑션을 사용하려면 우선 사전 세팅이 필요하다.
T-CODE : SNRO
이동해서 오브젝트 이름을 입력하고 생성 ▼
내역과 설명은 본인 입맛대로 입력하고 번호 길이 도메인은 보통 CHAR10로 하는데 본인이 하고 싶은대로 해도 된다.!
%경고는 해당 Number range에 할당된 번호가 N%만큼 되었을 경우 경고를 해준다는 기능이다. 숫자입력 ! ▼
그 다음엔 간격을 편집해주러 이동 ! ▼
추가 및 삭제를 통해 만들 수 있다.
01 이라는 번호 범위는 시작번호 100~~ 부터 999~까지 시스템에서 채번하고 현재 01 번호 범위의 숫자는 100000019번이라는 뜻이다. 그래서 다음 번호는 100000020이 채번될 것이다.
02, 03, 04 등 각각의 번호 범위마다 시작번호 및 종료번호를 지정할 수 있음 ▼
이제 설정을 다 했다면 ABAP에서 어떻게 사용해야 할까?
바로 Function Module을 사용하면 간단하다 !
DATA: LV_NUMBER TYPE N LENGTH 10.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = '01' " 바로 위에서 생성한 01, 02, 03 등등, 번호 범위 번호
OBJECT = 'ZSD_POKNUM' " 가장 처음에 생성했던 오브젝트 이름
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.
LV_NUMBER 변수에 자동으로 채번이 된 번호를 담기게 된다.
간단하죠?
끝.
'SAP > 기타' 카테고리의 다른 글
Standard Transaction 필드이름 바꾸기 (0) | 2023.07.05 |
---|---|
클라이언트 간 복사 (0) | 2023.06.15 |