Rem drv: Rem Rem $Header: esm_core_reports.sql 20-jun-2006.04:46:14 niramach Exp $ Rem Rem esm_core_reports.sql Rem Rem Copyright (c) 2005, 2006, Oracle. All rights reserved. Rem Rem NAME Rem esm_core_reports.sql - Rem Rem DESCRIPTION Rem Rem Rem NOTES Rem Rem Rem MODIFIED (MM/DD/YY) Rem niramach 06/17/06 - Fix for bug 5331253 Rem dsukhwal 11/18/05 - handle timezones Rem dsukhwal 09/02/05 - fix timeSeriesChart Rem gsbhatia 07/23/05 - Fix repmgr header Rem gsbhatia 07/03/05 - New repmgr header impl Rem lgloyd 06/24/05 - normalize category strings Rem dsukhwal 06/22/05 - add instruction text Rem dsukhwal 05/27/05 - using builtin elements, bug 4359156 Rem dkjain 03/31/05 - Fix for elements appeared on the ADD page Rem dsukhwal 02/01/05 - dsukhwal_reports2 Rem dsukhwal 01/24/05 - Created Rem DECLARE l_target_types MGMT_IP_TARGET_TYPES; l_param_classes MGMT_IP_PARAM_CLASSES; l_param_values MGMT_IP_PARAM_VALUE_LIST; l_targets MGMT_IP_TARGET_LIST; l_report_guid RAW(16); l_element_guid RAW(16); l_curr_order NUMBER; l_curr_row NUMBER; BEGIN l_curr_order := 1; l_curr_row := 1; ----------------Violation Flux Start---------------------------------------- -- late binding for any target type l_target_types := MGMT_IP_TARGET_TYPES(); l_target_types.extend(1); l_target_types(1) := 'any_type'; -- this report has a time period and the user can customize it l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(3); l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TimePeriodOption', 'true'); l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TimePeriodUserCust', 'true'); l_param_values(3) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TimePeriodParam', '0:0'); --Delete earlier version of OOB system report BEGIN mgmt_ip.delete_report_by_title(mgmt_user.get_repository_owner, 'TIMED_VIOLATION_FLUX_NLSID', 1, 0); EXCEPTION WHEN OTHERS THEN NULL; END; l_report_guid := mgmt_ip.create_report_definition ( p_title_nlsid => 'TIMED_VIOLATION_FLUX_NLSID', p_description_nlsid => 'TIMED_VIOLATION_FLUX_DESC_NLSID', p_owner => mgmt_user.get_repository_owner, p_category_nlsid => 'IPMSG_SECURITY_CATEGORY', p_sub_category_nlsid => 'Security_Policy_NLSID', p_late_binding_target_types => null,--l_target_types, p_late_binding_multi_targets => 0, p_show_table_of_contents => 0, p_system_report => 1, p_parameters => l_param_values ); --instruction text begin-------------------------------- l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(3); --The text to be displayed l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TextParamBean.textMessage', 'VIOL_FLUX_INSTR_TEXT'); --The resource bundle containing the text l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TextParamBean.textResourceBundleName', 'oracle.sysman.resources.eml.esa.EsaMsg'); --Specifies the style class l_param_values(3) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TextParamBean.textStyleClass', 'OraInstructionText'); --Adding instruction text to the created report definition and passing the above parameters l_element_guid := mgmt_ip.add_element_to_report_def ( p_report_guid => l_report_guid, p_element_name_nlsid => 'IPMSG_STYLED_TEXT', p_element_type_nlsid => 'IPMSG_ANY_TARGET_TYPE', p_element_order => l_curr_order, p_element_row => l_curr_row, p_parameters => l_param_values, p_targets => null); l_curr_order := l_curr_order + 1; l_curr_row := l_curr_row + 1; --instruction text end-------------------------------- l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(8); l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.sqlStatementIsPlSql', 'true'); l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.sqlStatement', 'BEGIN DECLARE rep_tz VARCHAR2(200); user_tz_in VARCHAR2(200); TYPE CURSOR_TYPE IS REF CURSOR; result_cursor_out CURSOR_TYPE; start_date_in DATE DEFAULT NULL; end_date_in DATE DEFAULT NULL; query_string VARCHAR(6000); BEGIN result_cursor_out := ??EMIP_BIND_RESULTS_CURSOR??; start_date_in := ??EMIP_BIND_START_DATE??; end_date_in := ??EMIP_BIND_END_DATE??; user_tz_in := ??EMIP_BIND_TIMEZONE_REGION??; select TIMEZONE_REGION into rep_tz from mgmt$target where TARGET_TYPE = ''oracle_emrep''; query_string := ''WITH dates AS (SELECT mgmt_view_util.adjust_tz(:1,:2,:3) as start_date, mgmt_view_util.adjust_tz(:4,:5,:6) as end_date from dual) SELECT label, time, sum(violations) --) as violations FROM( ( SELECT ''''''||''NEW_LBL''||'''''' as label, mgmt_view_util.adjust_tz(rollup_timestamp, :7, :8) as time, average as violations --new violations FROM MGMT$METRIC_HOURLY WHERE key_value in (''''18'''',''''20'''',''''25'''') AND ROLLUP_TIMESTAMP > (SELECT start_date FROM dates) AND ROLLUP_TIMESTAMP < (SELECT end_date FROM dates) AND target_type = ''''oracle_emrep'''' AND metric_name = ''''TARGET_SECURITY_NEW_VIOLATIONS'''' AND metric_column = ''''NEW_VIOLATIONS'''' ) UNION ( SELECT ''''''||''FIXED_LBL''||'''''' as label, mgmt_view_util.adjust_tz(rollup_timestamp,:9,:10) as time, average as violations --cleared violations FROM MGMT$METRIC_HOURLY WHERE key_value in (''''18'''',''''20'''',''''25'''') AND ROLLUP_TIMESTAMP > (SELECT start_date FROM dates) AND ROLLUP_TIMESTAMP < (SELECT end_date FROM dates) AND target_type = ''''oracle_emrep'''' AND metric_name = ''''TARGET_SECURITY_CLEARED_VIOLATIONS'''' AND metric_column = ''''CLEARED_VIOLATIONS'''' ) ) GROUP BY time, label ORDER BY time ASC''; OPEN result_cursor_out for query_string using start_date_in, user_tz_in, rep_tz, end_date_in, user_tz_in, rep_tz, user_tz_in, rep_tz, user_tz_in, rep_tz; END; END;'); l_param_values(3) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.width', '400'); l_param_values(4) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.height', '200'); l_param_values(5) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.chartType', 'timeSeriesChart'); l_param_values(6) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.fill', 'cumulative'); l_param_values(7) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.translateKeyValues', 'true'); l_param_values(8) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.resourceBundle', 'oracle.sysman.resources.eml.esa.EsaMsg'); l_element_guid := mgmt_ip.add_element_to_report_def ( p_report_guid => l_report_guid, p_element_name_nlsid => 'IPMSG_USER_CHART_FROM_SQL', p_element_type_nlsid => 'IPMSG_ANY_TARGET_TYPE', p_header_nlsid => null, p_element_order => l_curr_order, p_element_row => l_curr_row, p_parameters => l_param_values, p_targets => null ); ----------------Violation Flux End---------------------------------------- ----------------Security Compliance Start---------------------------------------- l_curr_order := 1; l_curr_row := 1; -- late binding for any target type l_target_types := MGMT_IP_TARGET_TYPES(); l_target_types.extend(1); l_target_types(1) := 'any_type'; -- this report has a time period and the user can customize it l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(3); l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TimePeriodOption', 'true'); l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TimePeriodUserCust', 'true'); l_param_values(3) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TimePeriodParam', '0:0'); --Delete earlier version of OOB system report BEGIN mgmt_ip.delete_report_by_title(mgmt_user.get_repository_owner, 'TIMED_SECURITY_COMPLIANCE_NLSID', 1, 0); EXCEPTION WHEN OTHERS THEN NULL; END; l_report_guid := mgmt_ip.create_report_definition ( p_title_nlsid => 'TIMED_SECURITY_COMPLIANCE_NLSID', p_description_nlsid => 'TIMED_SECURITY_COMPLIANCE_DESC_NLSID', p_owner => mgmt_user.get_repository_owner, p_category_nlsid => 'IPMSG_SECURITY_CATEGORY', p_sub_category_nlsid => 'Security_Policy_NLSID', p_late_binding_target_types => null,--l_target_types, p_late_binding_multi_targets => 0, p_show_table_of_contents => 0, p_system_report => 1, p_parameters => l_param_values ); --instruction text begin-------------------------------- l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(3); --The text to be displayed l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TextParamBean.textMessage', 'SEC_COMPL_INSTR_TEXT'); --The resource bundle containing the text l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TextParamBean.textResourceBundleName', 'oracle.sysman.resources.eml.esa.EsaMsg'); --Specifies the style class l_param_values(3) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.TextParamBean.textStyleClass', 'OraInstructionText'); --Adding instruction text to the created report definition and passing the above parameters l_element_guid := mgmt_ip.add_element_to_report_def ( p_report_guid => l_report_guid, p_element_name_nlsid => 'IPMSG_STYLED_TEXT', p_element_type_nlsid => 'IPMSG_ANY_TARGET_TYPE', p_element_order => l_curr_order, p_element_row => l_curr_row, p_parameters => l_param_values, p_targets => null); l_curr_order := l_curr_order + 1; l_curr_row := l_curr_row + 1; --instruction text end-------------------------------- l_curr_order := l_curr_order + 1; l_curr_row := l_curr_row + 1; l_param_values := MGMT_IP_PARAM_VALUE_LIST(); l_param_values.extend(7); l_param_values(1) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.sqlStatementIsPlSql', 'true'); l_param_values(2) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.sqlStatement', 'BEGIN DECLARE rep_tz VARCHAR2(200); user_tz_in VARCHAR2(200); TYPE CURSOR_TYPE IS REF CURSOR; result_cursor_out CURSOR_TYPE; start_date_in DATE DEFAULT NULL; end_date_in DATE DEFAULT NULL; query_string VARCHAR(6000); BEGIN result_cursor_out := ??EMIP_BIND_RESULTS_CURSOR??; start_date_in := ??EMIP_BIND_START_DATE??; end_date_in := ??EMIP_BIND_END_DATE??; user_tz_in := ??EMIP_BIND_TIMEZONE_REGION??; select TIMEZONE_REGION into rep_tz from mgmt$target where TARGET_TYPE = ''oracle_emrep''; query_string := ''SELECT ''''COMPL_SCORE_GRAPH_LABEL'''' as COLUMN_LABEL, mgmt_view_util.adjust_tz(rollup_timestamp, :1, :2) as ROLLUP_TIMESTAMP, round(avg(average)) as AVERAGE FROM MGMT$METRIC_HOURLY WHERE key_value in (''''18'''',''''20'''',''''25'''') AND ROLLUP_TIMESTAMP > mgmt_view_util.adjust_tz(:3,:4,:5) AND ROLLUP_TIMESTAMP < mgmt_view_util.adjust_tz(:6,:7,:8) AND target_type = ''''oracle_emrep'''' AND metric_name = ''''TARGET_SECURITY_COMPLIANCE'''' AND metric_column = ''''COMPLIANCE_SCORE'''' GROUP BY rollup_timestamp ORDER BY rollup_timestamp asc''; OPEN result_cursor_out for query_string using user_tz_in, rep_tz, start_date_in, user_tz_in, rep_tz, end_date_in, user_tz_in, rep_tz; END; END;'); l_param_values(3) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.width', '400'); l_param_values(4) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.height', '200'); l_param_values(5) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.chartType', 'timeSeriesChart'); l_param_values(6) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.resourceBundle', 'oracle.sysman.resources.eml.esa.EsaMsg'); l_param_values(7) := MGMT_IP_PARAM_VALUE_RECORD( 'oracle.sysman.eml.ip.render.elem.ChartParamController.translateKeyValues', 'true'); l_element_guid := mgmt_ip.add_element_to_report_def ( p_report_guid => l_report_guid, p_element_name_nlsid => 'IPMSG_USER_CHART_FROM_SQL', p_element_type_nlsid => 'IPMSG_ANY_TARGET_TYPE', p_header_nlsid => null, p_element_order => l_curr_order, p_element_row => l_curr_row, p_parameters => l_param_values, p_targets => null ); ----------------Security Compliance End---------------------------------------- END; / COMMIT;