欢迎来到萧静默的博客

书山有路勤为径,学海无涯苦作舟。

关于使用ME_PROCESS_PO_CUST增强中check方法里设置报错后提示行号和红灯警告不一致问题

由于业务需要,在ME_PROCESS_PO_CUST的采购订单检查中设置了一些警告。但是实际使用过程中发现当多行的时候,比如下面举例

image

实际是第一行检查过程中就报错了,但是行项目界面上的红灯警告是在第二行,有的用户不会去看实际的报错信息,只看到界面里的红灯警告,用户去修正后,还是会这样报错,就会发生疑问,造成运维的冗余。

造成这样的原因是在增强代码里少写了一个ID的定位。

如果只写使用宏MMPUR_MESSAGE 'E' 'ZMM01' '008' LS_ITEM-EBELP ''进行报错的话,这些错误消息只能显示到采购订单的最后一行上,并不能按照行项目归集显示。

这个时候使用宏mmpur_business_obj_id来确定错误消息显示到哪个行项目上。

IF LV_ZTMM022 IS INITIAL.
                MMPUR_BUSINESS_OBJ_ID LS_ITEM-ID.
                MMPUR_MESSAGE 'E' 'ZMM01' '008' LS_ITEM-EBELP '' '物料没有维护货源清单' '' .
              ENDIF.

修正后,错误提示和错误显示行一致了

image

 但是还会有一个问题,如果一开始就是第一行以外的行的标准报错,如没有填税码等,或者检查增强的顺序发生的报错大于第一行的检查报错,这个时候警告灯就会直接定位到后面几行,点检查后关掉报错框,才会正确定位。

 

posted @ 2026-05-11 08:53  萧静默  阅读(15)  评论(0)    收藏  举报