ABAP 内部会话中的数据库缓存

在做采购订单创建及修改时通过输出信息(NACE)发送数据到其他系统的时候,发现通过RFC异步调用函数的时候取不到数据;同步调用就可以取到数据。

在同一个会话中,如果你更新数据库但没有提交,这时候你通过select依然可以取到最新的数据。但会话外的程序是取不到最新的数据的。

现在有两个程序ysean_test07,ysean_test08如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
REPORT ysean_test07.
DATA ls_ztifurl TYPE ztifurl.
ls_ztifurl-interface = 'sean01'.
ls_ztifurl-name = '测试会话内数据库缓存3333'.
MODIFY ztifurl FROM ls_ztifurl.<br>
SUBMIT YSEAN_TEST08.
SELECT
  SINGLE
  *
  FROM ztifurl
  WHERE interface = 'sean01'
  INTO @DATA(ls_001).
 
BREAK-POINT.
1
2
3
4
5
6
7
8
9
10
REPORT ysean_test08.
 
SELECT
  SINGLE
  *
  FROM ztifurl
  WHERE interface = 'sean01'
  INTO @DATA(ls_001).
 
BREAK-POINT.

执行程序07,修改数据库存,但不提交,并调用程序08.  

这时08可以取到最新的数据。

07中也可以取到最新的数据。

但是直接执行08程序取不到最新的数据。

 

posted @   女鬼的朋友  阅读(191)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示