From 1385bfb9e743f47ac50dcca9212956117c33dac5 Mon Sep 17 00:00:00 2001 From: Grzegorz Michalski Date: Fri, 13 Mar 2026 08:30:32 +0100 Subject: [PATCH] feat: Implement MARS-1409 post-hook for backfilling A_WORKFLOW_HISTORY_KEY - Added .gitignore to exclude temporary folders. - Created SQL script to update existing A_WORKFLOW_HISTORY_KEY in A_SOURCE_FILE_RECEIVED. - Implemented rollback script to clear backfilled A_WORKFLOW_HISTORY_KEY values. - Added README.md for installation and usage instructions. - Developed master installation and rollback scripts for MARS-1409 post-hook. - Verified installation and rollback processes with detailed checks. - Updated trigger logic to manage workflow history updates. - Ensured proper version tracking and verification for related packages. --- .../REL02_POST/MARS-1409-POSTHOOK/.gitignore | 5 ++ ...OSTHOOK_update_existing_workflow_keys.sql} | 10 ++- ...S_1409_POSTHOOK_rollback_workflow_keys.sql | 43 +++++++++++ .../REL02_POST/MARS-1409-POSTHOOK/README.md | 60 +++++++++++++++ .../install_mars1409_posthook.sql | 74 ++++++++++++++++++ .../rollback_mars1409_posthook.sql | 76 +++++++++++++++++++ ...09_install_CT_MRDS_A_WORKFLOW_HISTORY.sql} | 14 ++-- ...l => 09_MARS_1409_verify_installation.sql} | 4 +- .../90_MARS_1409_verify_rollback.sql | 8 +- ...9_rollback_CT_MRDS_A_WORKFLOW_HISTORY.sql} | 6 +- .../REL02_POST/MARS-1409/install_mars1409.sql | 24 +++--- ...LOW_HISTORY.sql => A_WORKFLOW_HISTORY.sql} | 10 +-- .../REL02_POST/MARS-1409/new_version/asd.sql | 44 +++++++++++ .../MARS-1409/rollback_mars1409.sql | 10 ++- ...LOW_HISTORY.sql => A_WORKFLOW_HISTORY.sql} | 5 -- 15 files changed, 346 insertions(+), 47 deletions(-) create mode 100644 MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/.gitignore rename MARS_Packages/REL02_POST/{MARS-1409/09_MARS_1409_update_existing_workflow_keys.sql => MARS-1409-POSTHOOK/01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql} (94%) create mode 100644 MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/91_MARS_1409_POSTHOOK_rollback_workflow_keys.sql create mode 100644 MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/README.md create mode 100644 MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/install_mars1409_posthook.sql create mode 100644 MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/rollback_mars1409_posthook.sql rename MARS_Packages/REL02_POST/MARS-1409/{08_MARS_1409_install_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql => 08_MARS_1409_install_CT_MRDS_A_WORKFLOW_HISTORY.sql} (53%) rename MARS_Packages/REL02_POST/MARS-1409/{10_MARS_1409_verify_installation.sql => 09_MARS_1409_verify_installation.sql} (96%) rename MARS_Packages/REL02_POST/MARS-1409/{97_MARS_1409_rollback_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql => 97_MARS_1409_rollback_CT_MRDS_A_WORKFLOW_HISTORY.sql} (83%) rename MARS_Packages/REL02_POST/MARS-1409/new_version/{TRG_A_WORKFLOW_HISTORY.sql => A_WORKFLOW_HISTORY.sql} (91%) create mode 100644 MARS_Packages/REL02_POST/MARS-1409/new_version/asd.sql rename MARS_Packages/REL02_POST/MARS-1409/rollback_version/{TRG_A_WORKFLOW_HISTORY.sql => A_WORKFLOW_HISTORY.sql} (94%) diff --git a/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/.gitignore b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/.gitignore new file mode 100644 index 0000000..754791d --- /dev/null +++ b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/.gitignore @@ -0,0 +1,5 @@ +# Exclude temporary folders from version control +confluence/ +log/ +test/ +mock_data/ diff --git a/MARS_Packages/REL02_POST/MARS-1409/09_MARS_1409_update_existing_workflow_keys.sql b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql similarity index 94% rename from MARS_Packages/REL02_POST/MARS-1409/09_MARS_1409_update_existing_workflow_keys.sql rename to MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql index 20fa322..c35b174 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/09_MARS_1409_update_existing_workflow_keys.sql +++ b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql @@ -1,10 +1,12 @@ -- ============================================================================ --- MARS-1409 Step 09: Update A_WORKFLOW_HISTORY_KEY for existing records +-- MARS-1409-POSTHOOK Step 01: Update A_WORKFLOW_HISTORY_KEY for existing records -- ============================================================================ -- Purpose: Populate A_WORKFLOW_HISTORY_KEY for existing A_SOURCE_FILE_RECEIVED records -- by extracting values from corresponding ODS tables +-- Author: Grzegorz Michalski +-- Date: 2026-03-13 -- Prerequisites: --- - A_WORKFLOW_HISTORY_KEY column exists in A_SOURCE_FILE_RECEIVED +-- - MARS-1409 installed (A_WORKFLOW_HISTORY_KEY column exists in A_SOURCE_FILE_RECEIVED) -- - ODS tables contain A_WORKFLOW_HISTORY_KEY and file$name columns -- ============================================================================ @@ -157,8 +159,8 @@ BEGIN IF vFailedConfigs > 0 THEN DBMS_OUTPUT.PUT_LINE(''); - DBMS_OUTPUT.PUT_LINE('WARNING: ' || vFailedConfigs || ' configuration(s) failed with unexpected errors.'); - DBMS_OUTPUT.PUT_LINE(' Review the ERROR lines above and investigate manually.'); + DBMS_OUTPUT.PUT_LINE('NOTE: ' || vFailedConfigs || ' configuration(s) failed with unexpected errors.'); + DBMS_OUTPUT.PUT_LINE(' Review the ERROR lines above and investigate manually.'); END IF; DBMS_OUTPUT.PUT_LINE('----------------------------------------'); diff --git a/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/91_MARS_1409_POSTHOOK_rollback_workflow_keys.sql b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/91_MARS_1409_POSTHOOK_rollback_workflow_keys.sql new file mode 100644 index 0000000..dcba78a --- /dev/null +++ b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/91_MARS_1409_POSTHOOK_rollback_workflow_keys.sql @@ -0,0 +1,43 @@ +-- ============================================================================ +-- MARS-1409-POSTHOOK Rollback Step 91: Clear backfilled A_WORKFLOW_HISTORY_KEY values +-- ============================================================================ +-- Purpose: Reset A_WORKFLOW_HISTORY_KEY to NULL for all records in +-- A_SOURCE_FILE_RECEIVED. Reverts the backfill performed by +-- 01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql. +-- Author: Grzegorz Michalski +-- Date: 2026-03-13 +-- Note: Records populated by the new trigger (after MARS-1409 install) will also +-- be cleared. The trigger will repopulate them on next file processing. +-- ============================================================================ + +SET SERVEROUTPUT ON SIZE UNLIMITED +WHENEVER SQLERROR EXIT SQL.SQLCODE + +PROMPT +PROMPT Clearing backfilled A_WORKFLOW_HISTORY_KEY values... + +DECLARE + vCleared NUMBER := 0; +BEGIN + UPDATE CT_MRDS.A_SOURCE_FILE_RECEIVED + SET A_WORKFLOW_HISTORY_KEY = NULL + WHERE A_WORKFLOW_HISTORY_KEY IS NOT NULL; + + vCleared := SQL%ROWCOUNT; + COMMIT; + + DBMS_OUTPUT.PUT_LINE('Cleared A_WORKFLOW_HISTORY_KEY for ' || vCleared || ' record(s)'); + DBMS_OUTPUT.PUT_LINE('Rollback of backfill completed successfully'); + +EXCEPTION + WHEN OTHERS THEN + ROLLBACK; + DBMS_OUTPUT.PUT_LINE('FATAL ERROR: ' || SQLERRM); + DBMS_OUTPUT.PUT_LINE('Transaction rolled back'); + RAISE; +END; +/ + +PROMPT +PROMPT Workflow keys rollback completed! +PROMPT diff --git a/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/README.md b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/README.md new file mode 100644 index 0000000..e1748a1 --- /dev/null +++ b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/README.md @@ -0,0 +1,60 @@ +# MARS-1409-POSTHOOK: Backfill A_WORKFLOW_HISTORY_KEY for existing records + +## Overview + +Post-hook for MARS-1409. Backfills `A_WORKFLOW_HISTORY_KEY` in +`CT_MRDS.A_SOURCE_FILE_RECEIVED` for historical records that existed before +MARS-1409 was installed. + +Matches records by `SOURCE_FILE_NAME` against `file$name` in the corresponding +ODS table (`ODS._ODS`) for each `INPUT` source configuration. + +## Contents + +| File | Description | +|------|-------------| +| `install_mars1409_posthook.sql` | Master installation script (SPOOL, ACCEPT, quit) | +| `rollback_mars1409_posthook.sql` | Master rollback script (SPOOL, ACCEPT, quit) | +| `01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql` | Backfill UPDATE script | +| `91_MARS_1409_POSTHOOK_rollback_workflow_keys.sql` | Clear backfilled values | +| `track_package_versions.sql` | Universal version tracking (no packages changed) | +| `verify_packages_version.sql` | Universal package verification | +| `README.md` | This file | + +## Prerequisites + +- MARS-1409 installed (`A_WORKFLOW_HISTORY_KEY` column must exist in `CT_MRDS.A_SOURCE_FILE_RECEIVED`) +- ODS tables populated with ingested data +- ADMIN user with access to CT_MRDS and ODS schemas + +## Installation + +```powershell +# Execute as ADMIN user +Get-Content "MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/install_mars1409_posthook.sql" | sql "ADMIN/Cloudpass#34@ggmichalski_high" +``` + +Log file created automatically: `log/INSTALL_MARS_1409_POSTHOOK__.log` + +## What it does + +- Iterates all `INPUT` source configurations from `CT_MRDS.A_SOURCE_FILE_CONFIG` +- For each config, joins `A_SOURCE_FILE_RECEIVED` with `ODS._ODS` on `SOURCE_FILE_NAME = file$name` +- Updates `A_WORKFLOW_HISTORY_KEY` for records with statuses: + `VALIDATED`, `READY_FOR_INGESTION`, `INGESTED`, `ARCHIVED`, `ARCHIVED_AND_TRASHED`, `ARCHIVED_AND_PURGED` +- Skips configs with no NULL records or missing ODS tables +- Prints summary with counts per config and overall totals + +## Rollback + +```powershell +# Execute as ADMIN user +Get-Content "MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/rollback_mars1409_posthook.sql" | sql "ADMIN/Cloudpass#34@ggmichalski_high" +``` + +Rollback clears all non-NULL `A_WORKFLOW_HISTORY_KEY` values from `A_SOURCE_FILE_RECEIVED`. +The trigger installed by MARS-1409 will repopulate new records automatically. + +## Related + +- MARS-1409: Add A_WORKFLOW_HISTORY_KEY column to A_SOURCE_FILE_RECEIVED (main package) diff --git a/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/install_mars1409_posthook.sql b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/install_mars1409_posthook.sql new file mode 100644 index 0000000..e7c460b --- /dev/null +++ b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/install_mars1409_posthook.sql @@ -0,0 +1,74 @@ +-- ============================================================================ +-- MARS-1409-POSTHOOK Master Installation Script +-- ============================================================================ +-- Purpose: Post-hook for MARS-1409 - Backfill A_WORKFLOW_HISTORY_KEY for +-- existing A_SOURCE_FILE_RECEIVED records by joining with ODS tables. +-- Author: Grzegorz Michalski +-- Date: 2026-03-13 +-- Prerequisites: MARS-1409 must be installed first (column must exist) +-- ============================================================================ + +SET SERVEROUTPUT ON SIZE UNLIMITED +SET VERIFY OFF +SET FEEDBACK ON +SET ECHO OFF + +-- Create log directory if it doesn't exist +host mkdir log 2>nul + +-- Generate dynamic SPOOL filename with timestamp +var filename VARCHAR2(100) +BEGIN + :filename := 'log/INSTALL_MARS_1409_POSTHOOK_' || SYS_CONTEXT('USERENV', 'CON_NAME') || '_' || TO_CHAR(SYSDATE,'YYYYMMDD_HH24MISS') || '.log'; +END; +/ +column filename new_value _filename +select :filename filename from dual; +spool &_filename + +PROMPT +PROMPT ============================================================================ +PROMPT MARS-1409-POSTHOOK Installation Starting +PROMPT ============================================================================ +PROMPT Purpose: Backfill A_WORKFLOW_HISTORY_KEY for historical records +PROMPT in A_SOURCE_FILE_RECEIVED using matching ODS tables. +PROMPT +PROMPT This script will: +PROMPT - Update A_WORKFLOW_HISTORY_KEY for records with targeted PROCESSING_STATUS +PROMPT - Match records by SOURCE_FILE_NAME against file$name in ODS tables +PROMPT - Skip configs with no NULL records or missing ODS tables +PROMPT +PROMPT Prerequisite: MARS-1409 installed (A_WORKFLOW_HISTORY_KEY column exists) +PROMPT Expected Duration: 1-5 minutes (depends on data volume) +PROMPT ============================================================================ + +-- Confirm installation with user +ACCEPT continue CHAR PROMPT 'Type YES to continue with installation, or Ctrl+C to abort: ' +WHENEVER SQLERROR EXIT SQL.SQLCODE +BEGIN + IF '&continue' IS NULL OR TRIM('&continue') IS NULL OR UPPER(TRIM('&continue')) != 'YES' THEN + RAISE_APPLICATION_ERROR(-20000, 'Installation aborted by user'); + END IF; +END; +/ +WHENEVER SQLERROR CONTINUE + +PROMPT +PROMPT ============================================================================ +PROMPT STEP 1: Backfill A_WORKFLOW_HISTORY_KEY for existing records +PROMPT ============================================================================ +@@01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql + +PROMPT +PROMPT ============================================================================ +PROMPT MARS-1409-POSTHOOK Installation Complete +PROMPT ============================================================================ +PROMPT Final Status: +SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS install_end FROM DUAL; +PROMPT +PROMPT Review the log file for detailed results: &_filename +PROMPT ============================================================================ + +spool off + +quit; diff --git a/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/rollback_mars1409_posthook.sql b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/rollback_mars1409_posthook.sql new file mode 100644 index 0000000..bf966bf --- /dev/null +++ b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/rollback_mars1409_posthook.sql @@ -0,0 +1,76 @@ +-- ============================================================================ +-- MARS-1409-POSTHOOK Master Rollback Script +-- ============================================================================ +-- Purpose: Rollback MARS-1409-POSTHOOK - Clear backfilled A_WORKFLOW_HISTORY_KEY +-- values from A_SOURCE_FILE_RECEIVED. +-- Author: Grzegorz Michalski +-- Date: 2026-03-13 +-- Note: This clears ALL non-NULL A_WORKFLOW_HISTORY_KEY values. The trigger +-- installed by MARS-1409 will repopulate them on next file processing. +-- ============================================================================ + +SET SERVEROUTPUT ON SIZE UNLIMITED +SET VERIFY OFF +SET FEEDBACK ON +SET ECHO OFF + +-- Create log directory if it doesn't exist +host mkdir log 2>nul + +-- Generate dynamic SPOOL filename with timestamp +var filename VARCHAR2(100) +BEGIN + :filename := 'log/ROLLBACK_MARS_1409_POSTHOOK_' || SYS_CONTEXT('USERENV', 'CON_NAME') || '_' || TO_CHAR(SYSDATE,'YYYYMMDD_HH24MISS') || '.log'; +END; +/ +column filename new_value _filename +select :filename filename from dual; +spool &_filename + +PROMPT +PROMPT ============================================================================ +PROMPT MARS-1409-POSTHOOK Rollback Starting +PROMPT ============================================================================ +PROMPT This will reverse all changes from MARS-1409-POSTHOOK installation. +PROMPT +PROMPT Rollback steps: +PROMPT 1. Clear A_WORKFLOW_HISTORY_KEY values from A_SOURCE_FILE_RECEIVED +PROMPT 2. Verify package versions +PROMPT ============================================================================ + +-- Confirm rollback with user +ACCEPT continue CHAR PROMPT 'Type YES to continue with rollback, or Ctrl+C to abort: ' +WHENEVER SQLERROR EXIT SQL.SQLCODE +BEGIN + IF '&continue' IS NULL OR TRIM('&continue') IS NULL OR UPPER(TRIM('&continue')) != 'YES' THEN + RAISE_APPLICATION_ERROR(-20000, 'Rollback aborted by user'); + END IF; +END; +/ +WHENEVER SQLERROR CONTINUE + +PROMPT +PROMPT ============================================================================ +PROMPT STEP 1: Clear backfilled A_WORKFLOW_HISTORY_KEY values +PROMPT ============================================================================ +@@91_MARS_1409_POSTHOOK_rollback_workflow_keys.sql + +PROMPT +PROMPT ============================================================================ +PROMPT STEP 2: Verify Package Versions +PROMPT ============================================================================ +@@verify_packages_version.sql + +PROMPT +PROMPT ============================================================================ +PROMPT MARS-1409-POSTHOOK Rollback Complete +PROMPT ============================================================================ +PROMPT Final Status: +SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS rollback_end FROM DUAL; +PROMPT +PROMPT Review the log file for detailed results: &_filename +PROMPT ============================================================================ + +spool off + +quit; diff --git a/MARS_Packages/REL02_POST/MARS-1409/08_MARS_1409_install_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql b/MARS_Packages/REL02_POST/MARS-1409/08_MARS_1409_install_CT_MRDS_A_WORKFLOW_HISTORY.sql similarity index 53% rename from MARS_Packages/REL02_POST/MARS-1409/08_MARS_1409_install_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql rename to MARS_Packages/REL02_POST/MARS-1409/08_MARS_1409_install_CT_MRDS_A_WORKFLOW_HISTORY.sql index 73d3e6d..3e2e633 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/08_MARS_1409_install_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/08_MARS_1409_install_CT_MRDS_A_WORKFLOW_HISTORY.sql @@ -1,12 +1,12 @@ -- ============================================================================ --- MARS-1409 Step 08: Install TRG_A_WORKFLOW_HISTORY trigger +-- MARS-1409 Step 08: Install A_WORKFLOW_HISTORY trigger -- ============================================================================ -- Purpose: Update trigger to mark A_SOURCE_FILE_RECEIVED as INGESTED -- when WORKFLOW_SUCCESSFUL is set to 'Y' -- ============================================================================ -PROMPT Installing TRG_A_WORKFLOW_HISTORY (new_version)... -@@new_version/TRG_A_WORKFLOW_HISTORY.sql +PROMPT Installing A_WORKFLOW_HISTORY (new_version)... +@@new_version/A_WORKFLOW_HISTORY.sql PROMPT DECLARE @@ -15,14 +15,14 @@ BEGIN SELECT status INTO v_status FROM all_objects WHERE owner = 'CT_MRDS' - AND object_name = 'TRG_A_WORKFLOW_HISTORY' + AND object_name = 'A_WORKFLOW_HISTORY' AND object_type = 'TRIGGER'; - DBMS_OUTPUT.PUT_LINE('TRG_A_WORKFLOW_HISTORY status: ' || v_status); + DBMS_OUTPUT.PUT_LINE('A_WORKFLOW_HISTORY status: ' || v_status); IF v_status != 'VALID' THEN - RAISE_APPLICATION_ERROR(-20002, 'ERROR: TRG_A_WORKFLOW_HISTORY compiled with errors (status=' || v_status || '). Installation aborted.'); + RAISE_APPLICATION_ERROR(-20002, 'ERROR: A_WORKFLOW_HISTORY compiled with errors (status=' || v_status || '). Installation aborted.'); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN - RAISE_APPLICATION_ERROR(-20001, 'ERROR: TRG_A_WORKFLOW_HISTORY not found after installation'); + RAISE_APPLICATION_ERROR(-20001, 'ERROR: A_WORKFLOW_HISTORY not found after installation'); END; / diff --git a/MARS_Packages/REL02_POST/MARS-1409/10_MARS_1409_verify_installation.sql b/MARS_Packages/REL02_POST/MARS-1409/09_MARS_1409_verify_installation.sql similarity index 96% rename from MARS_Packages/REL02_POST/MARS-1409/10_MARS_1409_verify_installation.sql rename to MARS_Packages/REL02_POST/MARS-1409/09_MARS_1409_verify_installation.sql index df3c466..127f632 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/10_MARS_1409_verify_installation.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/09_MARS_1409_verify_installation.sql @@ -95,7 +95,7 @@ ORDER BY type, line, position; -- Check trigger status PROMPT -PROMPT 5B. Checking TRG_A_WORKFLOW_HISTORY trigger... +PROMPT 5B. Checking A_WORKFLOW_HISTORY trigger... SELECT trigger_name, trigger_type, @@ -103,7 +103,7 @@ SELECT status FROM all_triggers WHERE owner = 'CT_MRDS' - AND trigger_name = 'TRG_A_WORKFLOW_HISTORY'; + AND trigger_name = 'A_WORKFLOW_HISTORY'; -- Verify package versions PROMPT 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 e064fba..4d3769f 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 @@ -34,19 +34,19 @@ END; -- Check trigger was restored PROMPT -PROMPT 1B. Checking TRG_A_WORKFLOW_HISTORY trigger status... +PROMPT 1B. Checking A_WORKFLOW_HISTORY trigger status... DECLARE v_status VARCHAR2(20); BEGIN SELECT status INTO v_status FROM all_objects WHERE owner = 'CT_MRDS' - AND object_name = 'TRG_A_WORKFLOW_HISTORY' + AND object_name = 'A_WORKFLOW_HISTORY' AND object_type = 'TRIGGER'; - DBMS_OUTPUT.PUT_LINE('TRG_A_WORKFLOW_HISTORY status: ' || v_status); + DBMS_OUTPUT.PUT_LINE('A_WORKFLOW_HISTORY status: ' || v_status); EXCEPTION WHEN NO_DATA_FOUND THEN - DBMS_OUTPUT.PUT_LINE('WARNING: TRG_A_WORKFLOW_HISTORY not found'); + DBMS_OUTPUT.PUT_LINE('WARNING: A_WORKFLOW_HISTORY not found'); END; / diff --git a/MARS_Packages/REL02_POST/MARS-1409/97_MARS_1409_rollback_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql b/MARS_Packages/REL02_POST/MARS-1409/97_MARS_1409_rollback_CT_MRDS_A_WORKFLOW_HISTORY.sql similarity index 83% rename from MARS_Packages/REL02_POST/MARS-1409/97_MARS_1409_rollback_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql rename to MARS_Packages/REL02_POST/MARS-1409/97_MARS_1409_rollback_CT_MRDS_A_WORKFLOW_HISTORY.sql index c5036ac..e358f9a 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/97_MARS_1409_rollback_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/97_MARS_1409_rollback_CT_MRDS_A_WORKFLOW_HISTORY.sql @@ -1,12 +1,12 @@ -- ============================================================================ --- MARS-1409 Rollback 93C: Restore TRG_A_WORKFLOW_HISTORY trigger +-- MARS-1409 Rollback 93C: Restore A_WORKFLOW_HISTORY trigger -- ============================================================================ -- Purpose: Restore trigger to pre-MARS-1409 state -- Removes INGESTED status update logic from A_SOURCE_FILE_RECEIVED -- ============================================================================ -PROMPT Restoring TRG_A_WORKFLOW_HISTORY (rollback_version)... -@@rollback_version/TRG_A_WORKFLOW_HISTORY.sql +PROMPT Restoring trigger A_WORKFLOW_HISTORY (rollback_version)... +@@rollback_version/A_WORKFLOW_HISTORY.sql PROMPT DECLARE diff --git a/MARS_Packages/REL02_POST/MARS-1409/install_mars1409.sql b/MARS_Packages/REL02_POST/MARS-1409/install_mars1409.sql index 9cffbe5..9158c12 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 PROMPT Purpose: Direct tracking of workflow history keys in file registration -PROMPT Steps: 11 (DDL, ENV_MANAGER Update, FILE_MANAGER Update, FILE_ARCHIVER Update, Trigger Update, Existing Records Backfill, Verification, Tracking) +PROMPT Steps: 11 (DDL, ENV_MANAGER Update, FILE_MANAGER Update, FILE_ARCHIVER 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 ============================================================================ @@ -92,28 +92,28 @@ PROMPT ========================================================================= PROMPT PROMPT ============================================================================ -PROMPT STEP 8: Update TRG_A_WORKFLOW_HISTORY trigger +PROMPT STEP 8: Update A_WORKFLOW_HISTORY trigger PROMPT ============================================================================ -@@08_MARS_1409_install_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql +@@08_MARS_1409_install_CT_MRDS_A_WORKFLOW_HISTORY.sql PROMPT PROMPT ============================================================================ -PROMPT STEP 9: Update A_WORKFLOW_HISTORY_KEY for existing records +PROMPT STEP 9: Verify installation PROMPT ============================================================================ -@@09_MARS_1409_update_existing_workflow_keys.sql +@@09_MARS_1409_verify_installation.sql PROMPT PROMPT ============================================================================ -PROMPT STEP 10: Verify installation -PROMPT ============================================================================ -@@10_MARS_1409_verify_installation.sql - -PROMPT -PROMPT ============================================================================ -PROMPT STEP 11: Track package versions +PROMPT STEP 10: Track package versions PROMPT ============================================================================ @@track_package_versions.sql +PROMPT +PROMPT ============================================================================ +PROMPT STEP 11: Verify package versions +PROMPT ============================================================================ +@@verify_packages_version.sql + PROMPT PROMPT ============================================================================ PROMPT MARS-1409 Installation Complete diff --git a/MARS_Packages/REL02_POST/MARS-1409/new_version/TRG_A_WORKFLOW_HISTORY.sql b/MARS_Packages/REL02_POST/MARS-1409/new_version/A_WORKFLOW_HISTORY.sql similarity index 91% rename from MARS_Packages/REL02_POST/MARS-1409/new_version/TRG_A_WORKFLOW_HISTORY.sql rename to MARS_Packages/REL02_POST/MARS-1409/new_version/A_WORKFLOW_HISTORY.sql index 977186e..a1ca018 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/new_version/TRG_A_WORKFLOW_HISTORY.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/new_version/A_WORKFLOW_HISTORY.sql @@ -3,16 +3,10 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON ct_ods.a_load_history TO ct_mrds; WHENEVER SQLERROR EXIT SQL.SQLCODE -- ============================================================================ --- TRG_A_WORKFLOW_HISTORY Trigger Definition +-- A_WORKFLOW_HISTORY Trigger Definition -- ============================================================================ --- Drop old trigger (different name) to ensure clean rename; ignore error if not exists -WHENEVER SQLERROR CONTINUE -drop TRIGGER ct_mrds.a_workflow_history; -WHENEVER SQLERROR EXIT SQL.SQLCODE - - -CREATE OR REPLACE EDITIONABLE TRIGGER "CT_MRDS"."TRG_A_WORKFLOW_HISTORY" +CREATE OR REPLACE EDITIONABLE TRIGGER "CT_MRDS"."A_WORKFLOW_HISTORY" AFTER INSERT OR UPDATE OF workflow_successful ON ct_mrds.a_workflow_history REFERENCING NEW AS new OLD AS old FOR EACH ROW diff --git a/MARS_Packages/REL02_POST/MARS-1409/new_version/asd.sql b/MARS_Packages/REL02_POST/MARS-1409/new_version/asd.sql new file mode 100644 index 0000000..27761fb --- /dev/null +++ b/MARS_Packages/REL02_POST/MARS-1409/new_version/asd.sql @@ -0,0 +1,44 @@ + CREATE OR REPLACE EDITIONABLE TRIGGER "CT_MRDS"."A_WORKFLOW_HISTORY" +AFTER INSERT OR UPDATE OF workflow_successful ON ct_mrds.a_workflow_history +REFERENCING NEW AS new OLD AS old +FOR EACH ROW +DECLARE + v_workflow_name VARCHAR2(128); + v_wla_id NUMBER; +BEGIN + IF :new.service_name = 'ODS' AND :new.workflow_name IN ( + 'w_ODS_LM_STANDING_FACILITIES', 'w_ODS_CSDB_DEBT', 'w_ODS_CSDB_DEBT_DAILY', 'w_ODS_CSDB_RATINGS_FULL', + 'w_ODS_TMS_LIMIT_ACCESS', 'w_ODS_TMS_PORTFOLIO_ACCESS', 'w_ODS_TMS_PORTFOLIO_TREE', + 'w_ODS_TMS_COLLATERAL_INVENTORY', 'w_ODS_TOP_FULLBIDARRAY_COMPILED', 'w_ODS_TOP_ANNOUNCEMENT', + 'w_ODS_TOP_ALLOTMENT_MODIFICATIONS', 'w_ODS_TOP_ALLOTMENT', 'w_ODS_CEPH_PRICING', 'w_ODS_C2D_MPEC' + ) THEN + IF :new.workflow_successful = 'Y' AND :new.workflow_successful <> NVL(:old.workflow_successful, 'N') THEN + CASE + WHEN :new.workflow_name = 'w_ODS_LM_STANDING_FACILITIES' THEN v_workflow_name := 'w_ODS_LM_STANDING_FACILITY'; + WHEN :new.workflow_name = 'w_ODS_TMS_LIMIT_ACCESS' THEN v_workflow_name := 'w_ODS_TMS_RAR_LIMITACCESS'; + WHEN :new.workflow_name = 'w_ODS_TMS_PORTFOLIO_ACCESS' THEN v_workflow_name := 'w_ODS_TMS_RAR_PORTFOLIOACCESS'; + WHEN :new.workflow_name = 'w_ODS_TMS_PORTFOLIO_TREE' THEN v_workflow_name := 'w_ODS_TMS_RAR_PORTFOLIOTREE'; + WHEN :new.workflow_name = 'w_ODS_TMS_COLLATERAL_INVENTORY' THEN v_workflow_name := 'w_ODS_TMS_RAR_RARCOLLATERALINVENTORY'; + WHEN :new.workflow_name = 'w_ODS_TOP_FULLBIDARRAY_COMPILED' THEN v_workflow_name := 'w_ODS_TOP_FULLBIDARRAY_COMPILED'; + WHEN :new.workflow_name = 'w_ODS_TOP_ANNOUNCEMENT' THEN v_workflow_name := 'w_ODS_TOP_ANNOUNCEMENT'; + WHEN :new.workflow_name = 'w_ODS_TOP_ALLOTMENT_MODIFICATIONS' THEN v_workflow_name := 'w_ODS_TOP_ALLOTMENT_MODIFICATIONS'; + WHEN :new.workflow_name = 'w_ODS_TOP_ALLOTMENT' THEN v_workflow_name := 'w_ODS_TOP_ALLOTMENT'; + WHEN :new.workflow_name = 'w_ODS_CEPH_PRICING' THEN v_workflow_name := 'w_ODS_CEPH_PRICING'; + WHEN :new.workflow_name = 'w_ODS_C2D_MPEC' THEN v_workflow_name := 'w_ODS_C2D_MPEC'; + ELSE + v_workflow_name := :new.workflow_name; + END CASE; + BEGIN + v_wla_id := TO_NUMBER(:new.orchestration_run_id); + EXCEPTION WHEN OTHERS THEN NULL; + END; + INSERT INTO ct_ods.a_load_history ( + a_etl_load_set_key, workflow_name, infa_run_id, load_start, load_end, exdi_appl_req_id, exdi_correlation_id, load_successful, wla_run_id, dq_flag + ) VALUES ( + :new.a_workflow_history_key, v_workflow_name, NULL, :new.workflow_start, :new.workflow_end, NULL, NULL, :new.workflow_successful, v_wla_id, 'F' + ); + END IF; + END IF; +END +; +/ \ No newline at end of file diff --git a/MARS_Packages/REL02_POST/MARS-1409/rollback_mars1409.sql b/MARS_Packages/REL02_POST/MARS-1409/rollback_mars1409.sql index 5561079..ae0d69c 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/rollback_mars1409.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/rollback_mars1409.sql @@ -85,9 +85,9 @@ PROMPT ========================================================================= PROMPT PROMPT ============================================================================ -PROMPT STEP 7: Restore TRG_A_WORKFLOW_HISTORY trigger (previous version) +PROMPT STEP 7: Restore A_WORKFLOW_HISTORY trigger (previous version) PROMPT ============================================================================ -@@97_MARS_1409_rollback_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql +@@97_MARS_1409_rollback_CT_MRDS_A_WORKFLOW_HISTORY.sql PROMPT PROMPT ============================================================================ @@ -101,6 +101,12 @@ PROMPT STEP 9: Verify rollback PROMPT ============================================================================ @@90_MARS_1409_verify_rollback.sql +PROMPT +PROMPT ============================================================================ +PROMPT STEP 10: Verify package versions +PROMPT ============================================================================ +@@verify_packages_version.sql + PROMPT PROMPT ============================================================================ PROMPT MARS-1409 Rollback Complete diff --git a/MARS_Packages/REL02_POST/MARS-1409/rollback_version/TRG_A_WORKFLOW_HISTORY.sql b/MARS_Packages/REL02_POST/MARS-1409/rollback_version/A_WORKFLOW_HISTORY.sql similarity index 94% rename from MARS_Packages/REL02_POST/MARS-1409/rollback_version/TRG_A_WORKFLOW_HISTORY.sql rename to MARS_Packages/REL02_POST/MARS-1409/rollback_version/A_WORKFLOW_HISTORY.sql index 528cf76..2092ec0 100644 --- a/MARS_Packages/REL02_POST/MARS-1409/rollback_version/TRG_A_WORKFLOW_HISTORY.sql +++ b/MARS_Packages/REL02_POST/MARS-1409/rollback_version/A_WORKFLOW_HISTORY.sql @@ -2,11 +2,6 @@ WHENEVER SQLERROR CONTINUE GRANT SELECT, INSERT, UPDATE, DELETE ON ct_ods.a_load_history TO ct_mrds; WHENEVER SQLERROR EXIT SQL.SQLCODE --- Drop new trigger (MARS-1409 name) before restoring old trigger name -WHENEVER SQLERROR CONTINUE -drop TRIGGER ct_mrds.TRG_A_WORKFLOW_HISTORY; -WHENEVER SQLERROR EXIT SQL.SQLCODE - create or replace TRIGGER ct_mrds.a_workflow_history AFTER INSERT OR UPDATE OF workflow_successful ON ct_mrds.a_workflow_history REFERENCING NEW AS new OLD AS old