Compare commits
2 Commits
7d2fb34ad9
...
096994d514
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
096994d514 | ||
|
|
1385bfb9e7 |
5
MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/.gitignore
vendored
Normal file
5
MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Exclude temporary folders from version control
|
||||||
|
confluence/
|
||||||
|
log/
|
||||||
|
test/
|
||||||
|
mock_data/
|
||||||
@@ -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
|
-- Purpose: Populate A_WORKFLOW_HISTORY_KEY for existing A_SOURCE_FILE_RECEIVED records
|
||||||
-- by extracting values from corresponding ODS tables
|
-- by extracting values from corresponding ODS tables
|
||||||
|
-- Author: Grzegorz Michalski
|
||||||
|
-- Date: 2026-03-13
|
||||||
-- Prerequisites:
|
-- 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
|
-- - ODS tables contain A_WORKFLOW_HISTORY_KEY and file$name columns
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|
||||||
@@ -157,8 +159,8 @@ BEGIN
|
|||||||
|
|
||||||
IF vFailedConfigs > 0 THEN
|
IF vFailedConfigs > 0 THEN
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
DBMS_OUTPUT.PUT_LINE('WARNING: ' || vFailedConfigs || ' configuration(s) failed with unexpected errors.');
|
DBMS_OUTPUT.PUT_LINE('NOTE: ' || vFailedConfigs || ' configuration(s) failed with unexpected errors.');
|
||||||
DBMS_OUTPUT.PUT_LINE(' Review the ERROR lines above and investigate manually.');
|
DBMS_OUTPUT.PUT_LINE(' Review the ERROR lines above and investigate manually.');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('----------------------------------------');
|
DBMS_OUTPUT.PUT_LINE('----------------------------------------');
|
||||||
@@ -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
|
||||||
60
MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/README.md
Normal file
60
MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/README.md
Normal file
@@ -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.<TABLE_ID>_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_<PDB>_<timestamp>.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.<TABLE_ID>_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)
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- 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 STEP 2: Diagnose workflow key status
|
||||||
|
PROMPT ============================================================================
|
||||||
|
@@02_MARS_1409_POSTHOOK_diagnose_workflow_key_status.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;
|
||||||
@@ -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;
|
||||||
@@ -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
|
-- Purpose: Update trigger to mark A_SOURCE_FILE_RECEIVED as INGESTED
|
||||||
-- when WORKFLOW_SUCCESSFUL is set to 'Y'
|
-- when WORKFLOW_SUCCESSFUL is set to 'Y'
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|
||||||
PROMPT Installing TRG_A_WORKFLOW_HISTORY (new_version)...
|
PROMPT Installing A_WORKFLOW_HISTORY (new_version)...
|
||||||
@@new_version/TRG_A_WORKFLOW_HISTORY.sql
|
@@new_version/A_WORKFLOW_HISTORY.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
DECLARE
|
DECLARE
|
||||||
@@ -15,14 +15,14 @@ BEGIN
|
|||||||
SELECT status INTO v_status
|
SELECT status INTO v_status
|
||||||
FROM all_objects
|
FROM all_objects
|
||||||
WHERE owner = 'CT_MRDS'
|
WHERE owner = 'CT_MRDS'
|
||||||
AND object_name = 'TRG_A_WORKFLOW_HISTORY'
|
AND object_name = 'A_WORKFLOW_HISTORY'
|
||||||
AND object_type = 'TRIGGER';
|
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
|
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;
|
END IF;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN NO_DATA_FOUND THEN
|
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;
|
END;
|
||||||
/
|
/
|
||||||
@@ -95,7 +95,7 @@ ORDER BY type, line, position;
|
|||||||
|
|
||||||
-- Check trigger status
|
-- Check trigger status
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT 5B. Checking TRG_A_WORKFLOW_HISTORY trigger...
|
PROMPT 5B. Checking A_WORKFLOW_HISTORY trigger...
|
||||||
SELECT
|
SELECT
|
||||||
trigger_name,
|
trigger_name,
|
||||||
trigger_type,
|
trigger_type,
|
||||||
@@ -103,7 +103,7 @@ SELECT
|
|||||||
status
|
status
|
||||||
FROM all_triggers
|
FROM all_triggers
|
||||||
WHERE owner = 'CT_MRDS'
|
WHERE owner = 'CT_MRDS'
|
||||||
AND trigger_name = 'TRG_A_WORKFLOW_HISTORY';
|
AND trigger_name = 'A_WORKFLOW_HISTORY';
|
||||||
|
|
||||||
-- Verify package versions
|
-- Verify package versions
|
||||||
PROMPT
|
PROMPT
|
||||||
@@ -34,19 +34,19 @@ END;
|
|||||||
|
|
||||||
-- Check trigger was restored
|
-- Check trigger was restored
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT 1B. Checking TRG_A_WORKFLOW_HISTORY trigger status...
|
PROMPT 1B. Checking A_WORKFLOW_HISTORY trigger status...
|
||||||
DECLARE
|
DECLARE
|
||||||
v_status VARCHAR2(20);
|
v_status VARCHAR2(20);
|
||||||
BEGIN
|
BEGIN
|
||||||
SELECT status INTO v_status
|
SELECT status INTO v_status
|
||||||
FROM all_objects
|
FROM all_objects
|
||||||
WHERE owner = 'CT_MRDS'
|
WHERE owner = 'CT_MRDS'
|
||||||
AND object_name = 'TRG_A_WORKFLOW_HISTORY'
|
AND object_name = 'A_WORKFLOW_HISTORY'
|
||||||
AND object_type = 'TRIGGER';
|
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
|
EXCEPTION
|
||||||
WHEN NO_DATA_FOUND THEN
|
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;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
-- Purpose: Restore trigger to pre-MARS-1409 state
|
||||||
-- Removes INGESTED status update logic from A_SOURCE_FILE_RECEIVED
|
-- Removes INGESTED status update logic from A_SOURCE_FILE_RECEIVED
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|
||||||
PROMPT Restoring TRG_A_WORKFLOW_HISTORY (rollback_version)...
|
PROMPT Restoring trigger A_WORKFLOW_HISTORY (rollback_version)...
|
||||||
@@rollback_version/TRG_A_WORKFLOW_HISTORY.sql
|
@@rollback_version/A_WORKFLOW_HISTORY.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
DECLARE
|
DECLARE
|
||||||
@@ -33,7 +33,7 @@ PROMPT =========================================================================
|
|||||||
PROMPT Package: CT_MRDS.FILE_MANAGER v3.X.X
|
PROMPT Package: CT_MRDS.FILE_MANAGER v3.X.X
|
||||||
PROMPT Change: Add A_WORKFLOW_HISTORY_KEY to A_SOURCE_FILE_RECEIVED
|
PROMPT Change: Add A_WORKFLOW_HISTORY_KEY to A_SOURCE_FILE_RECEIVED
|
||||||
PROMPT Purpose: Direct tracking of workflow history keys in file registration
|
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:
|
PROMPT Timestamp:
|
||||||
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS install_start FROM DUAL;
|
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS install_start FROM DUAL;
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@ -92,28 +92,28 @@ PROMPT =========================================================================
|
|||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 8: Update TRG_A_WORKFLOW_HISTORY trigger
|
PROMPT STEP 8: Update A_WORKFLOW_HISTORY trigger
|
||||||
PROMPT ============================================================================
|
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 ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 9: Update A_WORKFLOW_HISTORY_KEY for existing records
|
PROMPT STEP 9: Verify installation
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@09_MARS_1409_update_existing_workflow_keys.sql
|
@@09_MARS_1409_verify_installation.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 10: Verify installation
|
PROMPT STEP 10: Track package versions
|
||||||
PROMPT ============================================================================
|
|
||||||
@@10_MARS_1409_verify_installation.sql
|
|
||||||
|
|
||||||
PROMPT
|
|
||||||
PROMPT ============================================================================
|
|
||||||
PROMPT STEP 11: Track package versions
|
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@track_package_versions.sql
|
@@track_package_versions.sql
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT ============================================================================
|
||||||
|
PROMPT STEP 11: Verify package versions
|
||||||
|
PROMPT ============================================================================
|
||||||
|
@@verify_packages_version.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT MARS-1409 Installation Complete
|
PROMPT MARS-1409 Installation Complete
|
||||||
|
|||||||
@@ -3,16 +3,10 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON ct_ods.a_load_history TO ct_mrds;
|
|||||||
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
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
|
CREATE OR REPLACE EDITIONABLE TRIGGER "CT_MRDS"."A_WORKFLOW_HISTORY"
|
||||||
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"
|
|
||||||
AFTER INSERT OR UPDATE OF workflow_successful ON 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
|
REFERENCING NEW AS new OLD AS old
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
44
MARS_Packages/REL02_POST/MARS-1409/new_version/asd.sql
Normal file
44
MARS_Packages/REL02_POST/MARS-1409/new_version/asd.sql
Normal file
@@ -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
|
||||||
|
;
|
||||||
|
/
|
||||||
@@ -85,9 +85,9 @@ PROMPT =========================================================================
|
|||||||
|
|
||||||
PROMPT
|
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 ============================================================================
|
PROMPT ============================================================================
|
||||||
@@97_MARS_1409_rollback_CT_MRDS_TRG_A_WORKFLOW_HISTORY.sql
|
@@97_MARS_1409_rollback_CT_MRDS_A_WORKFLOW_HISTORY.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@ -101,6 +101,12 @@ PROMPT STEP 9: Verify rollback
|
|||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@90_MARS_1409_verify_rollback.sql
|
@@90_MARS_1409_verify_rollback.sql
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT ============================================================================
|
||||||
|
PROMPT STEP 10: Verify package versions
|
||||||
|
PROMPT ============================================================================
|
||||||
|
@@verify_packages_version.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT MARS-1409 Rollback Complete
|
PROMPT MARS-1409 Rollback Complete
|
||||||
|
|||||||
@@ -2,11 +2,6 @@ WHENEVER SQLERROR CONTINUE
|
|||||||
GRANT SELECT, INSERT, UPDATE, DELETE ON ct_ods.a_load_history TO ct_mrds;
|
GRANT SELECT, INSERT, UPDATE, DELETE ON ct_ods.a_load_history TO ct_mrds;
|
||||||
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
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
|
create or replace TRIGGER ct_mrds.a_workflow_history
|
||||||
AFTER INSERT OR UPDATE OF workflow_successful ON 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
|
REFERENCING NEW AS new OLD AS old
|
||||||
@@ -30,8 +30,9 @@ SELECT CT_MRDS.ENV_MANAGER.GET_BUILD_INFO() AS BUILD_INFO FROM DUAL;
|
|||||||
PROMPT
|
PROMPT
|
||||||
PROMPT Package Compilation Status:
|
PROMPT Package Compilation Status:
|
||||||
SELECT object_name, object_type, status, last_ddl_time
|
SELECT object_name, object_type, status, last_ddl_time
|
||||||
FROM user_objects
|
FROM all_objects
|
||||||
WHERE object_name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER')
|
WHERE owner = 'CT_MRDS'
|
||||||
|
AND object_name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER')
|
||||||
AND object_type IN ('PACKAGE', 'PACKAGE BODY')
|
AND object_type IN ('PACKAGE', 'PACKAGE BODY')
|
||||||
ORDER BY object_name, object_type;
|
ORDER BY object_name, object_type;
|
||||||
|
|
||||||
@@ -39,8 +40,9 @@ ORDER BY object_name, object_type;
|
|||||||
PROMPT
|
PROMPT
|
||||||
PROMPT Compilation Errors (if any):
|
PROMPT Compilation Errors (if any):
|
||||||
SELECT name, type, line, position, text
|
SELECT name, type, line, position, text
|
||||||
FROM user_errors
|
FROM all_errors
|
||||||
WHERE name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER')
|
WHERE owner = 'CT_MRDS'
|
||||||
|
AND name IN ('FILE_MANAGER', 'ENV_MANAGER', 'FILE_ARCHIVER')
|
||||||
ORDER BY name, type, line, position;
|
ORDER BY name, type, line, position;
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
|
|||||||
Reference in New Issue
Block a user