From f062fd76eb9c76c51b3ac9f0d83e10f33516df01 Mon Sep 17 00:00:00 2001 From: Jan Kvetina Date: Tue, 25 Jan 2022 22:46:49 +0100 Subject: [PATCH] Get home page number --- packages/app.spec.sql | 10 ++++++++++ packages/app.sql | 27 +++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/packages/app.spec.sql b/packages/app.spec.sql index fb17aad..1a7fb37 100644 --- a/packages/app.spec.sql +++ b/packages/app.spec.sql @@ -128,6 +128,16 @@ CREATE OR REPLACE PACKAGE app AS + -- + -- Get home page (number) for selected/current application + -- + FUNCTION get_app_homepage ( + in_app_id apps.app_id%TYPE := NULL + ) + RETURN NUMBER; + + + -- -- Returns current user id (APEX, SYS_CONTEXT, DB...) -- diff --git a/packages/app.sql b/packages/app.sql index f44e080..817be33 100644 --- a/packages/app.sql +++ b/packages/app.sql @@ -53,6 +53,33 @@ CREATE OR REPLACE PACKAGE BODY app AS + FUNCTION get_app_homepage ( + in_app_id apps.app_id%TYPE := NULL + ) + RETURN NUMBER + AS + v_app_id apps.app_id%TYPE := COALESCE(in_app_id, app.get_app_id()); + out_page_id navigation.page_id%TYPE; + BEGIN + SELECT TO_NUMBER(REGEXP_SUBSTR(a.home_link, ':(\d+):&' || 'SESSION\.', 1, 1, NULL, 1)) + INTO out_page_id + FROM apex_applications a + WHERE a.application_id = v_app_id; + -- + IF out_page_id IS NULL THEN + SELECT p.page_id INTO out_page_id + FROM apex_applications a + JOIN apex_application_pages p + ON p.application_id = a.application_id + AND p.page_alias = REGEXP_SUBSTR(a.home_link, ':([^:]+):&' || 'SESSION\.', 1, 1, NULL, 1) + WHERE a.application_id = v_app_id; + END IF; + -- + RETURN out_page_id; + END; + + + FUNCTION get_user_id RETURN users.user_id%TYPE AS