1.snro 加号码范围
CALL FUNCTION 'ZCDM_FM_GET_NUMBER_RANGE'
EXPORTING
i_nr_range_nr = '01'
i_object = 'ZCDM_BB'
IMPORTING
number = s_bb_main-z_bb_id.
IF s_bb_main-z_bb_id IS INITIAL.
RAISE range_get_failed.
ENDIF.
FUNCTION ZCDM_FM_GET_NUMBER_RANGE.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(I_NR_RANGE_NR) TYPE INRI-NRRANGENR
*" VALUE(I_OBJECT) TYPE INRI-OBJECT
*" EXPORTING
*" REFERENCE(NUMBER) TYPE ZCDM_LONG_P_ID
*"----------------------------------------------------------------------
DATA: QUANT LIKE INRI-QUANTITY ,
CODE LIKE INRI-RETURNCODE .
CALL FUNCTION 'NUMBER_RANGE_ENQUEUE'
EXPORTING
OBJECT = I_OBJECT
EXCEPTIONS
FOREIGN_LOCK = 1
OBJECT_NOT_FOUND = 2
SYSTEM_FAILURE = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF SY-SUBRC EQ 0 .
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = I_NR_RANGE_NR
OBJECT = I_OBJECT
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' '
IMPORTING
NUMBER = NUMBER
QUANTITY = QUANT
RETURNCODE = CODE
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.
CALL FUNCTION 'NUMBER_RANGE_DEQUEUE'
EXPORTING
OBJECT = I_OBJECT
EXCEPTIONS
OBJECT_NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDFUNCTION.
2.代码中直接添加.
SELECT MAX( z_bb_cd ) FROM zcdm_t_bb INTO s_bb_main-z_bb_cd .
IF s_bb_main-z_bb_cd IS INITIAL.
CONCATENATE sy-datum+0(4) '0000001' INTO s_bb_main-z_bb_cd .
ELSE.
s_bb_main-z_bb_cd = s_bb_main-z_bb_cd+1(11) + 1.
ENDIF.
CONDENSE s_bb_main-z_bb_cd .
CONCATENATE 'E' s_bb_main-z_bb_cd INTO s_bb_main-z_bb_cd .