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程序取不到最新的数据。

 

posted @ 2022-03-09 18:37  女鬼的朋友  阅读(165)  评论(0编辑  收藏  举报