在内向交货中创建批处理时,已达到编号范围的临界点。

2020-09-06 02:32发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的团队

我在SNRO中检查了Batch_CLT,但是它没有显示相同的数字范围。请仔细地指导我如何增加数字范围以避免此错误。

1up.jpg (44.6 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的团队

我在SNRO中检查了Batch_CLT,但是它没有显示相同的数字范围。请仔细地指导我如何增加数字范围以避免此错误。

1up.jpg (44.6 kB)
付费偷看设置
发送
3条回答
小熊yu生菜
1楼-- · 2020-09-06 03:36

批次编号范围在配置路径中维护:后勤-常规->批次管理->批次编号分配->维护内部批次编号分配范围

粗暴的香蕉
2楼-- · 2020-09-06 03:14

发布查询时 并提供进一步的更新,请在"评论"下而不是在"答案"下添加内容,因为您不是在回答查询,而是仅提供成员要求的其他信息。 同样,当您在"注释"下添加文本时,该文本将提示您所响应的人,而如果您在"答案"下添加该文本,则该成员将不会被提示。 顺便说一句,您的上述答案已由我转换为评论。

小灯塔
3楼-- · 2020-09-06 03:14

首先,该消息清楚地表明数字范围对象BATCH_CLT中的剩余数字较低。 数字范围对象的标准设置是在级别为10%或更低时发出警告-事务SNRO:

第二,SAP使用BATCH_CLT(内部批次编号)的默认编号范围为01。 查看要配置的文档:后勤-常规->批次管理->维护内部批次编号分配范围:

标准设置

在标准中,从0000000001到9999999999的数字范围为01 为数字范围对象BATCH_CLT定义。

活动

检查数字范围间隔01是否存在并维护新的数字 范围(如有必要)。

其他注释

如果替换了数字范围对象和/或建议的间隔 使用客户函数调用具有您自己的对象或间隔的系统 EXIT_SAPLV01Z_001,保持编号范围对象和/或区间 此步骤。

第三,如果您使用的数字范围与01不同,则必须实现用户出口EXIT_SAPLV01Z_001,用您自己的标准数字范围替代。 批号分配是通过功能VB_NEXT_BATCH_NUMBER执行的:

第111-119行-这里预定义了标准编号范围:

 * Standardvorbelegung zum Nummernkreis
   INT_RANGE ='01'。
   INT_OBJECT ='BATCH_CLT'。
   INT_SUBOBJECT =空格。
   INT_TOYEAR ='0000'。
   INT_MESSAGE = MESSAGE_WHEN_AUTO。
   INT_MESS_DONE = MESS_DONE。
   SKIP_AUTO =空格。
   CLEAR NEW_CHARG。
 

行150-165-在此调用用户出口以提供自定义数字范围:

 * Aufruf erster CFC zur Ermittlung des Nummernkreises
   清除SY-SUBRC。
   呼叫客户功能'001'
        出口
             X_BNCOM = X_BNCOM
        输入
             CUST_NO_INTERNAL = SKIP_AUTO
        改变
             NR_RANGE_NR = INT_RANGE
             对象= INT_OBJECT
             SUBOBJECT = INT_SUBOBJECT
             TOYEAR = INT_TOYEAR
             MESSAGE_WHEN_AUTO = INT_MESSAGE
             MESSAGE_DONE = INT_MESS_DONE
        例外情况
             取消= 1。
 

第194-230行-这里是从号码范围中请求下一个号码。 如果要用尽数字范围,则第226行生成消息:

 * Holen dernächstenChargennummer
   如果SKIP_AUTO是INITIAL。
     通话功能" NUMBER_GET_NEXT"
          出口
               NR_RANGE_NR = INT_RANGE
               对象= INT_OBJECT
               QUANTITY ='1'
               SUBOBJECT = INT_SUBOBJECT
               TOYEAR = INT_TOYEAR
          输入
               NUMBER = NEW_CHARG
               RETURNCODE = RETURNCODE
          例外情况
               INTERVAL_NOT_FOUND = 1
               OBJECT_NOT_FOUND = 2
               INTERVAL_OVERFLOW = 3
               其他= 4。
     案例SY-SUBRC。
       何时1。
         带有INT_RANGE INT_OBJECT的消息E028(LB)
                          收益:INTERVAL_NOT_FOUND。
       何时2。
         带有INT_OBJECT的消息E022(26)
                          RAISING OBJECT_NOT_FOUND。
       何时3。
         带有INT_RANGE INT_OBJECT的消息E028(LB)
                          引发INTERVAL_OVERFLOW。
       何时4。
         讯息E024(26)出现ERROR_AUTOMATIC_BATCH_NUMBER。
     结束。
     案例返回码。
       当为" 1"时。
         使用INT_OBJECT的消息I027(26)。
       当" 2"时。
         带有INT_OBJECT的消息I028(26)。
     结束。
   万一。
 

我建议以下内容:

  1. 在第195行的VB_NEXT_BATCH_NUMBER函数中放置断点,并检查哪个数字范围用于获取下一个批号。
  2. 检查用户出口EXIT_SAPLV01Z_001的执行情况。

HTH

DominikTylczyński

一周热门 更多>