是否可以调用BAPI然后做一些事情来阻止BAPI提交数据库更改?
我需要为报告制作类似测试模式的内容,并且不想向数据库提交任何内容。
答案 0 :(得分:1)
对于" old" bapis< 3.1没有可能阻止bapi的提交:所有bapis都自己做出了承诺。 从4.6开始,所有DB更改bapis必须通过bapi commit明确调用。如果你不打电话,你的改变就不会被保存
答案 1 :(得分:0)
对于FI文件,您可以使用BAPI_ACC_DOCUMENT_CHECK
检查所有项目是否正确,它不会更改数据库。
答案 2 :(得分:0)
取决于BAPI。
在将前者所做的任何更改发送到数据库之前,某些BAPI需要额外调用BAPI_COMMIT。
这意味着,例如,您可以调试对心脏内容的BAPI调用(无论如何都会返回所有结果或错误消息),然后当报告准备好生成时,添加BAPI_COMMIT调用,并验证无论什么行动成功通过。
答案 3 :(得分:0)
在屏幕上查看一个复选框,并执行下面的工作。请记住,这是一个快速而肮脏的例子。
CALL FUNCTION'BAPI_ACC_DOCUMENT_CHECK
LOOP AT lt_return INTO wa_return.
IF wa_return-type EQ 'E'.
lv_err_flag = 'X'.
EXIT.
ENDIF.
ENDLOOP.
IF lv_err_flag IS INITIAL.
"Success!
"Is this a test or for real?
IF lv_test IS INITIAL.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT
.
ELSE.
"Write some output to screen instead of posting/commiting as its a test run
ENDIF.
ELSE.
"Fail!
"Fail logic and output.
ENDIF.