feat(FILE_ARCHIVER): Enhance archival and restoration procedures with additional status handling and debug logging

This commit is contained in:
Grzegorz Michalski
2026-03-26 20:02:58 +01:00
parent 06a233030e
commit 5bb955b858

View File

@@ -285,8 +285,9 @@ AS
,PARTITION_MONTH = ym_loop.month -- Record which partition month the data was archived to ,PARTITION_MONTH = ym_loop.month -- Record which partition month the data was archived to
WHERE r.a_source_file_config_key= pSourceFileConfigKey WHERE r.a_source_file_config_key= pSourceFileConfigKey
AND r.source_file_name = f.filename AND r.source_file_name = f.filename
AND r.processing_status = 'INGESTED' AND r.processing_status IN ('INGESTED', 'READY_FOR_INGESTION') -- READY_FOR_INGESTION for IS_WORKFLOW_SUCCESS_REQUIRED='N' sources
; ;
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Status updated to ARCHIVED_AND_TRASHED: ' || SQL%ROWCOUNT || ' row(s) for file: ' || f.filename, 'DEBUG', vParameters);
EXCEPTION EXCEPTION
WHEN OTHERS THEN WHEN OTHERS THEN
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT(CT_MRDS.ENV_MANAGER.GET_ERROR_STACK(pFormat => 'TABLE', pCode=> SQLCODE), 'ERROR', vParameters); CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT(CT_MRDS.ENV_MANAGER.GET_ERROR_STACK(pFormat => 'TABLE', pCode=> SQLCODE), 'ERROR', vParameters);
@@ -358,11 +359,18 @@ AS
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('File restored from TRASH folder: '||f.pathname||'/'||f.filename,'DEBUG', vParameters); CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('File restored from TRASH folder: '||f.pathname||'/'||f.filename,'DEBUG', vParameters);
UPDATE CT_MRDS.A_SOURCE_FILE_RECEIVED r UPDATE CT_MRDS.A_SOURCE_FILE_RECEIVED r
SET PROCESSING_STATUS = 'INGESTED' -- Restore to original pre-archival status:
-- IS_WORKFLOW_SUCCESS_REQUIRED='Y' → INGESTED (standard DBT flow)
-- IS_WORKFLOW_SUCCESS_REQUIRED='N' → READY_FOR_INGESTION (manual/non-DBT sources)
SET PROCESSING_STATUS = CASE WHEN vSourceFileConfig.IS_WORKFLOW_SUCCESS_REQUIRED = 'N'
THEN 'READY_FOR_INGESTION'
ELSE 'INGESTED'
END
,ARCH_PATH = NULL ,ARCH_PATH = NULL
WHERE r.a_source_file_config_key = pSourceFileConfigKey WHERE r.a_source_file_config_key = pSourceFileConfigKey
AND r.source_file_name = f.filename AND r.source_file_name = f.filename
; ;
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('ROLLBACK: Status restored to ' || CASE WHEN vSourceFileConfig.IS_WORKFLOW_SUCCESS_REQUIRED = 'N' THEN 'READY_FOR_INGESTION' ELSE 'INGESTED' END || ': ' || SQL%ROWCOUNT || ' row(s) for file: ' || f.filename, 'DEBUG', vParameters);
EXCEPTION EXCEPTION
WHEN OTHERS THEN WHEN OTHERS THEN
@@ -681,6 +689,7 @@ AS
WHERE A_SOURCE_FILE_RECEIVED_KEY = pSourceFileReceivedKey WHERE A_SOURCE_FILE_RECEIVED_KEY = pSourceFileReceivedKey
AND PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED'; AND PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED';
vFilesUpdated := SQL%ROWCOUNT; vFilesUpdated := SQL%ROWCOUNT;
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Status updated to INGESTED (restore L3): ' || vFilesUpdated || ' row(s)', 'DEBUG', vParameters);
ELSIF pSourceFileConfigKey IS NOT NULL THEN ELSIF pSourceFileConfigKey IS NOT NULL THEN
vRestoreLevel := 'LEVEL_2_CONFIG_FILES'; vRestoreLevel := 'LEVEL_2_CONFIG_FILES';
@@ -722,6 +731,7 @@ AS
WHERE A_SOURCE_FILE_CONFIG_KEY = pSourceFileConfigKey WHERE A_SOURCE_FILE_CONFIG_KEY = pSourceFileConfigKey
AND PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED'; AND PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED';
vFilesUpdated := SQL%ROWCOUNT; vFilesUpdated := SQL%ROWCOUNT;
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Status updated to INGESTED (restore L2): ' || vFilesUpdated || ' row(s)', 'DEBUG', vParameters);
ELSIF pRestoreAll THEN ELSIF pRestoreAll THEN
vRestoreLevel := 'LEVEL_1_GLOBAL_RESTORE'; vRestoreLevel := 'LEVEL_1_GLOBAL_RESTORE';
@@ -761,6 +771,7 @@ AS
PARTITION_MONTH = NULL PARTITION_MONTH = NULL
WHERE PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED'; WHERE PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED';
vFilesUpdated := SQL%ROWCOUNT; vFilesUpdated := SQL%ROWCOUNT;
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Status updated to INGESTED (restore L1 global): ' || vFilesUpdated || ' row(s)', 'DEBUG', vParameters);
ELSE ELSE
RAISE_APPLICATION_ERROR(-20104, 'No restore level specified. Provide pSourceFileReceivedKey, pSourceFileConfigKey, or set pRestoreAll=TRUE'); RAISE_APPLICATION_ERROR(-20104, 'No restore level specified. Provide pSourceFileReceivedKey, pSourceFileConfigKey, or set pRestoreAll=TRUE');