SAP号码段配置-SNRO/SNUM

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.


猜你喜欢

转载自blog.csdn.net/ling_0309/article/details/79045826