본문 바로가기

SAP/기타

Number Range 설정하기

반응형

프로젝트 하다보면 타 시스템과의 인터페이스 할 때나, CBO테이블에 Sequence 번호를 입력하는 경우가 있다.

이 때, 사용자가 직접 채번하면 휴먼에러의 가능성이 있기 때문에 시스템이 채번하는 펑션이 존재한다.

해당 펑션을 사용하려면 우선 사전 세팅이 필요하다.

 

T-CODE : SNRO 

이동해서 오브젝트 이름을 입력하고 생성 ▼

T-CODE : SNRO

내역과 설명은 본인 입맛대로 입력하고 번호 길이 도메인은 보통 CHAR10로 하는데 본인이 하고 싶은대로 해도 된다.!

%경고는 해당 Number range에 할당된 번호가 N%만큼 되었을 경우 경고를 해준다는 기능이다. 숫자입력 ! ▼

 

기타 정보 입력

 

그 다음엔 간격을 편집해주러 이동 ! ▼

간격 편집

추가 및 삭제를 통해 만들 수 있다.

01 이라는 번호 범위는 시작번호 100~~ 부터 999~까지 시스템에서 채번하고 현재 01 번호 범위의 숫자는 100000019번이라는 뜻이다. 그래서 다음 번호는 100000020이 채번될 것이다.

02, 03, 04 등 각각의 번호 범위마다 시작번호 및 종료번호를 지정할 수 있음 ▼

번호 범위 설정

이제 설정을 다 했다면 ABAP에서 어떻게 사용해야 할까?

바로 Function Module을 사용하면 간단하다 !

 

 

  DATALV_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