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
            .

-----------------------------

励志美文、《抉择》

人的一生常处于抉择之中,如:念哪一间大学?选哪一种职业?娶哪一种女子?……等等伤脑筋的事情。一个人抉择力的有无,可以显示其人格成熟与否。

倒是哪些胸无主见的人,不受抉择之苦。因为逢到需要决定的时候,他总是求询别人说:"嘿,你看怎么做?"

大凡能够成大功业的人,都是抉择力甚强的人。他知道事之成败,全在乎已没有人可以代劳,更没有人能代你决定。

在抉择的哪一刻,成败实已露出端倪。

时间: 2024-08-29 19:38:22

NUMBER_GET_NEXT 获取编号 遇到关于按年度编号的问题的相关文章

IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息

IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息 /**当获取到定位的坐标后,回调函数*/ - (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation{ BMKCoordinateRegion region; region.center.latitude  = userLocation.location.coordinate.latitude; region.center.longitude = userLoca

验证码识别,发票编号识别(转)

毕业设计做了一个简单的研究下验证码识别的问题,并没有深入的研究,设计图形图像的东西,水很深,神经网络,机器学习,都很难.这次只是在传统的方式下分析了一次. 今年工作之后再也没有整理过,前几天一个家伙要这个demo看下,我把一堆东西收集,打包给他了,他闲太乱了,我就整理记录下.这也是大学最后的一次作业,里面有很多记忆和怀念. 这个demo的初衷不是去识别验证码,是把验证的图像处理方式用到其他方面,车票,票据等. 这里最后做了一个发票编号识别的的案例: 地址:http://v.youku.com/v

java实现自动编号系统(类似于word中自动编号)

功能需求: 1,根据章节和当前标题数量,获得下一个编号,满足不同等级编号需求.如同word中的自动编号功能一样 2,可以实现在freemarker中直接调用生成方法,得到正确的编号 目标:即在freemarker代码中通过一个方法调用即可得到当前章节的编号 1 1.1 1.2 2 2.1 2.1.1 2.1.2 2.2 2.2.1 3 3.1 3.1.1 3.1.1.1 3.2 思路: 1,编号整体上是树形结构,因此要用树来管理整个列表 2,有一个方法可以根据最大值,获取下一个(比如:最大值3,

iOS-获取苹果商店iPhone应用程序编号APPID-应用中跳转到AppStore中的其他应用

iOS-获取苹果商店iPhone应用程序编号APPID-应用中跳转到AppStore中的其他应用 一 获取苹果商店iPhone应用程序编号APPID 1 在mac上打开itunes  选择中的A 然后再在右上角输入应用程序名记得选择itunes store 2 在搜索出来的应用程序中复制链接 3 随便找个文本粘贴  链接格式为:https://itunes.apple.com/app/应用程序名/id然后一串数字?mt=8  id和?中间的数字就是 应用程序编号 . 二 应用中跳转到AppSto

按规则自动生成单据编号 以及并发问题

描述:每种单据新建时,自动生成它的单据编号. 规则如:固定码+日期+流水号 (ABC1603180001) 方法一:触发器 触发器的缺点是,执行了sql之后才看到编码. 测试:流水号不能超过最大数,否则后面的号码全是0 --有两张表,客户表和项目表,要求:新建项目时自动生成项目编号,每个不同的客户的项目的编号从1开始 --项目编号格式为PJ+"-"+"客户编号"+"-"+"日期"+"-"+"流水号

项目中业务编号的实现(业务码+日期+自增序列)

目录 1. 实现思路 2. 代码实现 3. 总结 参考 做项目的时候,经常会有自动生成业务编码的需求,比如插入数据的时候需要生成如下产品编号:P-(年份日期和三位序列号),比如P-20180727001 1. 实现思路 使用业务编号+当前日期获得redis的key值; 使用redis的incr来原子性地获得其对应的自增数; 避免redis的数据冗余,需要在第一次incr的时候使用expireAt设置其数据当天24点过期. 这样即可在并发情况下获得不重复的相应编码. 2. 代码实现 public

sql查询时增加自动编号

查询时加序号  a:没有主键的情形: Select   identity(int,1,1)   as   iid,*   into   #tmp   from   TableName   Select   *   from   #tmp   Drop   table   #tmp b:有主键的情形: Select   (Select   sum(1)   from   TableName   where   KeyField   <=   a.KeyField)   as   iid,*   f

2016.3.7 Word2007编号设置

1.点击下图红圈出的下拉箭头 2.点击下图新建样式按钮 3.在弹出窗口中,设置名称AAA(方便稍后的查找修改),样式类型改为列表,点击编号 4.在弹出的窗口中以此设置各级标题的编号样式,保存后设置成功 5.修改已创建的编号样式 在第二张图中点击最右边按钮 所有编号的关键在于"输入编号格式"栏中那几个灰色背景的1,很有玄机,虽然都是1,但代表不同的级别,这几个1的顺序很重要,如果错乱,会造成编号混乱,比如本来该是5.1.2 可能会变成1.5.2遇到这样问题可这样解决: 先将"此

sql 复杂自动编号错误批量修改方案

[一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/5133953.html]  前提:自动编号为18位,前4位是年份,中间10位是XXXX,最后四位是0001-9999的自动编号. 问题:某天发现2016年自动编号后四位从0001-0081后变为7328-8530,出现编号错乱问题(原因未知待查).但数据需要马上批量重置,否则后续编号将继续错误. 方案:截取2016年份的前14位拼接后4位正确自动编号.实现如下: --查询2016年我司项目编号