Etc

Number Range ( T-CODE : SNRO )

프로그램을 만들다 보면 문서번호등 Number Range 를 사용해야 하는 경우가 있습니다.

Number Range를 만들고 사용하는 방법에 대해 알아보겠습니다.  

 

 

1. 오브젝트 생성 ( T-CODE : SNRO )

  - 번호길이 도메인: 넘버레인지 번호의 길이 

  - 종료 연도 플래그 : 체크하면 년도를 지정해서 넘버레인지 사용할때 해당 년도의 넘버레인지를 사용할 수 있다.

                             ( 함수 참조)

 - 경고 %  : EX. 전체 넘버 레인지중에 10% 남았을때 경고  

 - 버퍼의 번호수 :  기본값이 '10'이고 속도를 위해 미리 10개의 번호를 버퍼에 담아두고 사용하는것이다.

                        ( 10으로 되어있어도 넘버레인지는 1씩 오름)

                        SAP 는 대부분 여러개의 어플리케이션 서버를 사용하는데  여러서버의

                        여러 사용자가 몰리면 넘버레인지 순서가 1,,2,,11,,12 이런식으로

                        번호가 역전되거나 꼬일 수 있다.

                       무조건 순차적으로 사용되어져야 하는 넘버레인지면 번허의 번호 수 를 1로 설정해야한다!

                              

 

2. 간격 설정 ( T-CODE : SNRO )

 

 1) 넘버 : 넘버레인지 사용시 선택할 넘버

 2) 년도 : 1번에서 오브젝트 생성시 [종료 년도 플래그] 를 설정했으면 보이고 아니면 없음

            년도 사용시 여러개의 년도의 넘버레인지를 추가하고 사용할 수 있다.

 3) 넘버레인지 시작 번호

 4) 넘버레인지 끝 번호

 5) 넘버레인지 현재 번호: 오브젝트 생성시 설정한 버퍼 수 많큼 증가한다.

                                  수정모드에서 현재 번호를 수정할 수 있고, 함수를 이용해 초기화 할 수도 있다. 

 

 

 

3. 사용 함수

 

  CALL FUNCTION 'NUMBER_GET_NEXT'
    EXPORTING
      nr_range_nr                    = '01'                2번의 1번 - 넘버레인지 넘버
      object                           = 'ZNRTEST'       넘버레인지명

       toyear                          = sy-datum(4)     2번의 2번 - 사용할 년도

                                                                1번에서 종료년도 플래그 체크안했으면 사용안해도됨
    IMPORTING
      number                         = lv_number      넘버레인지 결과값 - TYPE string 또는 넘버레인지의 번호길이 
    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
      OTHERS                       = 7.

 

 

4. 초기화 함수  

 

넘버레인지를 SNRO에서 직접 현재번호를 변경할 수 있지만 함수를 사용하여

현재값을 초기화 할 수 있다 => 해당 넘버레인지 내의 모든 넘버의 현재 번호가 리셋된다!

 

  CALL FUNCTION 'NUMBER_RANGE_INTERVAL_INIT'
    EXPORTING
      object                           = 'ZNRTEST'       넘버레인지명
    EXCEPTIONS
      no_interval_found           = 1
      object_not_found            = 2.

 

 

 

'Etc' 카테고리의 다른 글

SMW0 의 사진 띄우기(cl_gui_picture)  (0) 2022.11.02
스마트폼 실행 후 PDF로 파일 변환  (0) 2022.07.19
SUBMIT / CALL TRANSACTION  (0) 2021.11.18
SELECT OPTION, RANGES  (0) 2021.06.30
SAP 연산자  (0) 2021.06.30