如何在 oracle apex 中为用户下次登录存储当前会话状态?

问题描述

我想记录当前执行的流程步骤的流程。 这意味着当用户下次登录时,他可以看到进程的当前状态。 为此,我在表中有一个名为 STATE 的列(在此过程中由所有参与者编辑)。当表被编辑或删除时,触发器总是将其设置为不同的状态(如 REQUESTED、ACCEPTED、DENIED....)。 现在我希望当用户登录时,检查他在流程中的状态,并在此基础上决定应该向他显示哪个流程步骤。

所以我的问题是,如何才能达到这个目标?我如何与州合作? 我不是在这里要求任何代码,只是一个提示,如果可能的话,最好是一些关键字,这样我就可以搜索正确的东西来实现它。

解决方法

我希望当用户登录时,会检查他在流程中的状态,并在此基础上决定应该向他显示哪个流程步骤。。 >

你会在哪里展示它?在我看来,您好像要将 STATE 列添加到交互式报告、表单或用户登录时访问的任何位置以查看进程状态。

无论您选择哪个选项,最后都会是一种或多种 select 语句,例如

  • 在交互式报告的查询中,
  • 项目的来源,
  • 也许是一个接受例如的存储函数进程 ID 并返回其状态),
  • 可能是在应用程序计算或进程中填充其值的应用程序项,
,

我认为您可以通过使用 Apex Preference 功能来完成您想要做的事情,您可以在其中将这些值保存为会话的一部分,并在下次连接时检索它。不需要您自己的数据库表。我已经使用它很多年了,它非常适合像这样的简单事情。

手册中的语法:

APEX_UTIL.SET_PREFERENCE (
    p_preference IN VARCHAR2 DEFAULT NULL,p_value IN VARCHAR2 DEFAULT NULL,p_user IN VARCHAR2 DEFAULT NULL);

APEX_UTIL.GET_PREFERENCE (
    p_preference IN VARCHAR2 DEFAULT NULL,p_user IN VARCHAR2 DEFAULT V('USER'))
    RETURN VARCHAR2;

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...