函数ME_PO_CONFIRM仅在第一次使用

2020-08-14 01:29发布

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

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


我的程序使用功能ME_PO_CONFIRM更改(或添加或删除)PO确认。 第一次使用它时效果很好,但是当再次使用它来更改相同的PO时,它什么也没做,尽管返回消息没有表明有任何错误。 每次使用后都有一个COMMIT。

返回选择屏幕会重置内容; 之后,第一个函数调用将再次起作用。

有什么办法解决此问题吗? 就像有一个表锁一样,但是返回消息并没有表明这一点。

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

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


我的程序使用功能ME_PO_CONFIRM更改(或添加或删除)PO确认。 第一次使用它时效果很好,但是当再次使用它来更改相同的PO时,它什么也没做,尽管返回消息没有表明有任何错误。 每次使用后都有一个COMMIT。

返回选择屏幕会重置内容; 之后,第一个函数调用将再次起作用。

有什么办法解决此问题吗? 就像有一个表锁一样,但是返回消息并没有表明这一点。

付费偷看设置
发送
3条回答
愤怒的猪头君
1楼-- · 2020-08-14 02:02
菲尔·卡梅尔曼,

 尝试如下所示使用BAPI COMMIT USING WAIT。  
呼叫功能" BAPI_TRANSACTION_COMMIT"
     输入
       WAIT ='X'。

致谢!

spaceman01
2楼-- · 2020-08-14 01:56

嗨,

cfr以下

nice_wp
3楼-- · 2020-08-14 02:06

嗨,

感谢您的答复。 我已经在做COMMIT。 第一次提交更改之后,之后数据库中的任何内容都将保持不变,直到我返回程序的选择屏幕并再次进入它为止。 然后下一次该功能再次运行。 工作时或不工作时,函数的导出参数没有区别。 我重设了每次调用前发送给函数的所有表和其他变量。 lt_item始终为空。

我尝试使用STARTING NEW TASK运行该功能,但这没什么区别。

有人知道如何模拟返回选择屏幕而不实际这样做吗? 一些重置命令之类的。

这是我的代码的一部分

清除ls_header_out。
清除lt_item_out []。
清除lt_conf_out []。
清除lt_bapiret2 []。
"调用
通话功能'ME_PO_CONFIRM'
导出
document_no = is_ekpo-ebeln
testrun = iv_test
* HEADER =
* HEADERX =
item = lt_item
* ITEMX =
确认= lt_conf
确认x = lt_confx
* ITEM_TEXT =
* HEADER_TEXT =
* EXTENSIONIN =
导入
return = lt_bapiret2
exp_header = ls_header_out
exp_item = lt_item_out
exp_confirmation = lt_conf_out
* EXTENSIONOUT br>。

**将bapiret2添加到ct_bapiret2
环回lt_bapiret2
INTO ls_bapiret2
"是否有错误?
如果ls_bapiret2-type ='E'或ls_bapiret2- 类型='A'。
cf_success =''。
APPEND ls_bapiret2 TO ct_bapiret2。
ENDIF。
ENDLOOP。

*成功吗? =>消息和提交
如果cf _成功='X'。
如果iv_test =''。
通话功能'BAPI_TRANSACTION_COMMIT'
导出
等待='X'

> ENDIF。
ENDIF。


一周热门 更多>