Showing posts with label ODN Number Range. Show all posts
Showing posts with label ODN Number Range. Show all posts

Saturday, March 17, 2018

ODN Number Range Creation at Start of Year

*&---------------------------------------------------------------------*
*& REPORT  ZNUMBER_RANGE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZNUMBER_RANGE.
TABLES: NRIV.

SELECTION-SCREEN:BEGIN OF BLOCK F1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_OBJECT LIKE NRIV-OBJECT.
SELECTION-SCREEN:END OF BLOCK F1.

SELECTION-SCREEN:BEGIN OF BLOCK F4 WITH FRAME TITLE TEXT-004.
PARAMETERS: P_COCD LIKE NRIV-SUBOBJECT.
SELECTION-SCREEN:END OF BLOCK F4.

SELECTION-SCREEN:BEGIN OF BLOCK F2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS: S_NRRANG FOR NRIV-NRRANGENR.
SELECTION-SCREEN:END OF BLOCK F2.

SELECTION-SCREEN:BEGIN OF BLOCK F3 WITH FRAME TITLE TEXT-003.
PARAMETERS: P_TOYEAR LIKE NRIV-TOYEAR.
SELECTION-SCREEN:END OF BLOCK F3.

DATA I_NRIV TYPE STANDARD TABLE OF NRIV WITH HEADER LINE.

START-OF-SELECTION.

SELECT * FROM NRIV INTO TABLE I_NRIV WHERE OBJECT = P_OBJECT AND NRRANGENR IN S_NRRANG AND TOYEAR = P_TOYEAR AND SUBOBJECT = P_COCD .
P_TOYEAR = P_TOYEAR + 1 .

LOOP AT I_NRIV.
CALL FUNCTION 'G_CATT_INSERT_NUMBER_RANGE'
EXPORTING
  EXTERNIND = I_NRIV-EXTERNIND
FROMNUMBER = I_NRIV-FROMNUMBER
NNRANGENR = I_NRIV-NRRANGENR
NRLEVEL = '00000000000000000000'
OBJECT = P_OBJECT
PROCIND = 'Y'
SUBOBJECT =  P_COCD
TONUMBER = I_NRIV-TONUMBER
TOYEAR = P_TOYEAR

EXCEPTIONS
  NO_CHANGES_MADE = 1
  OBJECT_NOT_INITIALIZED = 2
  OTHERS.
   WRITE S_NRRANG.
   WRITE 'RECORD ADDED'.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* WRITE 'ERROR'.
 ENDIF.
  ENDLOOP.