当我创建一个包含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
看起来数据类型为index (char 1),但当PO项index = 9时,则index = 10(调试模式下实际值为*),因此发生异常。
我该如何解决这个问题?
我也在这里发布这个问题:https://scn.sap.com/message/16146617
您假设indx
是C(1)
是正确的,因为您(或代码的作者)没有指定类型。将行改为
DATA indx TYPE i.