保存采购订单时弹出消息

2020-08-23 18:36发布

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

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


我已经实施了BADI ME_PROCESS_PO_CUST(检查方法来检查带有采购申请量的采购订单金额。 如果数量不同,我需要显示一个带有"是"或"否"按钮的弹出消息。 如果是,则应保存单击的PO,如果不保存,则应保存在该屏幕中。 我已经实现了以下代码,但是在选择"否"按钮并且保存了PO后,它并没有停止。

SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S32 {color:#3399FF; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }

选择werks
进入表it_check
从zpo_pr_compare
中查找it_temp中的所有条目
其中werks = it_temp-werks。
如果sy-subrc EQ0。
从PO
LOOP AT it_mepoitem取值到ls_mepoitem。
lv_poamt = lv_poamt + ls_mepoitem-netwr。
ENDLOOP。 br> CLEAR:lv_poamt,lv_pramt。
刷新it_eban。
从eban

中选择preis 
到it_eban
表中it_mepoitem
中的所有条目
AND bnfpo = it_mepoitem-bnfpo。
如果sy-subrc =0。
循环到it_eban到wa_eban。
lv_pramt = lv_pramt + wa_eban-preis。
IF lv_pramt NE lv_poamt。
清除:lv_answer。
通话功能'POPUP_TO_CONFIRM'
导出
text_question = TEXT-010
text_button_1 = TEXT-008"'是'
text_button_2 = TEXT-007"'否'
IMPORTING
answer = lv_answer
EXCEPTIONS
text_not_found = 1
其他=2。
如果lv_answer = '2'。
ch_failed ='X'。
ENDIF。
ENDIF。

CH_FAILED是CHECK方法中给出的标准变量。

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

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


我已经实施了BADI ME_PROCESS_PO_CUST(检查方法来检查带有采购申请量的采购订单金额。 如果数量不同,我需要显示一个带有"是"或"否"按钮的弹出消息。 如果是,则应保存单击的PO,如果不保存,则应保存在该屏幕中。 我已经实现了以下代码,但是在选择"否"按钮并且保存了PO后,它并没有停止。

SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S32 {color:#3399FF; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }

选择werks
进入表it_check
从zpo_pr_compare
中查找it_temp中的所有条目
其中werks = it_temp-werks。
如果sy-subrc EQ0。
从PO
LOOP AT it_mepoitem取值到ls_mepoitem。
lv_poamt = lv_poamt + ls_mepoitem-netwr。
ENDLOOP。 br> CLEAR:lv_poamt,lv_pramt。
刷新it_eban。
从eban

中选择preis 
到it_eban
表中it_mepoitem
中的所有条目
AND bnfpo = it_mepoitem-bnfpo。
如果sy-subrc =0。
循环到it_eban到wa_eban。
lv_pramt = lv_pramt + wa_eban-preis。
IF lv_pramt NE lv_poamt。
清除:lv_answer。
通话功能'POPUP_TO_CONFIRM'
导出
text_question = TEXT-010
text_button_1 = TEXT-008"'是'
text_button_2 = TEXT-007"'否'
IMPORTING
answer = lv_answer
EXCEPTIONS
text_not_found = 1
其他=2。
如果lv_answer = '2'。
ch_failed ='X'。
ENDIF。
ENDIF。

CH_FAILED是CHECK方法中给出的标准变量。

付费偷看设置
发送
4条回答
compass1988
1楼-- · 2020-08-23 19:02

您好,基兰,

建议最好使用ME_PROCESS_PO_CUST-方法PROCESS_ITEM编写代码,因为如果PO具有多个订单项,则可以在旅途中解决该问题,但如果是CHECK方法,则可能需要更多代码行 。 因此,请使用PROCESS_item并在验证结束时提供自定义错误消息。

消息e398(00)具有"值不能超过PR值"空间的空间。

哎,真难
2楼-- · 2020-08-23 19:27

Bunny_CDM
3楼-- · 2020-08-23 19:04

您好,基兰,

尝试在用户出口以下。

  • EXIT_SAPMM06E_012
Doze时光
4楼-- · 2020-08-23 19:23

CHECK的文档说:"在任何情况下都不能在此方法内对数据库进行任何更改。绝对不要使用Commits。"

我不知道它是否是 是,但是显示弹出窗口会隐式提交。

您可以通过不显示弹出窗口并设置CH_FAILED ='X'来自己检查,看看会发生什么。

一周热门 更多>