CAFE

§ Tip & Tech §

Number Range를 만들고 사용하기

작성자쥔장|작성시간06.07.11|조회수3,754 목록 댓글 0
Number Range를 만들고 사용하기

DATA : GV_NR_OBJ    LIKE INRI-OBJECT    VALUE 'ZPM001NR' .
DATA : GV_NR_OBJ_NO LIKE INRI-NRRANGENR VALUE '01'.
DATA : GV_ACCDNR(4) TYPE N.

0) 오브젝트 생성하기
   t-code : SNRO
   Number domain : NUMC 로 시작하는 것들이 있다.

  시작번호와 간격을 지정한다.  (번호범위-->간격)
    시작번호 | 종료번호 |
    00000001   99999999

1) 초기화

PERFORM INIT_NR_OBJECT_INTERVAL USING GV_NR_OBJ.  "//번호범위 초기화.

*&----------------------------------------------------------------*
*&      Form  INIT_NR_OBJECT_INTERVAL
*&----------------------------------------------------------------*
FORM INIT_NR_OBJECT_INTERVAL USING P_GV_NR_OBJ.

  CALL FUNCTION 'NUMBER_RANGE_INTERVAL_INIT'
       EXPORTING
            LANGUAGE         = SY-LANGU
            OBJECT           = P_GV_NR_OBJ
       EXCEPTIONS
            OBJECT_NOT_FOUND = 1
            OTHERS           = 2.
  IF SY-SUBRC <> 0.
    MESSAGE E000(ZZ) WITH TEXT-E01.
  ENDIF.

  COMMIT WORK.

ENDFORM.                    " INIT_NR_OBJECT_INTERVAL


2) 사용하기

PERFORM GET_NEXT_SERIAL_NO  USING GV_NR_OBJ   "//등록번호 생성
                                    GV_NR_OBJ_NO
                                    GV_ZACCDNR.

*&---------------------------------------------------------------*
*&      Form  GET_NEXT_SERIAL_NO
*&---------------------------------------------------------------*
FORM GET_NEXT_SERIAL_NO USING    P_NR_OBJ
                                 P_NR_OBJ_NO
                                 P_ZACCDNR.

  DATA: LV_RETURN TYPE INRI-RETURNCODE.
  CLEAR : P_ZACCDNR.
*-- get next free number in the number range '01'
*-- of number range object
  CALL FUNCTION 'NUMBER_GET_NEXT'
       EXPORTING
            NR_RANGE_NR = P_NR_OBJ_NO
            OBJECT      = P_NR_OBJ
            QUANTITY    = '1'
       IMPORTING
            NUMBER      = P_ZACCDNR
            RETURNCODE  = LV_RETURN
       EXCEPTIONS
            OTHERS      = 1.

  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  COMMIT WORK.

ENDFORM.                    " GET_NEXT_SERIAL_NO
다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