Added action flag [A] and log_action for calls from APEX

This commit is contained in:
Jan Kvetina 2021-12-31 19:42:06 +01:00
parent 1d39fc5478
commit fecd7b47d3
13 changed files with 232 additions and 99 deletions

View File

@ -139,7 +139,7 @@ wwv_flow_api.create_region_column(
,p_use_group_for=>'BOTH' ,p_use_group_for=>'BOTH'
,p_attribute_02=>'VALUE' ,p_attribute_02=>'VALUE'
,p_attribute_05=>'PLAIN' ,p_attribute_05=>'PLAIN'
,p_link_target=>'f?p=&APP_ID.:901:&SESSION.::&DEBUG.:901:G_TODAY,P901_FLAG:&TODAY.,A' ,p_link_target=>'f?p=&APP_ID.:901:&SESSION.::&DEBUG.:901:G_TODAY,P901_FLAG:&TODAY.,P'
,p_link_text=>'&COUNT_REQUESTS.' ,p_link_text=>'&COUNT_REQUESTS.'
,p_enable_filter=>true ,p_enable_filter=>true
,p_filter_is_required=>false ,p_filter_is_required=>false
@ -801,6 +801,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'PURGE_OLD' ,p_process_name=>'PURGE_OLD'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''PURGE_OLD'');',
'--',
'app.purge_logs();', 'app.purge_logs();',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
@ -815,6 +817,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'PURGE_DAY' ,p_process_name=>'PURGE_DAY'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''PURGE_DAY'');',
'--',
'app.purge_logs(app.get_date(:P900_DELETE));', 'app.purge_logs(app.get_date(:P900_DELETE));',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
@ -829,7 +833,7 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'SHRINK' ,p_process_name=>'SHRINK'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_module(''SHRINK'');', 'app.log_action(''SHRINK'');',
'--', '--',
'EXECUTE IMMEDIATE ''ALTER TABLE #OWNER#.logs ENABLE ROW MOVEMENT'';', 'EXECUTE IMMEDIATE ''ALTER TABLE #OWNER#.logs ENABLE ROW MOVEMENT'';',
'EXECUTE IMMEDIATE ''ALTER TABLE #OWNER#.logs SHRINK SPACE'';', 'EXECUTE IMMEDIATE ''ALTER TABLE #OWNER#.logs SHRINK SPACE'';',
@ -844,8 +848,6 @@ wwv_flow_api.create_page_process(
'--', '--',
'DBMS_STATS.GATHER_TABLE_STATS(''#OWNER#'', ''SESSIONS'');', 'DBMS_STATS.GATHER_TABLE_STATS(''#OWNER#'', ''SESSIONS'');',
'EXECUTE IMMEDIATE ''ANALYZE TABLE #OWNER#.sessions COMPUTE STATISTICS FOR TABLE'';', 'EXECUTE IMMEDIATE ''ANALYZE TABLE #OWNER#.sessions COMPUTE STATISTICS FOR TABLE'';',
'--',
'app.log_success();',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
,p_error_display_location=>'INLINE_IN_NOTIFICATION' ,p_error_display_location=>'INLINE_IN_NOTIFICATION'

View File

@ -2533,22 +2533,15 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'INIT_DEFAULTS' ,p_process_name=>'INIT_DEFAULTS'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''INIT_DEFAULTS'');',
'--',
'IF :P901_LOG_ID IS NOT NULL THEN', 'IF :P901_LOG_ID IS NOT NULL THEN',
' app.set_log_tree_id(app.get_log_root(:P901_LOG_ID));', ' app.set_log_tree_id(app.get_log_root(:P901_LOG_ID));',
'END IF;', 'END IF;',
'--', '--',
':P901_IS_TODAY := CASE WHEN NVL(app.get_date_item(''G_TODAY''), TRUNC(SYSDATE)) = TRUNC(SYSDATE) THEN ''Y'' END;', ':P901_IS_TODAY := CASE WHEN NVL(app.get_date_item(''G_TODAY''), TRUNC(SYSDATE)) = TRUNC(SYSDATE) THEN ''Y'' END;',
'')) '',
,p_process_clob_language=>'PLSQL' '-- init recent log',
,p_error_display_location=>'INLINE_IN_NOTIFICATION'
);
wwv_flow_api.create_page_process(
p_id=>wwv_flow_api.id(10582068084928847)
,p_process_sequence=>20
,p_process_point=>'BEFORE_HEADER'
,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'INIT_RECENT_LOG_ID'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'IF :P901_IS_TODAY IS NULL THEN', 'IF :P901_IS_TODAY IS NULL THEN',
' :P901_CURR_LOG_ID := NULL;', ' :P901_CURR_LOG_ID := NULL;',
' :P901_RECENT_LOG_ID := NULL;', ' :P901_RECENT_LOG_ID := NULL;',
@ -2564,7 +2557,7 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'GET_ACTION_NAME' ,p_process_name=>'GET_ACTION_NAME'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_module(''GET_ACTION_NAME'', APEX_APPLICATION.G_X01);', 'app.log_action(''GET_ACTION_NAME'', APEX_APPLICATION.G_X01);',
'--', '--',
'FOR c IN (', 'FOR c IN (',
' SELECT l.action_name AS line', ' SELECT l.action_name AS line',
@ -2584,7 +2577,7 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'GET_ARGUMENTS' ,p_process_name=>'GET_ARGUMENTS'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_module(''GET_ARGUMENTS'', APEX_APPLICATION.G_X01);', 'app.log_action(''GET_ARGUMENTS'', APEX_APPLICATION.G_X01);',
'--', '--',
'DECLARE', 'DECLARE',
' out_line logs.arguments%TYPE;', ' out_line logs.arguments%TYPE;',
@ -2614,7 +2607,7 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'GET_PAYLOAD' ,p_process_name=>'GET_PAYLOAD'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_module(''GET_PAYLOAD'', APEX_APPLICATION.G_X01);', 'app.log_action(''GET_PAYLOAD'', APEX_APPLICATION.G_X01);',
'--', '--',
'FOR c IN (', 'FOR c IN (',
' SELECT l.payload AS line', ' SELECT l.payload AS line',

View File

@ -1975,11 +1975,9 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'ACTION_START' ,p_process_name=>'ACTION_START'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_module(''JOB_START'', app.get_item(''$JOB_NAME''));', 'app.log_action(''JOB_START'', app.get_item(''$JOB_NAME''));',
'--', '--',
'DBMS_SCHEDULER.RUN_JOB(''#OWNER#.'' || app.get_item(''$JOB_NAME''));', 'DBMS_SCHEDULER.RUN_JOB(''#OWNER#.'' || app.get_item(''$JOB_NAME''));',
'--',
'app.log_success();',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
,p_error_display_location=>'INLINE_IN_NOTIFICATION' ,p_error_display_location=>'INLINE_IN_NOTIFICATION'
@ -1994,11 +1992,9 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'ACTION_STOP' ,p_process_name=>'ACTION_STOP'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_module(''JOB_STOP'', app.get_item(''$JOB_NAME''));', 'app.log_action(''JOB_STOP'', app.get_item(''$JOB_NAME''));',
'--', '--',
'DBMS_SCHEDULER.STOP_JOB(''#OWNER#.'' || app.get_item(''$JOB_NAME''));', 'DBMS_SCHEDULER.STOP_JOB(''#OWNER#.'' || app.get_item(''$JOB_NAME''));',
'--',
'app.log_success();',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
,p_error_display_location=>'INLINE_IN_NOTIFICATION' ,p_error_display_location=>'INLINE_IN_NOTIFICATION'
@ -2013,11 +2009,9 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'ACTION_ENABLE' ,p_process_name=>'ACTION_ENABLE'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_module(''JOB_ENABLE'', app.get_item(''$JOB_NAME''));', 'app.log_action(''JOB_ENABLE'', app.get_item(''$JOB_NAME''));',
'--', '--',
'DBMS_SCHEDULER.ENABLE(''#OWNER#.'' || app.get_item(''$JOB_NAME''));', 'DBMS_SCHEDULER.ENABLE(''#OWNER#.'' || app.get_item(''$JOB_NAME''));',
'--',
'app.log_success();',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
,p_error_display_location=>'INLINE_IN_NOTIFICATION' ,p_error_display_location=>'INLINE_IN_NOTIFICATION'
@ -2032,11 +2026,9 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'ACTION_DISABLE' ,p_process_name=>'ACTION_DISABLE'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_module(''JOB_DISABLE'', app.get_item(''$JOB_NAME''));', 'app.log_action(''JOB_DISABLE'', app.get_item(''$JOB_NAME''));',
'--', '--',
'DBMS_SCHEDULER.DISABLE(''#OWNER#.'' || app.get_item(''$JOB_NAME''));', 'DBMS_SCHEDULER.DISABLE(''#OWNER#.'' || app.get_item(''$JOB_NAME''));',
'--',
'app.log_success();',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
,p_error_display_location=>'INLINE_IN_NOTIFICATION' ,p_error_display_location=>'INLINE_IN_NOTIFICATION'
@ -2051,6 +2043,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'GET_DETAILS' ,p_process_name=>'GET_DETAILS'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''GET_DETAILS'', app.get_item(''$JOB_NAME''));',
'--',
'FOR c IN (', 'FOR c IN (',
' SELECT j.*', ' SELECT j.*',
' FROM user_scheduler_jobs j', ' FROM user_scheduler_jobs j',
@ -2074,7 +2068,7 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'GET_OUTPUT' ,p_process_name=>'GET_OUTPUT'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_module(''GET_OUTPUT'', APEX_APPLICATION.G_X01);', 'app.log_action(''GET_OUTPUT'', APEX_APPLICATION.G_X01);',
'--', '--',
'FOR c IN (', 'FOR c IN (',
' SELECT REPLACE(d.output, CHR(10), ''<br>'') AS line', ' SELECT REPLACE(d.output, CHR(10), ''<br>'') AS line',
@ -2094,7 +2088,7 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'GET_ADDITIONAL_INFO' ,p_process_name=>'GET_ADDITIONAL_INFO'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_module(''GET_ADDITIONAL_INFO'', APEX_APPLICATION.G_X01);', 'app.log_action(''GET_ADDITIONAL_INFO'', APEX_APPLICATION.G_X01);',
'--', '--',
'FOR c IN (', 'FOR c IN (',
' SELECT REPLACE(d.additional_info, CHR(10), ''<br>'') AS line', ' SELECT REPLACE(d.additional_info, CHR(10), ''<br>'') AS line',

