Prep for working with more schemas

This commit is contained in:
Jan Kvetina 2022-03-06 10:56:02 +01:00
parent 54fe17e49d
commit ffe5d958b6
6 changed files with 125 additions and 10 deletions

View File

@ -22,7 +22,7 @@ wwv_flow_api.create_page(
,p_page_template_options=>'#DEFAULT#'
,p_required_role=>wwv_flow_api.id(9556407311505078)
,p_last_updated_by=>'DEV'
,p_last_upd_yyyymmddhh24miss=>'20220226175854'
,p_last_upd_yyyymmddhh24miss=>'20220306064528'
);
wwv_flow_api.create_page_plug(
p_id=>wwv_flow_api.id(14218446056378932)
@ -312,9 +312,11 @@ wwv_flow_api.create_page_item(
,p_display_as=>'NATIVE_SELECT_LIST'
,p_lov=>wwv_flow_string.join(wwv_flow_t_varchar2(
'SELECT',
' app.get_owner(app.get_app_id()) AS schema,',
' app.get_owner(app.get_app_id()) AS schema_',
'FROM DUAL;',
' a.owner,',
' a.owner AS owner_',
'FROM apex_applications a',
'GROUP BY a.owner',
'ORDER BY 1;',
''))
,p_cHeight=>1
,p_colspan=>4
@ -324,9 +326,43 @@ wwv_flow_api.create_page_item(
,p_attribute_01=>'NONE'
,p_attribute_02=>'N'
);
wwv_flow_api.create_page_da_event(
p_id=>wwv_flow_api.id(32963742103841112)
,p_name=>'CHANGED_SCHEMA'
,p_event_sequence=>10
,p_triggering_element_type=>'ITEM'
,p_triggering_element=>'P950_SCHEMA'
,p_bind_type=>'bind'
,p_bind_event_type=>'change'
);
wwv_flow_api.create_page_da_action(
p_id=>wwv_flow_api.id(32963807659841113)
,p_event_id=>wwv_flow_api.id(32963742103841112)
,p_event_result=>'TRUE'
,p_action_sequence=>10
,p_execute_on_page_init=>'N'
,p_action=>'NATIVE_SUBMIT_PAGE'
,p_attribute_02=>'Y'
);
wwv_flow_api.create_page_process(
p_id=>wwv_flow_api.id(32963972351841114)
,p_process_sequence=>10
,p_process_point=>'AFTER_HEADER'
,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'SET_OWNER'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'--app.log_action(''SET_OWNER'', :P950_SCHEMA);',
'--',
'app.set_owner(:P950_SCHEMA);',
''))
,p_process_clob_language=>'PLSQL'
,p_error_display_location=>'INLINE_IN_NOTIFICATION'
,p_process_when=>'P950_SCHEMA'
,p_process_when_type=>'ITEM_IS_NOT_NULL'
);
wwv_flow_api.create_page_process(
p_id=>wwv_flow_api.id(14431206414036864)
,p_process_sequence=>10
,p_process_sequence=>20
,p_process_point=>'AFTER_HEADER'
,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'ACTION_RECOMPILE'
@ -345,7 +381,7 @@ wwv_flow_api.create_page_process(
);
wwv_flow_api.create_page_process(
p_id=>wwv_flow_api.id(14430832154036864)
,p_process_sequence=>20
,p_process_sequence=>30
,p_process_point=>'AFTER_HEADER'
,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'ACTION_RECOMPILE_FORCE'
@ -370,7 +406,7 @@ wwv_flow_api.create_page_process(
);
wwv_flow_api.create_page_process(
p_id=>wwv_flow_api.id(22086589223580633)
,p_process_sequence=>30
,p_process_sequence=>40
,p_process_point=>'AFTER_HEADER'
,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'INIT_DEFAULTS'
@ -381,7 +417,7 @@ wwv_flow_api.create_page_process(
'WHERE o.status != ''VALID'';',
'',
'-- help message',
':P950_SCHEMA := app.get_owner(app.get_app_id());',
':P950_SCHEMA := COALESCE(:P950_SCHEMA, app.get_owner(app.get_app_id()));',
''))
,p_process_clob_language=>'PLSQL'
,p_error_display_location=>'INLINE_IN_NOTIFICATION'

View File

@ -0,0 +1,22 @@
prompt --application/shared_components/logic/application_items/g_curr_owner
begin
-- Manifest
-- APPLICATION ITEM: G_CURR_OWNER
-- Manifest End
wwv_flow_api.component_begin (
p_version_yyyy_mm_dd=>'2021.04.15'
,p_release=>'21.1.7'
,p_default_workspace_id=>9014660246496943
,p_default_application_id=>770
,p_default_id_offset=>0
,p_default_owner=>'CORE'
);
wwv_flow_api.create_flow_item(
p_id=>wwv_flow_api.id(34702600776037948)
,p_name=>'G_CURR_OWNER'
,p_scope=>'GLOBAL'
,p_protection_level=>'I'
);
wwv_flow_api.component_end;
end;
/

View File

@ -17,6 +17,7 @@ prompt --install
@@application/shared_components/logic/application_processes/init_translations.sql
@@application/shared_components/logic/application_processes/init_globals.sql
@@application/shared_components/logic/application_processes/init_filters.sql
@@application/shared_components/logic/application_items/g_curr_owner.sql
@@application/shared_components/logic/application_items/g_footer.sql
@@application/shared_components/logic/application_items/g_today.sql
@@application/shared_components/logic/application_items/g_today_label.sql

View File

@ -31,6 +31,7 @@ CREATE OR REPLACE PACKAGE app AS
-- CORE application alias
core_alias CONSTANT VARCHAR2(30) := 'CORE'; -- better than hardcode app number
core_owner CONSTANT VARCHAR2(30) := 'CORE';
-- code for app exception
app_exception_code CONSTANT PLS_INTEGER := -20000;
@ -130,6 +131,14 @@ CREATE OR REPLACE PACKAGE app AS
--
-- Get CORE owner/schema
--
FUNCTION get_core_owner
RETURN apex_applications.owner%TYPE;
--
-- Return current schema owner (because APEX dont like using USER)
--
@ -141,6 +150,23 @@ CREATE OR REPLACE PACKAGE app AS
--
-- Get current owner/schema
--
FUNCTION get_owner
RETURN apex_applications.owner%TYPE;
--
-- Set current owner/schema
--
PROCEDURE set_owner (
in_owner apex_applications.owner%TYPE
);
--
-- Get home page (number) for selected/current application
--

View File

@ -61,6 +61,15 @@ CREATE OR REPLACE PACKAGE BODY app AS
FUNCTION get_core_owner
RETURN apex_applications.owner%TYPE
AS
BEGIN
RETURN app.core_owner;
END;
FUNCTION get_owner (
in_app_id apps.app_id%TYPE
)
@ -81,6 +90,26 @@ CREATE OR REPLACE PACKAGE BODY app AS
FUNCTION get_owner
RETURN apex_applications.owner%TYPE
AS
out_owner apex_applications.owner%TYPE;
BEGIN
RETURN COALESCE(app.get_item('G_CURR_OWNER'), app.get_owner(app.get_core_app_id()));
END;
PROCEDURE set_owner (
in_owner apex_applications.owner%TYPE
)
AS
BEGIN
app.set_item('G_CURR_OWNER', in_owner);
END;
FUNCTION get_app_homepage (
in_app_id apps.app_id%TYPE := NULL
)

View File

@ -4,7 +4,8 @@ SELECT
COUNT(*) AS count_objects,
--
app_actions.get_object_link(o.object_type) AS page_link
FROM user_objects o
WHERE o.object_type NOT IN ('PACKAGE BODY', 'TABLE PARTITION')
FROM all_objects o
WHERE o.owner = app.get_owner()
AND o.object_type NOT IN ('PACKAGE BODY', 'TABLE PARTITION')
GROUP BY o.object_type;