Oracle ADF:刷新表单数据

时间:2015-04-08 01:39:24

标签: oracle-adf jdeveloper

我正在使用Oracle ADF开发一个Web应用程序。我有一个有限的任务流程。我有一个像下面这样的搜索页面。

enter image description here

我使用视图对象数据控件创建了上述两种形式。

搜索效果很好。但我的问题是,当我使用左侧提供的菜单进入我的应用程序中的其他位置并返回搜索页面时,页面无法刷新。我收到一个包含旧搜索结果的搜索页面。在这个时间点,如果我正在尝试进行任何更改,我会收到一些名为的错误,“此ID已经修改了数据的另一个用户......”。在此错误后,我的应用程序未运行。意味着它正试图表现出同样的错误。

所以我需要做到这一点:“当用户访问此表单时,他应该获得新的表单。它不应包含旧的搜索结果。

请帮帮我。我如何实现这一目标。

谢谢。

2 个答案:

答案 0 :(得分:0)

有两种方法:

1)将任务流设置为ISOLATED,从任务流概述选项卡 - >行为 - >与呼叫任务流共享数据控制 - >未经检查(或隔离,如果您使用的是JDev 12c)

这将确保您在访问页面时始终启动FRESH,但它可能会产生性能开销,因为在页面加载时将重新创建(重新获取)整个View Object缓存。然而,这是最快的解决方案。

2)您可以在任务流中创建默认的方法调用活动,您可以从中调用AM的自定义方法来重置视图条件。该方法将放在应用程序模块的实现类上,它可能如下所示:

public void initTaskFlow() {
   this.getViewObject1().executeEmptyRowSet();
}

这将清除结果数据。如果您还想重置查询参数,可以使用以下示例:

http://www.jobinesh.com/2011/04/programmatically-resetting-and-search.html

答案 1 :(得分:0)

当您对任何viewObject进行任何更改时,执行此viewObject以匹配实体状态和viewState,我认为执行viewObject将解决您的问题

与Ashish