ABAP 内部会话中的数据库缓存
在做采购订单创建及修改时通过输出信息(NACE)发送数据到其他系统的时候,发现通过RFC异步调用函数的时候取不到数据;同步调用就可以取到数据。
在同一个会话中,如果你更新数据库但没有提交,这时候你通过select依然可以取到最新的数据。但会话外的程序是取不到最新的数据的。
现在有两个程序ysean_test07,ysean_test08如下:
REPORT ysean_test07. DATA ls_ztifurl TYPE ztifurl. ls_ztifurl-interface = 'sean01'. ls_ztifurl-name = '测试会话内数据库缓存3333'. MODIFY ztifurl FROM ls_ztifurl.
SUBMIT YSEAN_TEST08. SELECT SINGLE * FROM ztifurl WHERE interface = 'sean01' INTO @DATA(ls_001). BREAK-POINT.
REPORT ysean_test08. SELECT SINGLE * FROM ztifurl WHERE interface = 'sean01' INTO @DATA(ls_001). BREAK-POINT.
执行程序07,修改数据库存,但不提交,并调用程序08.
这时08可以取到最新的数据。
07中也可以取到最新的数据。
但是直接执行08程序取不到最新的数据。