View File

@ -817,6 +817,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'AUTO_UPDATE' ,p_process_name=>'AUTO_UPDATE'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''AUTO_UPDATE'');',
'--',
'app_actions.nav_autoupdate();', 'app_actions.nav_autoupdate();',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
@ -830,6 +832,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'ADD_PAGE' ,p_process_name=>'ADD_PAGE'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''ADD_PAGE'');',
'--',
'app_actions.nav_add_pages(:P910_ADD_PAGE);', 'app_actions.nav_add_pages(:P910_ADD_PAGE);',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
@ -844,6 +848,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'REMOVE_PAGE' ,p_process_name=>'REMOVE_PAGE'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''REMOVE_PAGE'');',
'--',
'app_actions.nav_remove_pages(:P910_REMOVE_PAGE);', 'app_actions.nav_remove_pages(:P910_REMOVE_PAGE);',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
@ -858,6 +864,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'ADD_FILTER' ,p_process_name=>'ADD_FILTER'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''ADD_FILTER'');',
'--',
'DECLARE', 'DECLARE',
' in_static_id CONSTANT VARCHAR2(30) := ''NAVIGATION'';', ' in_static_id CONSTANT VARCHAR2(30) := ''NAVIGATION'';',
' in_column_name CONSTANT VARCHAR2(30) := ''AUTH_SCHEME'';', ' in_column_name CONSTANT VARCHAR2(30) := ''AUTH_SCHEME'';',

