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
|
,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');
|
||||||
|
|||||||
Reference in New Issue
Block a user