首先得明白BAPI_TRANSACTION_COMMIT这个BAPI的作用。它功劳很大,在SAP里面很多的BAPI直接调用是不会有结果的,因为需要COMMIT一下才能生效,比如生成资产编号的BAPI:BAPI_FIXEDASSET_CREATE1,如果对他直接在SE37中调用运行或者使用SE38调用它,虽然可以得到一个资产编号,但是在AS03里面查询,系统会很白痴得提示你:该资产编号...
2、在一般情况下SAP数据提交都是异步操作,即如果没有主动同步提交数据的话,数据提交操作都是在程序执行完毕之后统一commit,所以当我们后续代码如果需要依赖前面bapi执行数据,就需要主动同步提交数据才行,同步提交时需要给BAPI_TRANSACTION_COMMIT提交函数加一个输入参数wait = ‘X’,commit work语句后加一个and wait 部分...
When the SAP adapter is used with the BAPI interface, you must consider certain factors when you design transactional flows.
首先得明白BAPI_TRANSACTION_COMMIT这个BAPI的作用。它功劳很大,在SAP里面很多的BAPI直接调用是不会有结果的,因为需要COMMIT一下才能生效,比如生成资产编号的BAPI:BAPI_FIXEDASSET_CREATE1,如果对他直接在SE37中调用运行或者使用SE38调用它,虽然可以得到一个资产编号,但是在AS03里面查询,系统会很白痴得提示你:该资产编号...
那么,这就需要COMMIT一下,在调用这个BAPI之后再紧接调用BAPI_TRANSACTION_COMMIT这个。但是,在SE38中是可以这样做,而在.net中就没那么简单了,直接在调用完BAPI_FIXEDASSET_CREATE1之后再紧接调用BAPI_TRANSACTION_COMMIT是不可以的,虽然还是生成了资产编号,但仍旧是个废号。跟在SE37中调用无异。
在更新数据后调用 否则数据没有Commit 是不会被写入数据库的 在调用BAPI的客户端程序 中调用
说明:调用的时候,通常BAPI_TRANSACTION_COMMIT的wait参数是空的,那么就会导致commit work and wait不会执行,而是简单的commit work操作。这样后续的BAPI可能需要上一个bapi所操作的数据,但这些数据可能并没有提交完成,就会导致以后的bapi都无法正常顺利的执行。需要将参数wait赋值’X’,才可以保证后续的操作正常进行...
BAPI_TRANSACTION_COMMIT 在测试时,提示产生凭证后,再通过第二个函数执行一次,凭证COMMIT后才会正式产生凭证。 另外,在使用BAPI_ACC_DOCUMENT_POST进行凭证过账相关的功能(通过接口进行凭证过账或者通过EXCEL模板批量导入会计凭证)开发时,需要注意如下几点: 1. 记账码、原因代码、反记账表示都是不包括在BAPI_ACC_DOCUMENT...
在先前发行版的 SAP 中,某些 BAPI 编码为执行落实。 从 SAP R4.0A 开始,BAPI 发出单独的 BAPI_TRANSACTION_COMMIT 以强制执行更新(以代替执行落实工作)更为有效。 通过使用此方法,可以先执行 BAPI 调用,然后再以批处理工作单元形式落实工作。 要确定某个 BAPI 是否编码为执行落实,请参阅 BAPI 的文档。
2、 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. 如有commit失败的,则在commit之后加:WAIT UP TO 2 SECONDS.延迟执行 失败: 1、ROLLBACK WORK. 2、 CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. 数据库更新: 异步:COMMIT WORK, 同步:COMMIT WORK AND WAIT. BP: 创建BP BAPI 功能 BAPI...