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

how to store current session state for next login of user in oracle apex?

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

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

I would like that when a user logs in, it is checked in which status he is in the process and on this basis it can be decided which process step should be displayed to him.

你会在哪里展示它?对我来说,看起来好像您要将 STATE 列添加到交互式报告或表单中,或者用户在登录时进入的任何地方以查看进程状态。

无论你选择哪个选项,最后都会是一个select这样或那样的语句,比如

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

我认为您可以使用 Apex 首选项 功能非常简单地完成您想要做的事情,您可以在其中将这些值保存为会话的一部分并在下一次检索它他们连接的时间。不需要您自己的数据库 table。我已经使用它很长时间了,它非常适合像这样简单的事情。

手册中的语法:

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;