NUMBER_GET_NEXT 获取编号 遇到关于按年度编号的问题
Posted 明大叔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NUMBER_GET_NEXT 获取编号 遇到关于按年度编号的问题相关的知识,希望对你有一定的参考价值。
最近给财务做了一个平台,在系统创建一些特殊类型的合同,需要生成合同编号:财务要求 合同类型+公司代码 +年+三位流水号,
eg:CP6008-2017001
SNRO
子对象数据元素就是 公司代码 不多解释
勾选 截至年份标志 :表示 按照年份 重新获取编号(从范围的最小值重新开始)
勾选 无滚动 :表示 所有编号用完 不会重新回到最小值开始,不勾选 反之 表示 重新从最小号开始编号
好 ,那么问题来了 今年是2017年,如果我只是维护2016年的编号范围 NUMBER_GET_NEXT 报错,
如果我直接维护2018年的编号范围,NUMBER_GET_NEXT 获取成功,输入参数明明是2017年,却在2018年获取了编号
以下是测试过程:
NUMBER_GET_NEXT: 按年编号 需要传入 toyear 参数
我在维护一下18年的编号范围:
NUMBER_GET_NEXT:
成功了 (被坑在这这个问题上,2017年的没有维护 ,理论上是不是应该提醒一下啊 SAP同学?)
-----------------------------------------------------------------
没办法自己解决:
在执行 NUMBER_GET_NEXT 前 检查一下 是否维护了当前年度的编号范围。数据库表为NRIV
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 .
-----------------------------
以上是关于NUMBER_GET_NEXT 获取编号 遇到关于按年度编号的问题的主要内容,如果未能解决你的问题,请参考以下文章
获取数组中对象的编号,但不获取对象本身。 - Laravel 5.2