转载自:https://blog.csdn.net/yuqinying112/article/details/7880653
CALL FUNCTION 'NUMBER_RANGE_ENQUEUE '
EXPORTING
object = 'ZSDDNR'
EXCEPTIONS
foreign_lock = 1
object_not_found = 2
system_failure = 3
OTHERS = 4.
* **如果号码范围存在
if sy-subrc eq 0 .
* ****得到一个号码,
CALL FUNCTION 'NUMBER_GET_NEXT '
EXPORTING
nr_range_nr = '1' "这个就是维护的间隔号
object = 'ZSDDNR' “这个就是流水号对象
IMPORTING
number = L_SEQNO ”获得的流水号
* 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.
* ***将号码累加
CALL FUNCTION 'NUMBER_RANGE_DEQUEUE '
EXPORTING
object = 'ZSDDNR'
EXCEPTIONS
object_not_found = 1
OTHERS = 2.
else .
raise NUM_RANGE_ERROR .
endif .
很 容易理解,首先判断是否有这个number range,如果存在的话,就获得下个序号,最后一个函数我估计意思是释放这个全局变量的内存。’ZSDDNR’就是我们创建的number range。如此就可以像会计凭证编号那样每次都可以自动生成流水号了!流水号可以在自建表中用作主键,它的产生就靠上面的函数。