关于使用ME_PROCESS_PO_CUST增强中check方法里设置报错后提示行号和红灯警告不一致问题
由于业务需要,在ME_PROCESS_PO_CUST的采购订单检查中设置了一些警告。但是实际使用过程中发现当多行的时候,比如下面举例

实际是第一行检查过程中就报错了,但是行项目界面上的红灯警告是在第二行,有的用户不会去看实际的报错信息,只看到界面里的红灯警告,用户去修正后,还是会这样报错,就会发生疑问,造成运维的冗余。
造成这样的原因是在增强代码里少写了一个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.
修正后,错误提示和错误显示行一致了

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

浙公网安备 33010602011771号