From 255044f23b93469562dcbef32f4839fdd6928cfa Mon Sep 17 00:00:00 2001 From: Grzegorz Michalski Date: Fri, 13 Feb 2026 08:39:39 +0100 Subject: [PATCH] Enhance MARS-956 export and rollback scripts with process tracking identifier --- .../01_MARS_956_export_c2d_mpec_data.sql | 9 +++-- .../90_MARS_956_rollback_delete_csv_files.sql | 40 +++++++++---------- ...1_MARS_956_rollback_file_registrations.sql | 21 +++++----- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/MARS_Packages/REL02_POST/MARS-956/01_MARS_956_export_c2d_mpec_data.sql b/MARS_Packages/REL02_POST/MARS-956/01_MARS_956_export_c2d_mpec_data.sql index a3b4c9d..3afadac 100644 --- a/MARS_Packages/REL02_POST/MARS-956/01_MARS_956_export_c2d_mpec_data.sql +++ b/MARS_Packages/REL02_POST/MARS-956/01_MARS_956_export_c2d_mpec_data.sql @@ -330,7 +330,8 @@ BEGIN pFolderName => 'ODS/C2D/C2D_MPEC_ADMIN', pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_ADMIN', -- Template for column order pMaxFileSize => 104857600, -- 100MB max file size - pRegisterExport => TRUE -- Register files in A_SOURCE_FILE_RECEIVED + pRegisterExport => TRUE, -- Register files in A_SOURCE_FILE_RECEIVED + pProcessName => 'MARS-956' -- Process identifier for tracking ); DBMS_OUTPUT.PUT_LINE('SUCCESS: MPEC_ADMIN export completed successfully'); @@ -366,7 +367,8 @@ BEGIN pFolderName => 'ODS/C2D/C2D_MPEC_CONTENT', pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_CONTENT', pMaxFileSize => 104857600, -- 100MB max file size - pRegisterExport => TRUE + pRegisterExport => TRUE, + pProcessName => 'MARS-956' -- Process identifier for tracking ); DBMS_OUTPUT.PUT_LINE('SUCCESS: MPEC_CONTENT export completed successfully'); @@ -402,7 +404,8 @@ BEGIN pFolderName => 'ODS/C2D/C2D_MPEC_CONTENT_CRITERION', pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_CONTENT_CRITERION', pMaxFileSize => 104857600, -- 100MB max file size - pRegisterExport => TRUE + pRegisterExport => TRUE, + pProcessName => 'MARS-956' -- Process identifier for tracking ); DBMS_OUTPUT.PUT_LINE('SUCCESS: MPEC_CONTENT_CRITERION export completed successfully'); diff --git a/MARS_Packages/REL02_POST/MARS-956/90_MARS_956_rollback_delete_csv_files.sql b/MARS_Packages/REL02_POST/MARS-956/90_MARS_956_rollback_delete_csv_files.sql index 649dc2e..b447418 100644 --- a/MARS_Packages/REL02_POST/MARS-956/90_MARS_956_rollback_delete_csv_files.sql +++ b/MARS_Packages/REL02_POST/MARS-956/90_MARS_956_rollback_delete_csv_files.sql @@ -27,15 +27,14 @@ BEGIN vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName; DBMS_OUTPUT.PUT_LINE('Deleting C2D_MPEC_ADMIN files from DATA bucket...'); + DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-956'''); - -- Delete CSV files from DATA bucket (only files matching export pattern) + -- Delete CSV files registered by MARS-956 process FOR rec IN ( - SELECT object_name - FROM TABLE(DBMS_CLOUD.LIST_OBJECTS( - credential_name => vCredentialName, - location_uri => vDataBucketUri || 'ODS/C2D/C2D_MPEC_ADMIN/' - )) - WHERE object_name LIKE '%.csv' + SELECT SOURCE_FILE_NAME AS object_name + FROM CT_MRDS.A_SOURCE_FILE_RECEIVED + WHERE PROCESS_NAME = 'MARS-956' + AND SOURCE_FILE_NAME LIKE '%MPEC_ADMIN%' ) LOOP BEGIN DBMS_CLOUD.DELETE_OBJECT( @@ -79,15 +78,15 @@ BEGIN vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName; DBMS_OUTPUT.PUT_LINE('Deleting C2D_MPEC_CONTENT files from DATA bucket...'); + DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-956'''); - -- Delete CSV files from DATA bucket (only files matching export pattern) + -- Delete CSV files registered by MARS-956 process FOR rec IN ( - SELECT object_name - FROM TABLE(DBMS_CLOUD.LIST_OBJECTS( - credential_name => vCredentialName, - location_uri => vDataBucketUri || 'ODS/C2D/C2D_MPEC_CONTENT/' - )) - WHERE object_name LIKE '%.csv' + SELECT SOURCE_FILE_NAME AS object_name + FROM CT_MRDS.A_SOURCE_FILE_RECEIVED + WHERE PROCESS_NAME = 'MARS-956' + AND SOURCE_FILE_NAME LIKE '%MPEC_CONTENT%' + AND SOURCE_FILE_NAME NOT LIKE '%CRITERION%' ) LOOP BEGIN DBMS_CLOUD.DELETE_OBJECT( @@ -131,15 +130,14 @@ BEGIN vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName; DBMS_OUTPUT.PUT_LINE('Deleting C2D_MPEC_CONTENT_CRITERION files from DATA bucket...'); + DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-956'''); - -- Delete CSV files from DATA bucket (only files matching export pattern) + -- Delete CSV files registered by MARS-956 process FOR rec IN ( - SELECT object_name - FROM TABLE(DBMS_CLOUD.LIST_OBJECTS( - credential_name => vCredentialName, - location_uri => vDataBucketUri || 'ODS/C2D/C2D_MPEC_CONTENT_CRITERION/' - )) - WHERE object_name LIKE '%.csv' + SELECT SOURCE_FILE_NAME AS object_name + FROM CT_MRDS.A_SOURCE_FILE_RECEIVED + WHERE PROCESS_NAME = 'MARS-956' + AND SOURCE_FILE_NAME LIKE '%MPEC_CONTENT_CRITERION%' ) LOOP BEGIN DBMS_CLOUD.DELETE_OBJECT( diff --git a/MARS_Packages/REL02_POST/MARS-956/91_MARS_956_rollback_file_registrations.sql b/MARS_Packages/REL02_POST/MARS-956/91_MARS_956_rollback_file_registrations.sql index 28ad299..125f916 100644 --- a/MARS_Packages/REL02_POST/MARS-956/91_MARS_956_rollback_file_registrations.sql +++ b/MARS_Packages/REL02_POST/MARS-956/91_MARS_956_rollback_file_registrations.sql @@ -17,34 +17,33 @@ DECLARE vDeletedCount NUMBER := 0; vErrorMsg VARCHAR2(4000); BEGIN - -- Count files to be deleted + -- Count files to be deleted (using PROCESS_NAME) SELECT COUNT(*) INTO vFileCount FROM CT_MRDS.A_SOURCE_FILE_RECEIVED - WHERE SOURCE_FILE_NAME LIKE '200%' -- ETL keys 2001-2010 - AND RECEPTION_DATE >= SYSDATE - 7; -- Last week (safety) + WHERE PROCESS_NAME = 'MARS-956'; DBMS_OUTPUT.PUT_LINE('Files to be deleted: ' || vFileCount); + DBMS_OUTPUT.PUT_LINE('Using PROCESS_NAME = ''MARS-956'' filter'); IF vFileCount > 0 THEN -- Show files before deletion DBMS_OUTPUT.PUT_LINE('Files being removed:'); FOR rec IN ( SELECT A_SOURCE_FILE_RECEIVED_KEY, - SUBSTR(SOURCE_FILE_NAME, 1, 50) AS FILE_NAME, - TO_CHAR(RECEPTION_DATE, 'YYYY-MM-DD HH24:MI:SS') AS RECEIVED_TIME + SUBSTR(SOURCE_FILE_NAME, 1, 60) AS FILE_NAME, + TO_CHAR(RECEPTION_DATE, 'YYYY-MM-DD HH24:MI:SS') AS RECEIVED_TIME, + PROCESS_NAME FROM CT_MRDS.A_SOURCE_FILE_RECEIVED - WHERE SOURCE_FILE_NAME LIKE '200%' - AND RECEPTION_DATE >= SYSDATE - 7 + WHERE PROCESS_NAME = 'MARS-956' ORDER BY RECEPTION_DATE DESC ) LOOP - DBMS_OUTPUT.PUT_LINE('- ' || rec.FILE_NAME || ' (ID: ' || rec.A_SOURCE_FILE_RECEIVED_KEY || ')'); + DBMS_OUTPUT.PUT_LINE('- ' || rec.FILE_NAME || ' (ID: ' || rec.A_SOURCE_FILE_RECEIVED_KEY || ', Process: ' || rec.PROCESS_NAME || ')'); END LOOP; - -- Delete the file registrations + -- Delete the file registrations using PROCESS_NAME DELETE FROM CT_MRDS.A_SOURCE_FILE_RECEIVED - WHERE SOURCE_FILE_NAME LIKE '200%' - AND RECEPTION_DATE >= SYSDATE - 7; + WHERE PROCESS_NAME = 'MARS-956'; vDeletedCount := SQL%ROWCOUNT; COMMIT;