View File

@ -166,7 +166,7 @@ wwv_flow_api.create_region_column(
,p_value_alignment=>'RIGHT' ,p_value_alignment=>'RIGHT'
,p_attribute_03=>'right' ,p_attribute_03=>'right'
,p_is_required=>false ,p_is_required=>false
,p_link_target=>'f?p=&APP_ID.:901:&SESSION.::&DEBUG.:901:P901_FLAG,P901_SESSION_ID:A,&SESSION_ID.' ,p_link_target=>'f?p=&APP_ID.:901:&SESSION.::&DEBUG.:901:P901_FLAG,P901_SESSION_ID:P,&SESSION_ID.'
,p_link_text=>'&COUNT_REQUESTS.' ,p_link_text=>'&COUNT_REQUESTS.'
,p_enable_filter=>true ,p_enable_filter=>true
,p_filter_is_required=>false ,p_filter_is_required=>false
@ -763,6 +763,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'DELETE_SESSION' ,p_process_name=>'DELETE_SESSION'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''DELETE_SESSION'', app.get_item(''$DELETE''));',
'--',
'app.delete_session (', 'app.delete_session (',
' in_session_id => app.get_item(''$DELETE'')', ' in_session_id => app.get_item(''$DELETE'')',
');', ');',

View File

@ -108,7 +108,7 @@ wwv_flow_api.create_region_column(
,p_enable_sort_group=>true ,p_enable_sort_group=>true
,p_enable_control_break=>true ,p_enable_control_break=>true
,p_enable_hide=>true ,p_enable_hide=>true
,p_is_primary_key=>true ,p_is_primary_key=>false
,p_duplicate_value=>true ,p_duplicate_value=>true
,p_include_in_export=>true ,p_include_in_export=>true
); );
@ -383,9 +383,9 @@ wwv_flow_api.create_region_column(
); );
wwv_flow_api.create_region_column( wwv_flow_api.create_region_column(
p_id=>wwv_flow_api.id(9716748710455620) p_id=>wwv_flow_api.id(9716748710455620)
,p_name=>'COUNT_PAGES' ,p_name=>'COUNT_REQUESTS'
,p_source_type=>'DB_COLUMN' ,p_source_type=>'DB_COLUMN'
,p_source_expression=>'COUNT_PAGES' ,p_source_expression=>'COUNT_REQUESTS'
,p_data_type=>'NUMBER' ,p_data_type=>'NUMBER'
,p_is_query_only=>true ,p_is_query_only=>true
,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_item_type=>'NATIVE_DISPLAY_ONLY'
@ -395,8 +395,8 @@ wwv_flow_api.create_region_column(
,p_value_alignment=>'RIGHT' ,p_value_alignment=>'RIGHT'
,p_attribute_02=>'VALUE' ,p_attribute_02=>'VALUE'
,p_attribute_05=>'PLAIN' ,p_attribute_05=>'PLAIN'
,p_link_target=>'f?p=&APP_ID.:901:&SESSION.::&DEBUG.:901:P901_USER_ID,P901_FLAG:&USER_ID.,A' ,p_link_target=>'f?p=&APP_ID.:901:&SESSION.::&DEBUG.:901:P901_USER_ID,P901_FLAG:&USER_ID.,P'
,p_link_text=>'&COUNT_PAGES.' ,p_link_text=>'&COUNT_REQUESTS.'
,p_enable_filter=>true ,p_enable_filter=>true
,p_filter_is_required=>false ,p_filter_is_required=>false
,p_filter_lov_type=>'NONE' ,p_filter_lov_type=>'NONE'
@ -413,7 +413,7 @@ wwv_flow_api.create_region_column(
,p_source_type=>'DB_COLUMN' ,p_source_type=>'DB_COLUMN'
,p_source_expression=>'COUNT_ERRORS' ,p_source_expression=>'COUNT_ERRORS'
,p_data_type=>'NUMBER' ,p_data_type=>'NUMBER'
,p_is_query_only=>false ,p_is_query_only=>true
,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_item_type=>'NATIVE_DISPLAY_ONLY'
,p_heading=>'Errors' ,p_heading=>'Errors'
,p_heading_alignment=>'RIGHT' ,p_heading_alignment=>'RIGHT'
@ -431,7 +431,6 @@ wwv_flow_api.create_region_column(
,p_enable_control_break=>true ,p_enable_control_break=>true
,p_enable_hide=>true ,p_enable_hide=>true
,p_is_primary_key=>false ,p_is_primary_key=>false
,p_duplicate_value=>true
,p_include_in_export=>true ,p_include_in_export=>true
); );
wwv_flow_api.create_region_column( wwv_flow_api.create_region_column(
@ -440,7 +439,7 @@ wwv_flow_api.create_region_column(
,p_source_type=>'DB_COLUMN' ,p_source_type=>'DB_COLUMN'
,p_source_expression=>'COUNT_EVENTS' ,p_source_expression=>'COUNT_EVENTS'
,p_data_type=>'NUMBER' ,p_data_type=>'NUMBER'
,p_is_query_only=>false ,p_is_query_only=>true
,p_item_type=>'NATIVE_DISPLAY_ONLY' ,p_item_type=>'NATIVE_DISPLAY_ONLY'
,p_heading=>'Events' ,p_heading=>'Events'
,p_heading_alignment=>'RIGHT' ,p_heading_alignment=>'RIGHT'
@ -458,7 +457,6 @@ wwv_flow_api.create_region_column(
,p_enable_control_break=>true ,p_enable_control_break=>true
,p_enable_hide=>true ,p_enable_hide=>true
,p_is_primary_key=>false ,p_is_primary_key=>false
,p_duplicate_value=>true
,p_include_in_export=>true ,p_include_in_export=>true
); );
wwv_flow_api.create_interactive_grid( wwv_flow_api.create_interactive_grid(
@ -544,7 +542,7 @@ wwv_flow_api.create_ig_report_column(
,p_view_id=>wwv_flow_api.id(9619064172238094) ,p_view_id=>wwv_flow_api.id(9619064172238094)
,p_display_seq=>4 ,p_display_seq=>4
,p_column_id=>wwv_flow_api.id(9611623062237502) ,p_column_id=>wwv_flow_api.id(9611623062237502)
,p_is_visible=>true ,p_is_visible=>false
,p_is_frozen=>false ,p_is_frozen=>false
,p_width=>90 ,p_width=>90
); );
@ -1108,18 +1106,6 @@ wwv_flow_api.create_region_column(
,p_duplicate_value=>true ,p_duplicate_value=>true
,p_include_in_export=>true ,p_include_in_export=>true
); );
wwv_flow_api.component_end;
end;
/
begin
wwv_flow_api.component_begin (
p_version_yyyy_mm_dd=>'2021.04.15'
,p_release=>'21.1.6'
,p_default_workspace_id=>9014660246496943
,p_default_application_id=>770
,p_default_id_offset=>0
,p_default_owner=>'CORE'
);
wwv_flow_api.create_region_column( wwv_flow_api.create_region_column(
p_id=>wwv_flow_api.id(9964521125802044) p_id=>wwv_flow_api.id(9964521125802044)
,p_name=>'COUNT_REGIONS' ,p_name=>'COUNT_REGIONS'
@ -1147,6 +1133,18 @@ wwv_flow_api.create_region_column(
,p_duplicate_value=>true ,p_duplicate_value=>true
,p_include_in_export=>true ,p_include_in_export=>true
); );
wwv_flow_api.component_end;
end;
/
begin
wwv_flow_api.component_begin (
p_version_yyyy_mm_dd=>'2021.04.15'
,p_release=>'21.1.6'
,p_default_workspace_id=>9014660246496943
,p_default_application_id=>770
,p_default_id_offset=>0
,p_default_owner=>'CORE'
);
wwv_flow_api.create_region_column( wwv_flow_api.create_region_column(
p_id=>wwv_flow_api.id(9964641560802045) p_id=>wwv_flow_api.id(9964641560802045)
,p_name=>'COUNT_USERS' ,p_name=>'COUNT_USERS'
@ -2260,18 +2258,6 @@ wwv_flow_api.create_region_column(
,p_display_condition_type=>'ITEM_IS_NOT_NULL' ,p_display_condition_type=>'ITEM_IS_NOT_NULL'
,p_display_condition=>'P920_C023' ,p_display_condition=>'P920_C023'
); );
wwv_flow_api.component_end;
end;
/
begin
wwv_flow_api.component_begin (
p_version_yyyy_mm_dd=>'2021.04.15'
,p_release=>'21.1.6'
,p_default_workspace_id=>9014660246496943
,p_default_application_id=>770
,p_default_id_offset=>0
,p_default_owner=>'CORE'
);
wwv_flow_api.create_region_column( wwv_flow_api.create_region_column(
p_id=>wwv_flow_api.id(9960933072802008) p_id=>wwv_flow_api.id(9960933072802008)
,p_name=>'C024' ,p_name=>'C024'
@ -2301,6 +2287,18 @@ wwv_flow_api.create_region_column(
,p_display_condition_type=>'ITEM_IS_NOT_NULL' ,p_display_condition_type=>'ITEM_IS_NOT_NULL'
,p_display_condition=>'P920_C024' ,p_display_condition=>'P920_C024'
); );
wwv_flow_api.component_end;
end;
/
begin
wwv_flow_api.component_begin (
p_version_yyyy_mm_dd=>'2021.04.15'
,p_release=>'21.1.6'
,p_default_workspace_id=>9014660246496943
,p_default_application_id=>770
,p_default_id_offset=>0
,p_default_owner=>'CORE'
);
wwv_flow_api.create_region_column( wwv_flow_api.create_region_column(
p_id=>wwv_flow_api.id(9961056128802009) p_id=>wwv_flow_api.id(9961056128802009)
,p_name=>'C025' ,p_name=>'C025'
@ -3403,18 +3401,6 @@ wwv_flow_api.create_ig_report_column(
,p_is_visible=>true ,p_is_visible=>true
,p_is_frozen=>false ,p_is_frozen=>false
); );
wwv_flow_api.component_end;
end;
/
begin
wwv_flow_api.component_begin (
p_version_yyyy_mm_dd=>'2021.04.15'
,p_release=>'21.1.6'
,p_default_workspace_id=>9014660246496943
,p_default_application_id=>770
,p_default_id_offset=>0
,p_default_owner=>'CORE'
);
wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column(
p_id=>wwv_flow_api.id(9997910113802546) p_id=>wwv_flow_api.id(9997910113802546)
,p_view_id=>wwv_flow_api.id(9966073400802454) ,p_view_id=>wwv_flow_api.id(9966073400802454)
@ -3439,6 +3425,18 @@ wwv_flow_api.create_ig_report_column(
,p_is_visible=>true ,p_is_visible=>true
,p_is_frozen=>false ,p_is_frozen=>false
); );
wwv_flow_api.component_end;
end;
/
begin
wwv_flow_api.component_begin (
p_version_yyyy_mm_dd=>'2021.04.15'
,p_release=>'21.1.6'
,p_default_workspace_id=>9014660246496943
,p_default_application_id=>770
,p_default_id_offset=>0
,p_default_owner=>'CORE'
);
wwv_flow_api.create_ig_report_column( wwv_flow_api.create_ig_report_column(
p_id=>wwv_flow_api.id(10000620875802553) p_id=>wwv_flow_api.id(10000620875802553)
,p_view_id=>wwv_flow_api.id(9966073400802454) ,p_view_id=>wwv_flow_api.id(9966073400802454)
@ -4476,7 +4474,7 @@ wwv_flow_api.create_page_button(
); );
wwv_flow_api.create_page_button( wwv_flow_api.create_page_button(
p_id=>wwv_flow_api.id(10889432584121603) p_id=>wwv_flow_api.id(10889432584121603)
,p_button_sequence=>40 ,p_button_sequence=>10
,p_button_plug_id=>wwv_flow_api.id(9563395243581646) ,p_button_plug_id=>wwv_flow_api.id(9563395243581646)
,p_button_name=>'REFRESH_USERS' ,p_button_name=>'REFRESH_USERS'
,p_button_action=>'REDIRECT_PAGE' ,p_button_action=>'REDIRECT_PAGE'
@ -4487,6 +4485,19 @@ wwv_flow_api.create_page_button(
,p_button_redirect_url=>'f?p=&APP_ID.:920:&SESSION.::&DEBUG.:920::' ,p_button_redirect_url=>'f?p=&APP_ID.:920:&SESSION.::&DEBUG.:920::'
,p_icon_css_classes=>'fa-refresh' ,p_icon_css_classes=>'fa-refresh'
); );
wwv_flow_api.create_page_button(
p_id=>wwv_flow_api.id(12336182905960930)
,p_button_sequence=>10
,p_button_plug_id=>wwv_flow_api.id(9612428039237510)
,p_button_name=>'REFRESH_SCHEMES'
,p_button_action=>'REDIRECT_PAGE'
,p_button_template_options=>'#DEFAULT#'
,p_button_template_id=>wwv_flow_api.id(9144574670569995)
,p_button_image_alt=>'Refresh'
,p_button_position=>'RIGHT_OF_TITLE'
,p_button_redirect_url=>'f?p=&APP_ID.:920:&SESSION.::&DEBUG.:920::'
,p_icon_css_classes=>'fa-refresh'
);
wwv_flow_api.create_page_item( wwv_flow_api.create_page_item(
p_id=>wwv_flow_api.id(9614865711237534) p_id=>wwv_flow_api.id(9614865711237534)
,p_name=>'P920_AUTH_SCHEME' ,p_name=>'P920_AUTH_SCHEME'
@ -5772,6 +5783,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'PREP_USER_ROLES_PIVOT' ,p_process_name=>'PREP_USER_ROLES_PIVOT'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''PREP_USER_ROLES_PIVOT'');',
'--',
'app_actions.prep_user_roles_pivot(:APP_PAGE_ID);', 'app_actions.prep_user_roles_pivot(:APP_PAGE_ID);',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
@ -5800,6 +5813,8 @@ wwv_flow_api.create_page_process(
,p_process_name=>'SAVE_USER_ROLES' ,p_process_name=>'SAVE_USER_ROLES'
,p_attribute_01=>'PLSQL_CODE' ,p_attribute_01=>'PLSQL_CODE'
,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''SAVE_USER_ROLES'');',
'--',
'app_actions.save_user_roles (', 'app_actions.save_user_roles (',
' in_action => :APEX$ROW_STATUS,', ' in_action => :APEX$ROW_STATUS,',
' in_c001 => :C001,', ' in_c001 => :C001,',

View File

@ -4437,6 +4437,8 @@ wwv_flow_api.create_page_process(
,p_process_name=>'SAVE_SETTINGS' ,p_process_name=>'SAVE_SETTINGS'
,p_attribute_01=>'PLSQL_CODE' ,p_attribute_01=>'PLSQL_CODE'
,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''SAVE_SETTINGS'');',
'--',
'app_actions.set_setting (', 'app_actions.set_setting (',
' in_action => :APEX$ROW_STATUS,', ' in_action => :APEX$ROW_STATUS,',
' in_setting_name => :SETTING_NAME,', ' in_setting_name => :SETTING_NAME,',
@ -4455,6 +4457,18 @@ wwv_flow_api.create_page_process(
,p_attribute_06=>'N' ,p_attribute_06=>'N'
,p_error_display_location=>'INLINE_IN_NOTIFICATION' ,p_error_display_location=>'INLINE_IN_NOTIFICATION'
); );
wwv_flow_api.component_end;
end;
/
begin
wwv_flow_api.component_begin (
p_version_yyyy_mm_dd=>'2021.04.15'
,p_release=>'21.1.6'
,p_default_workspace_id=>9014660246496943
,p_default_application_id=>770
,p_default_id_offset=>0
,p_default_owner=>'CORE'
);
wwv_flow_api.create_page_process( wwv_flow_api.create_page_process(
p_id=>wwv_flow_api.id(12114467667376343) p_id=>wwv_flow_api.id(12114467667376343)
,p_process_sequence=>20 ,p_process_sequence=>20
@ -4464,6 +4478,8 @@ wwv_flow_api.create_page_process(
,p_process_name=>'SAVE_CONTEXT_VALUES' ,p_process_name=>'SAVE_CONTEXT_VALUES'
,p_attribute_01=>'PLSQL_CODE' ,p_attribute_01=>'PLSQL_CODE'
,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_attribute_04=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''SAVE_CONTEXT_VALUES'');',
'--',
'app_actions.set_setting_bulk (', 'app_actions.set_setting_bulk (',
' in_c001 => :C001,', ' in_c001 => :C001,',
' in_c002 => :C002,', ' in_c002 => :C002,',
@ -4521,18 +4537,6 @@ wwv_flow_api.create_page_process(
,p_attribute_06=>'N' ,p_attribute_06=>'N'
,p_error_display_location=>'INLINE_IN_NOTIFICATION' ,p_error_display_location=>'INLINE_IN_NOTIFICATION'
); );
wwv_flow_api.component_end;
end;
/
begin
wwv_flow_api.component_begin (
p_version_yyyy_mm_dd=>'2021.04.15'
,p_release=>'21.1.6'
,p_default_workspace_id=>9014660246496943
,p_default_application_id=>770
,p_default_id_offset=>0
,p_default_owner=>'CORE'
);
wwv_flow_api.create_page_process( wwv_flow_api.create_page_process(
p_id=>wwv_flow_api.id(12111866180376317) p_id=>wwv_flow_api.id(12111866180376317)
,p_process_sequence=>30 ,p_process_sequence=>30
@ -4554,6 +4558,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'REBUILD_PACKAGE' ,p_process_name=>'REBUILD_PACKAGE'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''REBUILD_PACKAGE'');',
'--',
'app_actions.rebuild_settings();', 'app_actions.rebuild_settings();',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
@ -4567,7 +4573,11 @@ wwv_flow_api.create_page_process(
,p_process_point=>'BEFORE_HEADER' ,p_process_point=>'BEFORE_HEADER'
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'INIT_DEFAULTS' ,p_process_name=>'INIT_DEFAULTS'
,p_process_sql_clob=>':P970_REBUILD_TITLE := ''Rebuild '' || UPPER(app_actions.in_settings_package) || '' package with '' || UPPER(app_actions.in_settings_prefix) || ''* functions'';' ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''INIT_DEFAULTS'');',
'--',
':P970_REBUILD_TITLE := ''Rebuild '' || UPPER(app_actions.in_settings_package) || '' package with '' || UPPER(app_actions.in_settings_prefix) || ''* functions'';',
''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'
,p_error_display_location=>'INLINE_IN_NOTIFICATION' ,p_error_display_location=>'INLINE_IN_NOTIFICATION'
); );
@ -4578,6 +4588,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'PREP_SETTINGS_PIVOT' ,p_process_name=>'PREP_SETTINGS_PIVOT'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''PREP_SETTINGS_PIVOT'');',
'--',
'app_actions.prep_settings_pivot(:APP_PAGE_ID);', 'app_actions.prep_settings_pivot(:APP_PAGE_ID);',
'')) ''))
,p_process_clob_language=>'PLSQL' ,p_process_clob_language=>'PLSQL'

View File

@ -286,6 +286,8 @@ wwv_flow_api.create_page_process(
,p_process_type=>'NATIVE_PLSQL' ,p_process_type=>'NATIVE_PLSQL'
,p_process_name=>'INIT_FORM' ,p_process_name=>'INIT_FORM'
,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( ,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2(
'app.log_action(''INIT_FORM'');',
'--',
'/*', '/*',
'FOR c IN (', 'FOR c IN (',
' SELECT u.*, ROWID AS rid', ' SELECT u.*, ROWID AS rid',

View File

@ -46,8 +46,9 @@ CREATE OR REPLACE PACKAGE app AS
anonymous_user CONSTANT VARCHAR2(30) := 'NOBODY'; -- ORDS_PUBLIC_USER, APEX_APP.G_PUBLIC anonymous_user CONSTANT VARCHAR2(30) := 'NOBODY'; -- ORDS_PUBLIC_USER, APEX_APP.G_PUBLIC
-- flags -- flags
flag_request CONSTANT logs.flag%TYPE := 'A'; -- APEX request (page rendering, form processing) flag_request CONSTANT logs.flag%TYPE := 'P'; -- APEX request (page rendering, form processing)
flag_module CONSTANT logs.flag%TYPE := 'M'; -- start of any module (procedure/function) flag_module CONSTANT logs.flag%TYPE := 'M'; -- start of any module (procedure/function)
flag_action CONSTANT logs.flag%TYPE := 'A'; -- start of any APEX action
flag_debug CONSTANT logs.flag%TYPE := 'D'; -- debug flag_debug CONSTANT logs.flag%TYPE := 'D'; -- debug
flag_result CONSTANT logs.flag%TYPE := 'R'; -- result of procedure for debugging purposes flag_result CONSTANT logs.flag%TYPE := 'R'; -- result of procedure for debugging purposes
flag_warning CONSTANT logs.flag%TYPE := 'W'; -- warning flag_warning CONSTANT logs.flag%TYPE := 'W'; -- warning
@ -676,6 +677,49 @@ CREATE OR REPLACE PACKAGE app AS
--
-- Same as log_module but with action_name, designated for APEX calls
--
FUNCTION log_action (
in_action_name logs.action_name%TYPE,
--
in_arg1 logs.arguments%TYPE := NULL,
in_arg2 logs.arguments%TYPE := NULL,
in_arg3 logs.arguments%TYPE := NULL,
in_arg4 logs.arguments%TYPE := NULL,
in_arg5 logs.arguments%TYPE := NULL,
in_arg6 logs.arguments%TYPE := NULL,
in_arg7 logs.arguments%TYPE := NULL,
in_arg8 logs.arguments%TYPE := NULL,
--
in_parent_id logs.log_parent%TYPE := NULL,
in_payload logs.payload%TYPE := NULL
)
RETURN logs.log_id%TYPE;
--
-- ^
--
PROCEDURE log_action (
in_action_name logs.action_name%TYPE,
--
in_arg1 logs.arguments%TYPE := NULL,
in_arg2 logs.arguments%TYPE := NULL,
in_arg3 logs.arguments%TYPE := NULL,
in_arg4 logs.arguments%TYPE := NULL,
in_arg5 logs.arguments%TYPE := NULL,
in_arg6 logs.arguments%TYPE := NULL,
in_arg7 logs.arguments%TYPE := NULL,
in_arg8 logs.arguments%TYPE := NULL,
--
in_parent_id logs.log_parent%TYPE := NULL,
in_payload logs.payload%TYPE := NULL
);
-- --
-- Store record in log with `D` flag -- Store record in log with `D` flag
-- --

View File

@ -1349,8 +1349,69 @@ CREATE OR REPLACE PACKAGE BODY app AS
BEGIN BEGIN
curr_id := app.log__ ( curr_id := app.log__ (
in_flag => app.flag_module, in_flag => app.flag_module,
FUNCTION log_action (
in_action_name logs.action_name%TYPE,
--
in_arg1 logs.arguments%TYPE := NULL,
in_arg2 logs.arguments%TYPE := NULL,
in_arg3 logs.arguments%TYPE := NULL,
in_arg4 logs.arguments%TYPE := NULL,
in_arg5 logs.arguments%TYPE := NULL,
in_arg6 logs.arguments%TYPE := NULL,
in_arg7 logs.arguments%TYPE := NULL,
in_arg8 logs.arguments%TYPE := NULL,
--
in_parent_id logs.log_parent%TYPE := NULL,
in_payload logs.payload%TYPE := NULL
)
RETURN logs.log_id%TYPE
AS
BEGIN
RETURN app.log__ (
in_flag => app.flag_action,
in_action_name => in_action_name, in_action_name => in_action_name,
in_arguments => in_args in_arguments => app.get_json_list (
in_arg1, in_arg2,
in_arg3, in_arg4,
in_arg5, in_arg6,
in_arg7, in_arg8
),
in_payload => in_payload,
in_parent_id => in_parent_id
);
END;
PROCEDURE log_action (
in_action_name logs.action_name%TYPE,
--
in_arg1 logs.arguments%TYPE := NULL,
in_arg2 logs.arguments%TYPE := NULL,
in_arg3 logs.arguments%TYPE := NULL,
in_arg4 logs.arguments%TYPE := NULL,
in_arg5 logs.arguments%TYPE := NULL,
in_arg6 logs.arguments%TYPE := NULL,
in_arg7 logs.arguments%TYPE := NULL,
in_arg8 logs.arguments%TYPE := NULL,
--
in_parent_id logs.log_parent%TYPE := NULL,
in_payload logs.payload%TYPE := NULL
)
AS
curr_id logs.log_id%TYPE;
BEGIN
curr_id := app.log__ (
in_flag => app.flag_action,
in_action_name => in_action_name,
in_arguments => app.get_json_list (
in_arg1, in_arg2,
in_arg3, in_arg4,
in_arg5, in_arg6,
in_arg7, in_arg8
),
in_payload => in_payload,
in_parent_id => in_parent_id
); );
END; END;

View File

@ -27,7 +27,7 @@ e AS (
l AS ( l AS (
SELECT SELECT
TRUNC(l.created_at) AS today, TRUNC(l.created_at) AS today,
NULLIF(SUM(CASE WHEN l.flag = 'A' THEN 1 ELSE 0 END), 0) AS count_requests, NULLIF(SUM(CASE WHEN l.flag = 'P' THEN 1 ELSE 0 END), 0) AS count_requests, -- must match APP specification
NULLIF(SUM(CASE WHEN l.flag = 'M' THEN 1 ELSE 0 END), 0) AS count_modules, NULLIF(SUM(CASE WHEN l.flag = 'M' THEN 1 ELSE 0 END), 0) AS count_modules,
NULLIF(SUM(CASE WHEN l.flag = 'D' THEN 1 ELSE 0 END), 0) AS count_debugs, NULLIF(SUM(CASE WHEN l.flag = 'D' THEN 1 ELSE 0 END), 0) AS count_debugs,
NULLIF(SUM(CASE WHEN l.flag = 'R' THEN 1 ELSE 0 END), 0) AS count_results, NULLIF(SUM(CASE WHEN l.flag = 'R' THEN 1 ELSE 0 END), 0) AS count_results,

View File

@ -15,7 +15,7 @@ l AS (
SELECT SELECT
l.session_id, l.session_id,
COUNT(*) AS count_logs, COUNT(*) AS count_logs,
NULLIF(SUM(CASE WHEN l.flag = 'A' THEN 1 ELSE 0 END), 0) AS count_requests, NULLIF(SUM(CASE WHEN l.flag = 'P' THEN 1 ELSE 0 END), 0) AS count_requests,
NULLIF(SUM(CASE WHEN l.flag = 'E' THEN 1 ELSE 0 END), 0) AS count_errors NULLIF(SUM(CASE WHEN l.flag = 'E' THEN 1 ELSE 0 END), 0) AS count_errors
FROM logs l FROM logs l
JOIN s JOIN s

View File

@ -23,7 +23,7 @@ s AS (
l AS ( l AS (
SELECT SELECT
l.user_id, l.user_id,
SUM(CASE WHEN l.flag = 'A' THEN 1 ELSE 0 END) AS count_pages, SUM(CASE WHEN l.flag = 'P' THEN 1 ELSE 0 END) AS count_requests,
COUNT(*) AS count_logs, COUNT(*) AS count_logs,
NULLIF(SUM(CASE WHEN l.flag = 'E' THEN 1 ELSE 0 END), 0) AS count_errors NULLIF(SUM(CASE WHEN l.flag = 'E' THEN 1 ELSE 0 END), 0) AS count_errors
FROM logs l FROM logs l
@ -66,7 +66,7 @@ SELECT
END AS is_dev, END AS is_dev,
-- --
s.count_sessions, s.count_sessions,
l.count_pages, l.count_requests,
l.count_logs, l.count_logs,
l.count_errors, l.count_errors,
b.count_events, b.count_events,