简要地看一下bapi_transaction_commit的代码,我们能很快看出其与commit work的区别。它会在执行commit work之后再调用一个buffer_refresh_all的函数 所以bapi_transaction_commit额外地刷新了BAPI buffer缓冲区。 下面是bapi buffer的用处: 1、假设你的程序连续地调用了若干个bapi,然后在最后使用了co... ...
因为在一个bapi成功执行后,需要调用 BAPI_TRANSACTION_COMMIT来提交所做得更改,那么这个提交操作要等待一定的时间,我们 调用的时候,通常 BAPI_TRANSACTION_COMMIT的WAIT参数是空的,那么就会导致commit work and wait不会执行,而是简单的 commit work操作,这样后续的BAPI可能需要上一个bapi所作操作的数据,而恰巧这些数据...
1)DB_COMMIT : DB层的COMMIT,很少用到,大S之前说过,忘了 2)BAPI_TRANSACTION_COMMIT:COMMIT WORK/ AND WAIT包装的,后面接收COMMIT的返回消息 3)COMMIT WORK/AND WAIT:普通的提交,一般有数据库修改和更新都需要COMMIT。 一般BADI中增强,不允许COMMIT,有的BAPI自带COMMIT......
BAPI没有presentation layer。BAPI一般是同步调用,IDOC中的ALE例外,其在目标系统中依然是同步调用。可以通过update task实现数据更新。BAPI中不能使用COMMIT WORK。而要使用service object的method:BAPI_TRANSACTION_COMMIT和BAPI_TRANSACTION_ROLLBACK。BAPI使用了TRANSACTION MODEL,一个transaction代表了一个process unit或LUW...
BAPI_TRANSACTION_COMMIT有个WAIT参数,它类似于更新数据库语句的COMMIT和COMMIT AND WAIT。当不对WAIT参数赋值或赋为空时COMMIT会异步执行,否则会同步执行。这样当有两个业务需要连续执行的时候,第二个业务依赖与第一个业务,那么第一个业务BAPI在调用之后其BAPI_TRANSACTION_COMMIT的WAIT参数应赋为‘X’,否则便不能保...
TRANSACTION_COMMIT的WAIT参数应赋为‘X’,否则便不能保证第一个业务在执行完之后调用第二个业务的BAPI...
2) 执行BAPI处理后。一般使用BAPI函数BAPI_TRANSACTION_COMMIT(内含COMMIT语句) 。3. 如果要保证数据库中当前所作的更改立即被确认,那么就必须使用COMMIT WORK 语句结束LUW。COMMIT WORK 在程序代码中标记了 LUW(几个作业联系在一起形成作业的逻辑单元) 结束并启动更新任务。在COMMIT WORK 语句以后,...
在调用BAPI更新标准对象时,除少数BAPI在函数内做commit之外,其他均需要调用一下function module完成提交 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X' " * IMPORTING * RETURN = . 单就更新来说,这个参数 WAIT = 'X' 和commit work and wait 功能一样的。
在更新数据后调用 否则数据没有Commit 是不会被写入数据库的 在调用BAPI的客户端程序 中调用
2) 执行BAPI处理后。一般使用BAPI函数BAPI_TRANSACTION_COMMIT(内含COMMIT语句) 。 3. 如果要保证数据库中当前所作的更改立即被确认,那么就必须使用COMMIT WORK 语句结束LUW。COMMIT WORK 在程序代码中标记了 LUW(几个作业联系在一起形成作业的逻辑单元) 结束并启动更新任务。在COMMIT WORK 语句以后,对数据库所作的...