본문 바로가기
ERP-SAP/ABAP

<ABAP> Number range 만드는 법! (document number)

by 행복한워니의 기록 2012. 3. 26.
728x90
반응형

T-CODE : SNRO 로 들어간다.

 



그러면 여기서 이렇게 생성 후에 어떻게 코딩을 해야 할 지 모른다..-_-

자 그럼 난 소스를 아래처럼 붙여주겠다. 

이렇게 perform 으로 만들면 되고.. parameter passing 하는 부분을 설명해주면 끝날 것 같당. 

lv_nronr은 아래 constants 를 넣어주면 되는 것이다. lv_nronr 은 그냥 변수로 하나 선언한 듯..

한마디로 lv_nronr = gc_nro_nr_03. 이렇게 들어가면 03 들어가겠지?

  *... Number range object number
CONSTANTS: gc_nro_nr_00   VALUE '00' TYPE inri-nrrangenr. "
CONSTANTS: gc_nro_nr_01   VALUE '01' TYPE inri-nrrangenr. "
CONSTANTS: gc_nro_nr_02   VALUE '02' TYPE inri-nrrangenr. "
CONSTANTS: gc_nro_nr_03   VALUE '03' TYPE inri-nrrangenr. "
CONSTANTS: gc_nro_nr_04   VALUE '04' TYPE inri-nrrangenr. "
CONSTANTS: gc_nro_nr_09   VALUE '09' TYPE inri-nrrangenr. ".
 


두번째 들어갈 부분은 우리가 snro에서 만든 이름이다. 

위에서 'ZOWONN001' 을 만들었으므로 이걸 넣어주면 된다. 
(아래 참조해라. ZONRO00001 에 ZOWONN001 넣으라는 소리다!!! 모르면 말고;;) 

CONSTANTS: gc_nro_object_detnr                    "NRO for Determination Number
             VALUE 'ZONRO00001' TYPE inri-object. "NRO for the table ZOTR0051

CONSTANTS: gc_nro_object_0conr                    "NRO for C/O Document Number
             VALUE 'ZONRO00002' TYPE inri-object. "NRO for the table ZOTR0061, ZOTR0062
 

  *-----------------------------------------------------------------------
*... (Local) C/O Document Number
*-----------------------------------------------------------------------
      CLEAR: gv_nro_0conr.    "C/O Document Number
      PERFORM number_get_next
                      IN PROGRAM zh100000
*                     IF FOUND
                      USING    lv_nronr               "NRO Interval
                               gc_nro_object_0conr    "NRO for C/O Document Number
                               iv_bukrs                "위에 BUKRS 넣을수 있다는 곳에 BUKRS 넣어두면
                               iv_bdatj                "이렇게 넘겨야 되고, 년도도 체크 했다면
                      CHANGING gv_nro_0conr.           "넣어줘야 하고 CHANGING 을 받아오면 된다. (넘버)
*     COMMIT WORK AND WAIT.




---------------------------------------------------------------

자, PERFORM 안쪽을 보자.. 소스를 봐야지 ㅋㅋ

  FORM number_get_next
           USING    value(iv_nro_intervalTYPE inri-nrrangenr
                    value(iv_nro_object)   TYPE inri-object
                    value(iv_subobject)
                    value(iv_toyear)       TYPE inri-toyear
           CHANGING value(ev_nro_next).
  CLEAR: ev_nro_next.

  CALL FUNCTION 'NUMBER_GET_NEXT'
    EXPORTING
      nr_range_nr                   iv_nro_interval  "lv_nronr = 03 같은거 들어옴'             
      object                        iv_nro_object    "ZOWONN001 이거 들어감
*     QUANTITY                      = '1'
      subobject                     iv_subobject     "iv_bukrs 회사코드
      toyear                        iv_toyear        "iv_bdatj 연도입력
*     IGNORE_BUFFER                 = ' '
    IMPORTING
      number                        ev_nro_next
*     QUANTITY                      =
*     RETURNCODE                    =
   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.
  IF sy-subrc <> 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    "number_get_next



이렇게 넣어주면 된다.
728x90
반응형