我们的环境包括5个运行AX2012 R2 CU6的AOS。
在当前场景中,用户使用新记录填充许多表。在特定AOS上设置WebService以检索数据。
好像是"新" WebService永远不会获取数据(除非重新调整AOS),因为这些记录是在另一个AOS上创建的。
确保WS可以访问最新数据的最佳方法是什么?我想要一个服务器端解决方案(尝试在WS代码中实现一些appl.globalCache().clear()
方法,但到目前为止没有任何成功。)
填充的数据结构中的所有表都具有其属性" CacheLookup"设置为" NotInTTS"。
此外,使用工具时 - >缓存 - > WS AOS上的Refresh Elements菜单项,我们的Web服务立即返回正确的数据......
答案 0 :(得分:1)
当您使用NotInTTS
缓存表时,可以将数据检索放入事务中:
ttsbegin;
select ...
ttscommit;
return ...
如果这不起作用,您可能会认为它是内核错误,应该报告。
冲洗现金可能有效,但会破坏他们的目的。
答案 1 :(得分:0)
刷新表缓存
YoutTableName cachedBuffer;
flush YoutTableName;
替代方案,您可以致电Dictionary::dataFlush
Dictionary::dataFlush(tableNum(YourTableName));
或者你可以调用所有表格
SysFlushData::doFlush();
答案 2 :(得分:0)
您还可以尝试在记录缓冲区上disableCache