在这个函数中,参数No_COMMIT,是默认为空的,也就是说函数执行后会默认将数据提交到数据库,当我对多条数据进行审批时,如果遇到失败的数据,想将之前已经审批通过的数据进行回滚,这时候发现已经回滚不了了,数据已经被提交到数据库了,所以,这种情况就需要给NO_COMMIT赋值'X'。
代码:
LOOP AT l_tab_oadata INTO l_rec_oadata.
CLEAR l_wrk_status.
CLEAR l_wrk_sapno.
l_wrk_status = l_rec_oadata-status.
l_wrk_sapno = l_rec_oadata-sap_no.
CASE l_wrk_status.
WHEN 'A'. "审批通过
CLEAR l_wrk_relcod.
REFRESH l_tab_return.
l_wrk_relcod = 'B2'.
CALL FUNCTION 'BAPI_PO_RELEASE'
EXPORTING
purchaseorder = l_wrk_sapno
po_rel_code = l_wrk_relcod
use_exceptions = 'X'
no_commit = 'X'