Enhance MARS-956 export and rollback scripts with process tracking identifier

This commit is contained in:
Grzegorz Michalski
2026-02-13 08:39:39 +01:00
parent 0053ecc556
commit 255044f23b
3 changed files with 35 additions and 35 deletions

View File

@@ -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');

View File

@@ -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(

View File

@@ -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;