始终在显示验证PO项目tcode ME22N时的错误状态

2020-08-19 07:12发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好大师, 我正在使用IF_...

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

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


你好大师,

我正在使用IF_EX_ME_PROCESS_PO_CUST〜CHECK方法来验证订单项。

我说有20个订单项,而第5个订单项验证时出错。

我能够使用正确的订单项编号显示正确的错误消息,

但是,在状态列中,红色块仅显示在最后一项中,而不显示在第五行中。

请建议如何在错误的订单项中获得此红色的块状错误指示。

我已经搜索了论坛,但没有任何相关的解决方案。

下面是我的代码示例。

LS_HEADER = IM_HEADER-> GET_DATA()。

LS_ITEM = IM_HEADER-> GET_ITEMS()。

将LS_ITEM循环到LINE_ITEM。

PO_ITEM = LINE_ITEM-ITEM-> GET_DATA()。

从EKPO选择单个NETPR进入L_NETPR

WHERE EBELN = LS_HEADER-EBELN

AND EBELP = PO_ITEM-EBELP。

如果L_NETPR <> PO_ITEM-NETPR。

L_EBELP = PO_ITEM-EBELP。

从EKBE中选择*到表I_EKBE1的对应字段中

WHERE EBELN = LS_HEADER-EBELN

AND EBELP = L_EBELP

AND BWART ='101'。

描述表I_EKBE1的LIN1行。

从EKBE中选择*到表I_EKBE2的对应字段中

WHERE EBELN = LS_HEADER-EBELN

AND EBELP = L_EBELP

AND BWART ='102'。

描述表I_EKBE2的LIN2行。

如果LIN1> LIN2。

CONCATENATE'由于PO的GRN不存在,价格无法更改'LS_HEADER-EBELN'AND项目'L_EBELP到g_msg,按空格分隔。

消息g_msg类型'E'。

CH_FAILED ='X'。

ENDIF。

ENDIF。

ENDLOOP。

4条回答
派大星 ヾ
2020-08-19 07:44 .采纳回答

你好

IF_EX_ME_PROCESS_PO_CUST〜CHECK适用于整个文档,并且您为写入的逻辑获取了正确的项目,但没有导出参数可返回错误项目编号。

我建议在方法IF_EX_ME_PROCESS_PO_CUST〜PROCESS_ITEM中写逻辑

此处引发错误消息和调用方法

呼叫方法im_item-> invalidate()

之后。

希望它将解决问题。

谢谢

Krish

一周热门 更多>