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

2020-08-19 07:12发布

         点击此处--->   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。

         点击此处--->   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条回答
派大星 ヾ
1楼 · 2020-08-19 07:44.采纳回答

你好

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

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

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

呼叫方法im_item-> invalidate()

之后。

希望它将解决问题。

谢谢

Krish

SAP德到
2楼-- · 2020-08-19 07:47

Hello Krish,

调用方法消息不起作用。 存在相同的错误。

但是我在IF_EX_ME_PROCESS_PO_CUST〜PROCESS_ITEM中尝试了相同的操作,并获得了预期的结果。

非常感谢您的回复,它解决了我的问题。

半个程序猿
3楼-- · 2020-08-19 07:35

嗨,

我已经在IF_EX_ME_PROCESS_PO_CUST〜CHECK中尝试了此方法,但是问题仍然存在。 下面是我的代码的一部分

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

消息g_msg类型'E'。

CH_FAILED ='X'。

LINE_ITEM-ITEM-> INVALIDATE()。

nice_wp
4楼-- · 2020-08-19 07:42

我仍在使用上述方法,但仍然遇到相同的问题。

调用方法cl_message_mm => create
导出
im_msgid ='ME'"消息ID
im_msgty ='E'"消息类别(E,I,W,...)
im_msgno ='151'"消息号

如果sy-subrc <>0。
ENDIF。
调用METHOD WA_RE_ITEMS-ITEM-> invalidate()。

一周热门 更多>