首先得明白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 部分...
首先得明白BAPI_TRANSACTION_COMMIT这个BAPI的作用。它功劳很大,在SAP里面很多的BAPI直接调用是不会有结果的,因为需要COMMIT一下才能生效,比如生成资产编号的BAPI:BAPI_FIXEDASSET_CREATE1,如果对他直接在SE37中调用运行或者使用SE38调用它,虽然可以得到一个资产编号,但是在AS03里面查询,系统会很白痴得提示你:该资产编号...
From SAP Release 4.0A onwards, it is more effective for BAPIs to issue a separate BAPI_TRANSACTION_COMMIT to force the update, instead of doing commit work. By using this method, BAPI calls can be made before the work is committed as a batched unit of work. To find out if a BAPI ...
那么,这就需要COMMIT一下,在调用这个BAPI之后再紧接调用BAPI_TRANSACTION_COMMIT这个。但是,在SE38中是可以这样做,而在.net中就没那么简单了,直接在调用完BAPI_FIXEDASSET_CREATE1之后再紧接调用BAPI_TRANSACTION_COMMIT是不可以的,虽然还是生成了资产编号,但仍旧是个废号。跟在SE37中调用无异。
在先前发行版的 SAP 中,某些 BAPI 编码为执行落实。 从 SAP R4.0A 开始,BAPI 发出单独的 BAPI_TRANSACTION_COMMIT 以强制执行更新(以代替执行落实工作)更为有效。 通过使用此方法,可以先执行 BAPI 调用,然后再以批处理工作单元形式落实工作。 要确定某个 BAPI 是否编码为执行落实,请参阅 BAPI 的文档。
在更新数据后调用 否则数据没有Commit 是不会被写入数据库的 在调用BAPI的客户端程序 中调用
执行操作后,业务流程必须分别通过发送BAPI_TRANSACTION_COMMIT或BAPI_TRANSACTION_ROLLBACK消息来提交或中止事务。 这些消息称为“事务消息”。 适配器如何通过BizTalk Server启用事务? 若要使用 BizTalk Server 在 SAP 系统上启用事务,SAP 适配器: 提供消息上下文属性 OPEN、REUSE、CLOSE 和 AB...
说明:调用的时候,通常BAPI_TRANSACTION_COMMIT的wait参数是空的,那么就会导致commit work and wait不会执行,而是简单的commit work操作。这样后续的BAPI可能需要上一个bapi所操作的数据,但这些数据可能并没有提交完成,就会导致以后的bapi都无法正常顺利的执行。需要将参数wait赋值’X’,才可以保证后续的操作正常进行...
BAPI测试顺序 每当ABAP开发人员寻找问题的解决方案时,她使用的第一种方法是在花时间完全实现解决方案之前测试该解决方案。当需要按顺序测试解决方案时,测试变得复杂。例如,如果触发了BAPI,则只有在调用BAPI_TRANSACTION_COMMIT时才会看到输出。对于这种情况,SE37方式执行排序,如下所示。