程序 SAPLMEPO (ME21n) 中的运行时错误 CONVT_NO_NUMBER

Runtime Error CONVT_NO_NUMBER in program SAPLMEPO (ME21n)

当我创建包含 10 个项目(或更多)的采购订单时,发生 运行 时间错误。以下是错误信息。

Category:          ABAP Programming Error
Runtime Errors: CONVT_NO_NUMBER
ABAP Program: SAPLMEPO
Include              MM06EF0B_BUCHEN
Application Component MM-PUR

发生异常,下面将详细说明。

无法在当前语句的上下文中捕获此异常。异常的原因是:试图将值“*”解释为数字。由于这个值违反了正确显示数字的规则,所以这是不可能的。

下面是发生异常的代码:

DATA indx.
     indx = 1.
* Need to merge KNT and XEKKN
* algorithm is: if knt is old, use knt. Else use the equivalent from xekkn
     LOOP AT knt.
       IF knt-updkz EQ oldpos.
         MOVE-CORRESPONDING knt TO lt_ekkn.
       ELSE.
        READ TABLE xekkn INDEX indx.
         MOVE-CORRESPONDING xekkn to lt_ekkn.
         indx = indx + 1.
       ENDIF.
       APPEND lt_ekkn.
     ENDLOOP.                    "v 2068862

好像是indx的数据类型(char 1),但是当PO item index = 9时,index = 10 (调试模式下实际值为*),所以出现异常

我该如何解决这个问题?

我也post这个问题在这里:https://scn.sap.com/message/16146617

您假设 indxC(1) 是正确的,因为您(或代码的作者)没有指定类型。将行更改为

DATA indx TYPE i.

应该可以解决问题。