diff --git a/packages/app.spec.sql b/packages/app.spec.sql index 2c9ea5b..26ec0de 100644 --- a/packages/app.spec.sql +++ b/packages/app.spec.sql @@ -73,8 +73,6 @@ CREATE OR REPLACE PACKAGE app AS -- transform $NAME to P500_NAME if current page_id = 500 page_item_wild CONSTANT VARCHAR2(4) := '$'; page_item_prefix CONSTANT VARCHAR2(4) := 'P'; - -- - ------------------------item_request_id CONSTANT VARCHAR2(30) := 'G_REQUEST_ID'; -- name of AUTH package auth_package CONSTANT VARCHAR2(30) := 'AUTH'; @@ -1166,6 +1164,16 @@ CREATE OR REPLACE PACKAGE app AS + -- + -- Remove some not interesting calls from call/error stacks + -- + FUNCTION get_shorter_stack ( + in_stack VARCHAR2 + ) + RETURN VARCHAR2; + + + -- -- Finds and returns root `log_id` for passed `log_id` -- diff --git a/packages/app.sql b/packages/app.sql index 1184000..67cd319 100644 --- a/packages/app.sql +++ b/packages/app.sql @@ -2120,12 +2120,12 @@ CREATE OR REPLACE PACKAGE BODY app AS -- add call stack IF (SQLCODE != 0 OR INSTR(app.track_callstack, rec.flag) > 0) THEN - rec.payload := SUBSTR(rec.payload || REPLACE(REPLACE(app.get_call_stack(), 'WWV_FLOW', '%'), app.schema_apex, '%'), 1, app.length_payload); + rec.payload := SUBSTR(rec.payload || app.get_shorter_stack(app.get_call_stack()), 1, app.length_payload); END IF; -- add error stack IF SQLCODE != 0 THEN - rec.payload := SUBSTR(rec.payload || REPLACE(REPLACE(app.get_error_stack(), 'WWV_FLOW', '%'), app.schema_apex, '%'), 1, app.length_payload); + rec.payload := SUBSTR(rec.payload || app.get_shorter_stack(app.get_error_stack()), 1, app.length_payload); END IF; -- print message to console @@ -2268,11 +2268,11 @@ CREATE OR REPLACE PACKAGE BODY app AS in_action_name => v_action_name, in_arg1 => v_component, in_arg2 => APEX_ERROR.GET_FIRST_ORA_ERROR_TEXT(p_error => p_error), - in_payload => REPLACE ( - out_result.message || CHR(10) || '--' || CHR(10) || - p_error.error_statement || CHR(10) || '--' || CHR(10) || - --p_error.error_backtrace || CHR(10) || '--' || CHR(10) - p_error.ora_sqlerrm || CHR(10) || '--' || CHR(10), app.schema_apex, '%') + in_payload => + out_result.message || CHR(10) || '--' || CHR(10) || + app.get_shorter_stack(p_error.error_statement) || CHR(10) || '--' || CHR(10) || + app.get_shorter_stack (p_error.ora_sqlerrm) || CHR(10) || '--' || CHR(10) + --app.get_shorter_stack (p_error.error_backtrace) || CHR(10) || '--' || CHR(10) ); -- mark associated page item (when possible) @@ -2517,6 +2517,27 @@ CREATE OR REPLACE PACKAGE BODY app AS + FUNCTION get_shorter_stack ( + in_stack VARCHAR2 + ) + RETURN VARCHAR2 + AS + out_stack VARCHAR2(32767); + BEGIN + out_stack := REPLACE(REPLACE(in_stack, 'WWV_FLOW', '%'), app.schema_apex, '%'); + -- + out_stack := REGEXP_REPLACE(out_stack, '\s.*SQL.*\.EXEC.*\]', '.'); + out_stack := REGEXP_REPLACE(out_stack, '\s%.*EXEC.*\]', '.'); + out_stack := REGEXP_REPLACE(out_stack, '\s%_PROCESS.*\]', '.'); + out_stack := REGEXP_REPLACE(out_stack, '\s%_ERROR.*\]', '.'); + out_stack := REGEXP_REPLACE(out_stack, '\s%_SECURITY.*\]', '.'); + out_stack := REGEXP_REPLACE(out_stack, '\sHTMLDB*\]', '.'); + -- + RETURN out_stack; + END; + + + FUNCTION get_log_root ( in_log_id logs.log_id%TYPE := NULL ) diff --git a/views/users_apps.sql b/views/users_apps.sql index 6346b4a..f7ecead 100644 --- a/views/users_apps.sql +++ b/views/users_apps.sql @@ -5,6 +5,7 @@ WITH p AS ( a.alias AS app_alias, a.application_group AS app_group, a.owner AS app_schema, + a.application_name AS app_name, a.authentication_scheme, a.last_updated_on, a.pages AS count_pages, @@ -16,7 +17,7 @@ WITH p AS ( ) SELECT a.app_id, - a.app_name, + NVL(p.app_name, a.app_name) AS app_name, p.app_alias, p.app_group, p.app_schema,