T-CODE: SNRO、SNUM
1.创建一个号码段 对象
2.设置编号长度域、警告(注意:必须是SAP系统已定意的域)
3.设置缓冲,优点:不直接去数据库里取数,提升效率;缺点:存在跳号
4.设置取数范围
5.调整当前编号
6.调用程序
DATA:l_num TYPE i.
*锁定 CALL FUNCTION 'NUMBER_RANGE_ENQUEUE' EXPORTING object = 'ZCURTNU' EXCEPTIONS foreign_lock = 1 object_not_found = 2 system_failure = 3 OTHERS = 4.
IF sy-subrc = 0. *获取下个数字 CALL FUNCTION 'NUMBER_GET_NEXT' EXPORTING nr_range_nr = '1'
“在编号范围中分配的序列号 object = 'ZCURTNU'
“编码对象名称 IMPORTING number = l_num
“输出生成的流水号 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.
ELSE. *解锁 CALL FUNCTION 'NUMBER_RANGE_DEQUEUE' EXPORTING object = 'ZCURTNU' EXCEPTIONS object_not_found = 1 OTHERS = 2. ENDIF.
ENDIF.