From 5d0e03d7ad0dad8b7520ad493608948f0f40cfab Mon Sep 17 00:00:00 2001 From: Grzegorz Michalski Date: Thu, 19 Mar 2026 11:13:09 +0100 Subject: [PATCH] feat(MARS-1409): Add DATA_EXPORTER package installation and rollback scripts --- .../10_MARS_1409_verify_installation.sql | 29 ++++++++++++++++++- ...409_install_CT_MRDS_DATA_EXPORTER_SPEC.sql | 18 ++++++++++++ ...409_install_CT_MRDS_DATA_EXPORTER_BODY.sql | 18 ++++++++++++ ...09_rollback_CT_MRDS_DATA_EXPORTER_SPEC.sql | 18 ++++++++++++ ...09_rollback_CT_MRDS_DATA_EXPORTER_BODY.sql | 18 ++++++++++++ .../90_MARS_1409_verify_rollback.sql | 8 +++-- .../REL02_POST/MARS-1409/install_mars1409.sql | 22 ++++++++++---- .../MARS-1409/rollback_mars1409.sql | 24 +++++++++++---- .../MARS-1409/track_package_versions.sql | 21 ++++++++++++++ .../MARS-1409/verify_packages_version.sql | 16 ++++++++-- 10 files changed, 175 insertions(+), 17 deletions(-) create mode 100644 MARS_Packages/REL02_POST/MARS-1409/11_MARS_1409_install_CT_MRDS_DATA_EXPORTER_SPEC.sql create mode 100644 MARS_Packages/REL02_POST/MARS-1409/12_MARS_1409_install_CT_MRDS_DATA_EXPORTER_BODY.sql create mode 100644 MARS_Packages/REL02_POST/MARS-1409/83_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_SPEC.sql create mode 100644 MARS_Packages/REL02_POST/MARS-1409/84_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_BODY.sql diff --git a/MARS_Packages/REL02_POST/MARS-1409/10_MARS_1409_verify_installation.sql b/MARS_Packages/REL02_POST/MARS-1409/10_MARS_1409_verify_installation.sql index 127f632..c798b9b 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/10_MARS_1409_verify_installation.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/10_MARS_1409_verify_installation.sql @@ -93,6 +93,31 @@ WHERE owner = 'CT_MRDS' AND name = 'FILE_ARCHIVER' ORDER BY type, line, position; +-- Check DATA_EXPORTER compilation status +PROMPT +PROMPT 5C. Checking DATA_EXPORTER package compilation... +SELECT + object_name, + object_type, + status, + last_ddl_time +FROM all_objects +WHERE owner = 'CT_MRDS' + AND object_name = 'DATA_EXPORTER' + AND object_type IN ('PACKAGE', 'PACKAGE BODY') +ORDER BY object_type; + +SELECT + name, + type, + line, + position, + text +FROM all_errors +WHERE owner = 'CT_MRDS' + AND name = 'DATA_EXPORTER' +ORDER BY type, line, position; + -- Check trigger status PROMPT PROMPT 5B. Checking A_WORKFLOW_HISTORY trigger... @@ -112,7 +137,9 @@ SELECT 'FILE_MANAGER' AS PACKAGE_NAME, CT_MRDS.FILE_MANAGER.GET_VERSION() AS V UNION ALL SELECT 'ENV_MANAGER' AS PACKAGE_NAME, CT_MRDS.ENV_MANAGER.GET_VERSION() AS VERSION FROM DUAL UNION ALL -SELECT 'FILE_ARCHIVER' AS PACKAGE_NAME, CT_MRDS.FILE_ARCHIVER.GET_VERSION() AS VERSION FROM DUAL; +SELECT 'FILE_ARCHIVER' AS PACKAGE_NAME, CT_MRDS.FILE_ARCHIVER.GET_VERSION() AS VERSION FROM DUAL +UNION ALL +SELECT 'DATA_EXPORTER' AS PACKAGE_NAME, CT_MRDS.DATA_EXPORTER.GET_VERSION() AS VERSION FROM DUAL; PROMPT PROMPT ============================================================================ diff --git a/MARS_Packages/REL02_POST/MARS-1409/11_MARS_1409_install_CT_MRDS_DATA_EXPORTER_SPEC.sql b/MARS_Packages/REL02_POST/MARS-1409/11_MARS_1409_install_CT_MRDS_DATA_EXPORTER_SPEC.sql new file mode 100644 index 0000000..0a39979 --- /dev/null +++ b/MARS_Packages/REL02_POST/MARS-1409/11_MARS_1409_install_CT_MRDS_DATA_EXPORTER_SPEC.sql @@ -0,0 +1,18 @@ +-- ============================================================================ +-- MARS-1409 Step 11: Install DATA_EXPORTER Package Specification +-- ============================================================================ +-- Script: 11_MARS_1409_install_CT_MRDS_DATA_EXPORTER_SPEC.sql +-- Description: Install DATA_EXPORTER package specification (new version) +-- Author: Grzegorz Michalski +-- Date: 2026-02-27 +-- ============================================================================ + +PROMPT ============================================================================ +PROMPT Installing DATA_EXPORTER package specification... +PROMPT ============================================================================ + +@@new_version/DATA_EXPORTER.pkg + +PROMPT DATA_EXPORTER specification installed + +/ diff --git a/MARS_Packages/REL02_POST/MARS-1409/12_MARS_1409_install_CT_MRDS_DATA_EXPORTER_BODY.sql b/MARS_Packages/REL02_POST/MARS-1409/12_MARS_1409_install_CT_MRDS_DATA_EXPORTER_BODY.sql new file mode 100644 index 0000000..8e8075f --- /dev/null +++ b/MARS_Packages/REL02_POST/MARS-1409/12_MARS_1409_install_CT_MRDS_DATA_EXPORTER_BODY.sql @@ -0,0 +1,18 @@ +-- ============================================================================ +-- MARS-1409 Step 12: Install DATA_EXPORTER Package Body +-- ============================================================================ +-- Script: 12_MARS_1409_install_CT_MRDS_DATA_EXPORTER_BODY.sql +-- Description: Install DATA_EXPORTER package body (new version) +-- Author: Grzegorz Michalski +-- Date: 2026-02-27 +-- ============================================================================ + +PROMPT ============================================================================ +PROMPT Installing DATA_EXPORTER package body... +PROMPT ============================================================================ + +@@new_version/DATA_EXPORTER.pkb + +PROMPT DATA_EXPORTER body installed + +/ diff --git a/MARS_Packages/REL02_POST/MARS-1409/83_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_SPEC.sql b/MARS_Packages/REL02_POST/MARS-1409/83_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_SPEC.sql new file mode 100644 index 0000000..6c90430 --- /dev/null +++ b/MARS_Packages/REL02_POST/MARS-1409/83_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_SPEC.sql @@ -0,0 +1,18 @@ +-- ============================================================================ +-- MARS-1409 Rollback Script +-- ============================================================================ +-- Script: 83_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_SPEC.sql +-- Description: Restore DATA_EXPORTER package specification (previous version) +-- Author: Grzegorz Michalski +-- Date: 2026-02-27 +-- ============================================================================ + +PROMPT ============================================================================ +PROMPT Restoring DATA_EXPORTER package specification... +PROMPT ============================================================================ + +@@rollback_version/DATA_EXPORTER.pkg + +PROMPT DATA_EXPORTER specification restored + +/ diff --git a/MARS_Packages/REL02_POST/MARS-1409/84_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_BODY.sql b/MARS_Packages/REL02_POST/MARS-1409/84_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_BODY.sql new file mode 100644 index 0000000..04fe5bb --- /dev/null +++ b/MARS_Packages/REL02_POST/MARS-1409/84_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_BODY.sql @@ -0,0 +1,18 @@ +-- ============================================================================ +-- MARS-1409 Rollback Script +-- ============================================================================ +-- Script: 84_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_BODY.sql +-- Description: Restore DATA_EXPORTER package body (previous version) +-- Author: Grzegorz Michalski +-- Date: 2026-02-27 +-- ============================================================================ + +PROMPT ============================================================================ +PROMPT Restoring DATA_EXPORTER package body... +PROMPT ============================================================================ + +@@rollback_version/DATA_EXPORTER.pkb + +PROMPT DATA_EXPORTER body restored + +/ diff --git a/MARS_Packages/REL02_POST/MARS-1409/90_MARS_1409_verify_rollback.sql b/MARS_Packages/REL02_POST/MARS-1409/90_MARS_1409_verify_rollback.sql index 4d3769f..6627a06 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/90_MARS_1409_verify_rollback.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/90_MARS_1409_verify_rollback.sql @@ -60,7 +60,7 @@ SELECT last_ddl_time FROM all_objects WHERE owner = 'CT_MRDS' - AND object_name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER') + AND object_name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER', 'DATA_EXPORTER') AND object_type IN ('PACKAGE', 'PACKAGE BODY') ORDER BY object_name, object_type; @@ -70,7 +70,7 @@ PROMPT 3. Checking for compilation errors... SELECT name, type, line, position, text FROM all_errors WHERE owner = 'CT_MRDS' - AND name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER') + AND name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER', 'DATA_EXPORTER') ORDER BY name, type, line, position; -- Verify package versions @@ -80,7 +80,9 @@ SELECT 'FILE_MANAGER' AS PACKAGE_NAME, CT_MRDS.FILE_MANAGER.GET_VERSION() AS V UNION ALL SELECT 'ENV_MANAGER' AS PACKAGE_NAME, CT_MRDS.ENV_MANAGER.GET_VERSION() AS VERSION FROM DUAL UNION ALL -SELECT 'FILE_ARCHIVER' AS PACKAGE_NAME, CT_MRDS.FILE_ARCHIVER.GET_VERSION() AS VERSION FROM DUAL; +SELECT 'FILE_ARCHIVER' AS PACKAGE_NAME, CT_MRDS.FILE_ARCHIVER.GET_VERSION() AS VERSION FROM DUAL +UNION ALL +SELECT 'DATA_EXPORTER' AS PACKAGE_NAME, CT_MRDS.DATA_EXPORTER.GET_VERSION() AS VERSION FROM DUAL; PROMPT PROMPT ============================================================================ diff --git a/MARS_Packages/REL02_POST/MARS-1409/install_mars1409.sql b/MARS_Packages/REL02_POST/MARS-1409/install_mars1409.sql index 80aa0c4..9edbfed 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/install_mars1409.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/install_mars1409.sql @@ -33,7 +33,7 @@ PROMPT ========================================================================= PROMPT Package: CT_MRDS.FILE_MANAGER v3.X.X PROMPT Change: Add A_WORKFLOW_HISTORY_KEY to A_SOURCE_FILE_RECEIVED; add ARCHIVAL_STRATEGY, ARCH_MINIMUM_AGE_MONTHS, IS_WORKFLOW_SUCCESS_REQUIRED and WORKFLOW_SUCCESS_* columns to A_TABLE_STAT/HIST PROMPT Purpose: Direct tracking of workflow history keys in file registration; self-documenting statistics records; separate total vs workflow-success statistics -PROMPT Steps: 12 (DDL x2, ENV_MANAGER Update, FILE_MANAGER Update, FILE_ARCHIVER Update, Trigger Update, Verification, Tracking, Version Verification) +PROMPT Steps: 14 (DDL x2, ENV_MANAGER Update, FILE_MANAGER Update, FILE_ARCHIVER Update, DATA_EXPORTER Update, Trigger Update, Verification, Tracking, Version Verification) PROMPT Timestamp: SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS install_start FROM DUAL; PROMPT ============================================================================ @@ -98,25 +98,37 @@ PROMPT ========================================================================= PROMPT PROMPT ============================================================================ -PROMPT STEP 9: Update A_WORKFLOW_HISTORY trigger +PROMPT STEP 9: Install DATA_EXPORTER package specification +PROMPT ============================================================================ +@@11_MARS_1409_install_CT_MRDS_DATA_EXPORTER_SPEC.sql + +PROMPT +PROMPT ============================================================================ +PROMPT STEP 10: Install DATA_EXPORTER package body +PROMPT ============================================================================ +@@12_MARS_1409_install_CT_MRDS_DATA_EXPORTER_BODY.sql + +PROMPT +PROMPT ============================================================================ +PROMPT STEP 11: Update A_WORKFLOW_HISTORY trigger PROMPT ============================================================================ @@09_MARS_1409_install_CT_MRDS_A_WORKFLOW_HISTORY.sql PROMPT PROMPT ============================================================================ -PROMPT STEP 10: Verify installation +PROMPT STEP 12: Verify installation PROMPT ============================================================================ @@10_MARS_1409_verify_installation.sql PROMPT PROMPT ============================================================================ -PROMPT STEP 11: Track package versions +PROMPT STEP 13: Track package versions PROMPT ============================================================================ @@track_package_versions.sql PROMPT PROMPT ============================================================================ -PROMPT STEP 12: Verify package versions +PROMPT STEP 14: Verify package versions PROMPT ============================================================================ @@verify_packages_version.sql diff --git a/MARS_Packages/REL02_POST/MARS-1409/rollback_mars1409.sql b/MARS_Packages/REL02_POST/MARS-1409/rollback_mars1409.sql index 4030f60..f27c982 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/rollback_mars1409.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/rollback_mars1409.sql @@ -32,7 +32,7 @@ PROMPT MARS-1409 Rollback Starting PROMPT ============================================================================ PROMPT Package: CT_MRDS.FILE_MANAGER PROMPT Change: Remove A_WORKFLOW_HISTORY_KEY column and restore previous version -PROMPT Steps: 11 (Drop tables/columns first, then Restore ENV_MANAGER, FILE_MANAGER, FILE_ARCHIVER (dependency order), Restore trigger, Verify) +PROMPT Steps: 13 (Drop tables/columns first, then Restore ENV_MANAGER, FILE_MANAGER, DATA_EXPORTER, FILE_ARCHIVER (dependency order), Restore trigger, Verify) PROMPT Timestamp: SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS rollback_start FROM DUAL; PROMPT ============================================================================ @@ -86,31 +86,43 @@ PROMPT ========================================================================= PROMPT PROMPT ============================================================================ -PROMPT STEP 7: Restore FILE_ARCHIVER package specification (previous version) +PROMPT STEP 7: Restore DATA_EXPORTER package specification (previous version) +PROMPT ============================================================================ +@@83_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_SPEC.sql + +PROMPT +PROMPT ============================================================================ +PROMPT STEP 8: Restore DATA_EXPORTER package body (previous version) +PROMPT ============================================================================ +@@84_MARS_1409_rollback_CT_MRDS_DATA_EXPORTER_BODY.sql + +PROMPT +PROMPT ============================================================================ +PROMPT STEP 9: Restore FILE_ARCHIVER package specification (previous version) PROMPT ============================================================================ @@91_MARS_1409_rollback_CT_MRDS_FILE_ARCHIVER_SPEC.sql PROMPT PROMPT ============================================================================ -PROMPT STEP 8: Restore FILE_ARCHIVER package body (previous version) +PROMPT STEP 10: Restore FILE_ARCHIVER package body (previous version) PROMPT ============================================================================ @@92_MARS_1409_rollback_CT_MRDS_FILE_ARCHIVER_BODY.sql PROMPT PROMPT ============================================================================ -PROMPT STEP 9: Restore A_WORKFLOW_HISTORY trigger (previous version) +PROMPT STEP 11: Restore A_WORKFLOW_HISTORY trigger (previous version) PROMPT ============================================================================ @@97_MARS_1409_rollback_CT_MRDS_A_WORKFLOW_HISTORY.sql PROMPT PROMPT ============================================================================ -PROMPT STEP 10: Verify rollback +PROMPT STEP 12: Verify rollback PROMPT ============================================================================ @@90_MARS_1409_verify_rollback.sql PROMPT PROMPT ============================================================================ -PROMPT STEP 11: Verify package versions +PROMPT STEP 13: Verify package versions PROMPT ============================================================================ @@verify_packages_version.sql diff --git a/MARS_Packages/REL02_POST/MARS-1409/track_package_versions.sql b/MARS_Packages/REL02_POST/MARS-1409/track_package_versions.sql index 9d8d398..b0340b7 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/track_package_versions.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/track_package_versions.sql @@ -18,6 +18,8 @@ DECLARE v_env_manager_build VARCHAR2(100); v_file_archiver_version VARCHAR2(50); v_file_archiver_build VARCHAR2(100); + v_data_exporter_version VARCHAR2(50); + v_data_exporter_build VARCHAR2(500); BEGIN -- Get FILE_MANAGER version BEGIN @@ -54,6 +56,18 @@ BEGIN WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('WARNING: Could not retrieve FILE_ARCHIVER version'); END; + + -- Get DATA_EXPORTER version + BEGIN + v_data_exporter_version := CT_MRDS.DATA_EXPORTER.GET_VERSION(); + v_data_exporter_build := CT_MRDS.DATA_EXPORTER.GET_BUILD_INFO(); + + DBMS_OUTPUT.PUT_LINE('DATA_EXPORTER Version: ' || v_data_exporter_version); + DBMS_OUTPUT.PUT_LINE('DATA_EXPORTER Build: ' || v_data_exporter_build); + EXCEPTION + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE('WARNING: Could not retrieve DATA_EXPORTER version'); + END; -- Insert version records into A_PACKAGE_VERSION_TRACKING BEGIN @@ -78,6 +92,13 @@ BEGIN USING 'CT_MRDS', 'FILE_ARCHIVER', 'BOTH', v_file_archiver_version, '', '', 'MARS-1409'; + EXECUTE IMMEDIATE 'INSERT INTO CT_MRDS.A_PACKAGE_VERSION_TRACKING + (PACKAGE_OWNER, PACKAGE_NAME, PACKAGE_TYPE, PACKAGE_VERSION, + PACKAGE_BUILD_DATE, PACKAGE_AUTHOR, TRACKING_DATE, TRACKED_BY_USER, TRACKED_BY_MODULE) + VALUES (:1, :2, :3, :4, :5, :6, SYSTIMESTAMP, USER, :7)' + USING 'CT_MRDS', 'DATA_EXPORTER', 'BOTH', v_data_exporter_version, + '', '', 'MARS-1409'; + COMMIT; DBMS_OUTPUT.PUT_LINE('Package version tracking recorded successfully'); EXCEPTION diff --git a/MARS_Packages/REL02_POST/MARS-1409/verify_packages_version.sql b/MARS_Packages/REL02_POST/MARS-1409/verify_packages_version.sql index fd16b21..4b77e76 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/verify_packages_version.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/verify_packages_version.sql @@ -26,13 +26,25 @@ PROMPT CT_MRDS.ENV_MANAGER Package: SELECT CT_MRDS.ENV_MANAGER.GET_VERSION() AS VERSION FROM DUAL; SELECT CT_MRDS.ENV_MANAGER.GET_BUILD_INFO() AS BUILD_INFO FROM DUAL; +-- FILE_ARCHIVER version +PROMPT +PROMPT CT_MRDS.FILE_ARCHIVER Package: +SELECT CT_MRDS.FILE_ARCHIVER.GET_VERSION() AS VERSION FROM DUAL; +SELECT CT_MRDS.FILE_ARCHIVER.GET_BUILD_INFO() AS BUILD_INFO FROM DUAL; + +-- DATA_EXPORTER version +PROMPT +PROMPT CT_MRDS.DATA_EXPORTER Package: +SELECT CT_MRDS.DATA_EXPORTER.GET_VERSION() AS VERSION FROM DUAL; +SELECT CT_MRDS.DATA_EXPORTER.GET_BUILD_INFO() AS BUILD_INFO FROM DUAL; + -- Package compilation status PROMPT PROMPT Package Compilation Status: SELECT object_name, object_type, status, last_ddl_time FROM all_objects WHERE owner = 'CT_MRDS' - AND object_name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER') + AND object_name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER', 'DATA_EXPORTER') AND object_type IN ('PACKAGE', 'PACKAGE BODY') ORDER BY object_name, object_type; @@ -42,7 +54,7 @@ PROMPT Compilation Errors (if any): SELECT name, type, line, position, text FROM all_errors WHERE owner = 'CT_MRDS' - AND name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER') + AND name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER', 'DATA_EXPORTER') ORDER BY name, type, line, position; PROMPT