在SAP里面很多的BAPI直接调用是不会有结果的,因为需要COMMIT一下才能生效,比如生成资产编号的BAPI:BAPI_ACC_DOCUMENT_POST,如果对它直接在SE37中调用运行或者使用SE38调用它,虽然可以得到一个会计凭证编号,但是在FB03里面查询,系统得提示你:该凭证编号不存在于公司代码XX下的XX年度。
这个时候需要调BAPI:
BAPI_TRANSACTION_COMMIT
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
就是这三行代码!
还有时候用MODIFY明明Debug有数据,查数据库表就是没有这个时候需要:
MODIFY ztfin_comp_chan FROM ls_chan.
IF sy-subrc = 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
意思是找到就COMMIT生效,如果否就释放!
网友评论