NUMBER_GET_NEXT 获取编号年度问题

最近给财务做了一个平台,在系统创建一些特殊类型的合同,需要生成合同编号:财务要求 合同类型+公司代码 +年+三位流水号,

eg:CP6008-2017001

 

SNRO

   子对象数据元素就是 公司代码 不多解释

   勾选 截至年份标志  :表示 按照年份 重新获取编号(从范围的最小值重新开始)

   勾选 无滚动           :表示 所有编号用完 不会重新回到最小值开始,不勾选 反之 表示 重新从最小号开始编号


CALL FUNCTION 'NUMBER_RANGE_ENQUEUE'
    EXPORTING
      OBJECT                 = ''
    EXCEPTIONS
      FOREIGN_LOCK           = 1
      OBJECT_NOT_FOUND       = 2
      SYSTEM_FAILURE         = 3
      OTHERS                 = 4
            .


  CALL FUNCTION 'NUMBER_GET_NEXT'
    EXPORTING
      NR_RANGE_NR                   = '00'
      OBJECT                        = 
      SUBOBJECT                     = P_BUKCG
      TOYEAR                        = SY_DATUM+0(4)
      IGNORE_BUFFER                 = 'X'
    IMPORTING
      NUMBER                        = P_HTNUM
    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                 = ''
    EXCEPTIONS
      OBJECT_NOT_FOUND       = 1
      OTHERS                 = 2
            .

好  ,那么问题来了 今年是2017年,如果我只是维护2016年的编号范围  NUMBER_GET_NEXT 报错,

如果我直接维护2018年的编号范围,NUMBER_GET_NEXT 获取成功,输入参数明明是2017年,却在2018年获取了编号

在执行 NUMBER_GET_NEXT 前  检查一下  是否维护了当前年度的编号范围。数据库表为NRIV


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值