Oracle APEX 中的缓存区域通过动态操作进行更新

问题描述 投票:0回答:1

我尝试为某个区域启用缓存(交互式报告)。每当 3 个页面项中的任何一个更新时,该区域都会更新 - 这些页面项用于驱动底层 SQL 中的过滤器。这些具有动态操作的项目是:

P1_REGION
P1_STATUS
P1_PRODUCT

动态操作只是将新值发送回会话状态并刷新区域。

报告需求仅由 SQL 驱动:

select * 
from T_CASES
where region = :P1_REGION and status =:P1_STATUS and product = :P1_PRODUCT

我已将报表区域上的缓存设置为“按会话”,超时时间为 30 分钟,并将这 3 个页面项添加为缓存的依赖项。

但是每当我更改其中一个页面项目时,报告就会被清除。

如何在区域上启用缓存,该区域是通过 SQL 驱动的报表上的动态操作(使用页面项绑定变量)进行更新的?

oracle-apex oracle-database
1个回答
0
投票

这里要检查的一件事是刷新报告后会话状态中的值。如果 P1_REGION、P2_STATUS 和 P1_PRODUCT 在更改时未发送到服务器,则报告查询会将它们视为 null 并给出空结果。

在报表的 SQL 源下面查找“要提交的页面项目”属性,并确保这三个项目位于其中。

© www.soinside.com 2019 - 2024. All rights reserved.