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程序取不到最新的数据。
分类:
ABAP
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!