feat(FILE_ARCHIVER): Enhance archival and restoration procedures with additional status handling and debug logging
This commit is contained in:
@@ -285,8 +285,9 @@ AS
|
||||
,PARTITION_MONTH = ym_loop.month -- Record which partition month the data was archived to
|
||||
WHERE r.a_source_file_config_key= pSourceFileConfigKey
|
||||
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
|
||||
WHEN OTHERS THEN
|
||||
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);
|
||||
|
||||
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
|
||||
WHERE r.a_source_file_config_key = pSourceFileConfigKey
|
||||
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
|
||||
WHEN OTHERS THEN
|
||||
@@ -681,6 +689,7 @@ AS
|
||||
WHERE A_SOURCE_FILE_RECEIVED_KEY = pSourceFileReceivedKey
|
||||
AND PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED';
|
||||
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
|
||||
vRestoreLevel := 'LEVEL_2_CONFIG_FILES';
|
||||
@@ -722,6 +731,7 @@ AS
|
||||
WHERE A_SOURCE_FILE_CONFIG_KEY = pSourceFileConfigKey
|
||||
AND PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED';
|
||||
vFilesUpdated := SQL%ROWCOUNT;
|
||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Status updated to INGESTED (restore L2): ' || vFilesUpdated || ' row(s)', 'DEBUG', vParameters);
|
||||
|
||||
ELSIF pRestoreAll THEN
|
||||
vRestoreLevel := 'LEVEL_1_GLOBAL_RESTORE';
|
||||
@@ -761,6 +771,7 @@ AS
|
||||
PARTITION_MONTH = NULL
|
||||
WHERE PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED';
|
||||
vFilesUpdated := SQL%ROWCOUNT;
|
||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Status updated to INGESTED (restore L1 global): ' || vFilesUpdated || ' row(s)', 'DEBUG', vParameters);
|
||||
|
||||
ELSE
|
||||
RAISE_APPLICATION_ERROR(-20104, 'No restore level specified. Provide pSourceFileReceivedKey, pSourceFileConfigKey, or set pRestoreAll=TRUE');
|
||||
|
||||
Reference in New Issue
Block a user