如何在页面提交之后和刷新之前运行进程

时间:2018-03-23 10:32:36

标签: oracle oracle-apex oracle-apex-5.1

我在Oracle Apex(v5.1)中遇到了一个问题。

我有一个对话框页面,可以在单击图标时从父页面打开。在关闭对话框页面时,我的父页面将在事件' Dialog Closed' 以及在处理提交父页面时运行的进程,该页面似乎无法正常工作。 在那个过程中,我有一些APEX_ITEMS,其值是在提交父页面时设置的。有没有办法让这个过程运行?

额外说明:我有一个交互式报告,从表格中提取“Temp'”报告在某些列中有链接。 当用户点击链接时,他被重定向到模态页面(同时将应用程序变量设置为' APP_VAR'为零),用户可以在那里修改一些数据。 在用户点击“提交”的模态页面中按钮进程运行并更新临时表并设置' APP_VAR'的值。到' 1' 然后刷新页面。在同一模态页面上,有一个动态操作写在' Page Load'服务器端条件为' APP_VAR' =' 1', 此动态操作将使用“关闭对话框”关闭模态页面。动作。

现在,当在父页面上关闭模态页面时,会有一个动态操作写在' Dialog Closed'提交父页面的事件。 此外,还有一个流程'更新家长'在APP_VAR'的条件下=' 1'它会更新“临时”状态。包含父页面中所有值的表(作为用户 可以更改报告中的某些值。)并将APP_VAR设置为0。

所有这一切都是为了保持临时表更新来自两个页面的值。 但是当模态页面关闭时,父页面会在“更新父级”之前刷新。进程已完成,导致父页面中所做的任何更改丢失。

如何运行'更新家长'在页面重新加载之前?请记住,在更新家长之前'运行需要提交的报告数据 到会话状态以获取更新的数据。

1 个答案:

答案 0 :(得分:1)

案例1

为什么不将“更新父级”流程与提交页面的动态操作结合在一起?在这个动态动作中你需要两个真正的动作。

  • 第一个将执行其PL / SQL“更新父级”。
  • 第二个会提交页面

案例2

或者如果你想在一个过程中保留“更新父”,只需在页面提交中调用它(如果需要将其绑定到一个按钮),按正确的执行顺序(通过设置序列号)。在提交页面的动态操作中,定义此提交的按钮名称(如有必要)。

示例案例2:

关闭页面后,我需要执行3个进程。所以,我将这3个进程链接到一个按钮,如果有必要,我把服务器的条件。

提交后:

10 - Process 1 (when I click the x button)
20 - Process 2 (when I click the x button)
30 - Process 3 (when I click the x button)

所以我需要在动态操作中定义提交页面与此提交相关联的按钮的名称(填写“请求/按钮名称”字段)。

*隐藏此按钮。