Merged PR 28822: Added logging for de/re-archiving methods

Added logging for de/re-archiving methods
This commit is contained in:
Ouellette Jonathan (CSC FI SPS MESLEO)
2025-10-20 18:25:05 +00:00
parent 3d786a7916
commit 52b3b20b4e
3 changed files with 1452 additions and 1340 deletions

View File

@ -170,9 +170,6 @@ Service CreateArchiveRecord(ParentRecordId, ArchiveType, ReArchive, AddToQueue)
ErrorMsg = 'Unsupported Archive Type.' ErrorMsg = 'Unsupported Archive Type.'
End Case End Case
If ErrorMsg EQ '' then If ErrorMsg EQ '' then
ArchiveType = Field(ArchiveId, '*', 1)
ParentRecordId = Field(ArchiveId, '*', 2)
ArchiveSeq = Field(ArchiveId, '*', 3)
ArchivePath = Environment_Services('GetTextDataBackupRootDir'):ArchiveType:'\':ParentRecordId:'\':ArchiveSeq:'\' ArchivePath = Environment_Services('GetTextDataBackupRootDir'):ArchiveType:'\':ParentRecordId:'\':ArchiveSeq:'\'
DirectoryCreated = RTI_OS_Directory( 'CREATE', ArchivePath) DirectoryCreated = RTI_OS_Directory( 'CREATE', ArchivePath)
If DirectoryCreated then If DirectoryCreated then
@ -306,7 +303,7 @@ Service ProcessArchiveQueue()
readnext ArchiveQueueId else Done = 1 readnext ArchiveQueueId else Done = 1
until Done until Done
ArchiveId = XLATE('ARCHIVE_QUEUE', ArchiveQueueId, ARCHIVE_QUEUE_ARCHIVE_ID$, 'X') ArchiveId = XLATE('ARCHIVE_QUEUE', ArchiveQueueId, ARCHIVE_QUEUE_ARCHIVE_ID$, 'X')
Archive_Services('ArchiveRecords', ArchiveId, True$) Archive_Services('ArchiveRecords', ArchiveId)
If Error_Services('HasError') then If Error_Services('HasError') then
ProcessError = Error_Services('GetMessage') ProcessError = Error_Services('GetMessage')
Error_Services('Clear') Error_Services('Clear')
@ -358,7 +355,7 @@ Step 2.2 of data archiving procedures.
Parameters - Parameters -
ArchiveId - The key ID to the ARCHIVE record being processed. ArchiveId - The key ID to the ARCHIVE record being processed.
*/ */
Service ArchiveRecords(ArchiveId, AddToDeleteQ) Service ArchiveRecords(ArchiveId)
ErrorMsg = '' ErrorMsg = ''
@ -404,13 +401,11 @@ Service ArchiveRecords(ArchiveId, AddToDeleteQ)
end end
Next Record Next Record
If ErrorMsg EQ '' then If ErrorMsg EQ '' then
if AddToDeleteQ then
Archive_Services('AddToDeleteQueue', ArchiveId) Archive_Services('AddToDeleteQueue', ArchiveId)
If Error_Services('HasError') then If Error_Services('HasError') then
ErrorMsg = Error_Services('GetMessage') ErrorMsg = Error_Services('GetMessage')
end end
end end
end
end else end else
ErrorMsg = 'Archive record had zero child records.' ErrorMsg = 'Archive record had zero child records.'
end end
@ -1079,7 +1074,7 @@ Service DeleteRecord(TableName, RecordId)
If RowExists(TableName, RecordId) then If RowExists(TableName, RecordId) then
TableHandle = Database_Services('GetTableHandle', TableName) TableHandle = Database_Services('GetTableHandle', TableName)
If Error_Services('NoError') then If Error_Services('NoError') then
RetryCount = 10 RetryCount = 3
Done = False$ Done = False$
for i = 1 to RetryCount for i = 1 to RetryCount
Until Done Until Done
@ -1349,11 +1344,26 @@ Parameters-
*/ */
Service DeArchiveDataFromTxt(ArchiveId) Service DeArchiveDataFromTxt(ArchiveId)
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Archive\DeArchiving'
LogDate = Oconv(Date(), 'D4/')
LogTime = Oconv(Time(), 'MTS')
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' ArchiveService.csv'
Headers = 'Logging DTM' : @FM : 'ArchiveId' : @FM : 'Message'
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime
ErrorMsg = '' ErrorMsg = ''
DeArchiveSuccess = False$ DeArchiveSuccess = False$
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = 'Attempting to de-archive data.'
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
If ArchiveId NE '' then If ArchiveId NE '' then
If RowExists('ARCHIVE', ArchiveId) then If RowExists('ARCHIVE', ArchiveId) then
ArchiveRec = Database_Services('ReadDataRow', 'ARCHIVE', ArchiveId) ArchiveRec = Database_Services('ReadDataRow', 'ARCHIVE', ArchiveId)
If Error_Services('NoError') then If Error_Services('NoError') then
//Set the de-archive dtm. //Set the de-archive dtm.
@ -1361,17 +1371,12 @@ Service DeArchiveDataFromTxt(ArchiveId)
ArchiveFilesPath = ArchiveRec<ARCHIVE_ARCHIVE_PATH$> ArchiveFilesPath = ArchiveRec<ARCHIVE_ARCHIVE_PATH$>
for i = DCount(ArchiveRec<ARCHIVE_CHILD_RECORD$>, @VM) to 1 step -1 for i = DCount(ArchiveRec<ARCHIVE_CHILD_RECORD$>, @VM) to 1 step -1
until ErrorMsg NE '' until ErrorMsg NE ''
RetryLimit = 10
RetryCount = 1
RecordExists = False$ RecordExists = False$
ErrorMsg = ''
Loop
Until RecordExists OR RetryCount EQ RetryLimit
RetryCount += 1
RecordId = ArchiveRec<ARCHIVE_CHILD_RECORD$, i> RecordId = ArchiveRec<ARCHIVE_CHILD_RECORD$, i>
TableName = ArchiveRec<ARCHIVE_CHILD_TABLE$, i> TableName = ArchiveRec<ARCHIVE_CHILD_TABLE$, i>
RecordDeArchived = ArchiveRec<ARCHIVE_CHILD_RECORD_DE_ARCHIVED$, i> RecordDeArchived = ArchiveRec<ARCHIVE_CHILD_RECORD_DE_ARCHIVED$, i>
If Not(RecordDeArchived) then If Not(RecordDeArchived) then
If Not(RowExists(RecordTable, TableName)) then
TxtFilePath = ArchiveFilesPath TxtFilePath = ArchiveFilesPath
TxtFileName = TableName : '-' : RecordId : '.txt' TxtFileName = TableName : '-' : RecordId : '.txt'
swap '*' with '%2A' in TxtFileName swap '*' with '%2A' in TxtFileName
@ -1384,8 +1389,20 @@ Service DeArchiveDataFromTxt(ArchiveId)
if Error_Services('NoError') then if Error_Services('NoError') then
If RowExists(TableName, RecordId) then If RowExists(TableName, RecordId) then
RecordExists = True$ RecordExists = True$
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = 'Successfully de-archived record ' : TableName : ' -> ' : RecordId : '.'
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
Error_Services('Clear'); // Clear any error message that may have been created as a result of Logging.
end else end else
ErrorMsg = 'An unspecified error occured saving the record.' ErrorMsg = 'An unspecified error occured saving the record.'
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = ErrorMsg : ' ' : TableName : ' -> ' : RecordId : '.'
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
Error_Services('Clear'); // Clear any error message that may have been created as a result of Logging.
end end
end else end else
ErrorMsg = Error_Services('GetMessage') ErrorMsg = Error_Services('GetMessage')
@ -1393,7 +1410,9 @@ Service DeArchiveDataFromTxt(ArchiveId)
GoSub ReAddMFS GoSub ReAddMFS
end end
end end
end else
RecordExists = True$
end
If RecordExists then If RecordExists then
ArchiveRec<ARCHIVE_CHILD_RECORD_DE_ARCHIVED$, i> = True$ ArchiveRec<ARCHIVE_CHILD_RECORD_DE_ARCHIVED$, i> = True$
ArchiveRec<ARCHIVE_CHILD_RECORD_ARCHIVED$, i> = False$ ArchiveRec<ARCHIVE_CHILD_RECORD_ARCHIVED$, i> = False$
@ -1402,7 +1421,6 @@ Service DeArchiveDataFromTxt(ArchiveId)
ErrorMsg = 'An unspecified error occured saving the record.' ErrorMsg = 'An unspecified error occured saving the record.'
end end
end end
Repeat
Next i Next i
Database_Services('WriteDataRow', 'ARCHIVE', ArchiveId, ArchiveRec, True$, 0, False$) Database_Services('WriteDataRow', 'ARCHIVE', ArchiveId, ArchiveRec, True$, 0, False$)
If Error_Services('HasError') then If Error_Services('HasError') then
@ -1418,6 +1436,18 @@ Service DeArchiveDataFromTxt(ArchiveId)
ErrorMsg = 'ArchiveId was null.' ErrorMsg = 'ArchiveId was null.'
end end
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
If ErrorMsg EQ '' then
LogData<3> = 'Finished De-Archive from txt procedure.'
end else
LogData<3> = 'Finished De-Archive from txt procedure with errors. ' : ErrorMsg
end
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
Error_Services('Clear')
If ErrorMsg EQ '' then If ErrorMsg EQ '' then
Response = True$ Response = True$
end else end else
@ -1479,9 +1509,23 @@ end service
Service ReArchive(ArchiveId) Service ReArchive(ArchiveId)
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Archive\ReArchiving'
LogDate = Oconv(Date(), 'D4/')
LogTime = Oconv(Time(), 'MTS')
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' ArchiveService.csv'
Headers = 'Logging DTM' : @FM : 'ArchiveId' : @FM : 'Message'
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime
ErrorMsg = '' ErrorMsg = ''
NewArchiveId = '' NewArchiveId = ''
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = 'Attempting to re-archive data.'
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
If RowExists('ARCHIVE', ArchiveId) then If RowExists('ARCHIVE', ArchiveId) then
OrigArchiveRec = Database_Services('ReadDataRow', 'ARCHIVE', ArchiveId, True$, 0, False$) OrigArchiveRec = Database_Services('ReadDataRow', 'ARCHIVE', ArchiveId, True$, 0, False$)
If Error_Services('NoError') then If Error_Services('NoError') then
@ -1500,6 +1544,17 @@ Service ReArchive(ArchiveId)
ErrorMsg = 'Archive record did not exist.' ErrorMsg = 'Archive record did not exist.'
end end
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
If ErrorMsg EQ '' then
LogData<3> = 'Finished De-Archive from txt procedure.'
end else
LogData<3> = 'Finished De-Archive from txt procedure with errors. ' : ErrorMsg
end
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
Error_Services('Clear')
If ErrorMsg NE '' then If ErrorMsg NE '' then
Error_Services('Add', ErrorMsg) Error_Services('Add', ErrorMsg)
end end
@ -1507,6 +1562,8 @@ Service ReArchive(ArchiveId)
Reponse = NewArchiveId Reponse = NewArchiveId
end service end service
Service GenerateArchiveCreationReport(ArchiveIds) Service GenerateArchiveCreationReport(ArchiveIds)
@ -1613,4 +1670,3 @@ return

View File

@ -43,8 +43,8 @@ $insert API_SETUP
$insert HTTP_INSERTS $insert HTTP_INSERTS
$Insert IFX_EQUATES $Insert IFX_EQUATES
Declare subroutine Service_Services Declare subroutine Service_Services, Logging_Services
Declare function OI_Wizard_Services Declare function OI_Wizard_Services, Logging_Services, Environment_Services
GoToAPI else GoToAPI else
// The specific resource endpoint doesn't have a API handler yet. // The specific resource endpoint doesn't have a API handler yet.
@ -61,6 +61,14 @@ Return Response OR ''
API dearchive.ID.POST API dearchive.ID.POST
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Archive\DeArchiving'
LogDate = Oconv(Date(), 'D4/')
LogTime = Oconv(Time(), 'MTS')
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' ArchiveService.csv'
Headers = 'Logging DTM' : @FM : 'Message'
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime
ErrorMsg = '' ErrorMsg = ''
OIWizardID = '' OIWizardID = ''
Cookies = HTTP_Services('GetHTTPCookie') Cookies = HTTP_Services('GetHTTPCookie')
@ -75,16 +83,36 @@ API dearchive.ID.POST
If ValidSession then If ValidSession then
ArchiveId = EndpointSegment ArchiveId = EndpointSegment
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = 'Attempting to add de-archival to the process queue.'
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
swap '__' with '*' in ArchiveId swap '__' with '*' in ArchiveId
If RowExists('ARCHIVE', ArchiveId) then If RowExists('ARCHIVE', ArchiveId) then
Service_Services('PostProcedure', 'ARCHIVE_SERVICES', 'DeArchiveDataFromTxt':SD$:ArchiveId) Service_Services('PostProcedure', 'ARCHIVE_SERVICES', 'DeArchiveDataFromTxt':SD$:ArchiveId)
If Error_Services('NoError') then If Error_Services('NoError') then
Message = 'Successfully queued data for de-archive.' Message = 'Successfully queued data for de-archive.'
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = Message
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
end else end else
ErrorMsg = 'Error queueing de-archiving.' ErrorMsg = 'Error queueing de-archiving.'
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = ErrorMsg
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
end end
end else end else
ErrorMsg = 'Archive record not found in database.' ErrorMsg = 'Archive record not found in database.'
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = ErrorMsg
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
end end
If ErrorMsg NE '' then If ErrorMsg NE '' then

View File

@ -43,8 +43,8 @@ $insert API_SETUP
$insert HTTP_INSERTS $insert HTTP_INSERTS
$Insert IFX_EQUATES $Insert IFX_EQUATES
Declare subroutine Service_Services Declare subroutine Service_Services, Logging_Services
Declare function OI_Wizard_Services Declare function OI_Wizard_Services, Environment_Services, Logging_Services
GoToAPI else GoToAPI else
// The specific resource endpoint doesn't have a API handler yet. // The specific resource endpoint doesn't have a API handler yet.
@ -61,6 +61,14 @@ Return Response OR ''
API rearchive.ID.POST API rearchive.ID.POST
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Archive\ReArchiving'
LogDate = Oconv(Date(), 'D4/')
LogTime = Oconv(Time(), 'MTS')
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' ArchiveService.csv'
Headers = 'Logging DTM' : @FM : 'Message'
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime
ErrorMsg = '' ErrorMsg = ''
OIWizardID = '' OIWizardID = ''
Cookies = HTTP_Services('GetHTTPCookie') Cookies = HTTP_Services('GetHTTPCookie')
@ -75,16 +83,36 @@ API rearchive.ID.POST
If ValidSession then If ValidSession then
ArchiveId = EndpointSegment ArchiveId = EndpointSegment
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = 'Attempting to add re-archival to the process queue.'
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
swap '__' with '*' in ArchiveId swap '__' with '*' in ArchiveId
If RowExists('ARCHIVE', ArchiveId) then If RowExists('ARCHIVE', ArchiveId) then
Service_Services('PostProcedure', 'ARCHIVE_SERVICES', 'ReArchive':SD$:ArchiveId) Service_Services('PostProcedure', 'ARCHIVE_SERVICES', 'ReArchive':SD$:ArchiveId)
If Error_Services('NoError') then If Error_Services('NoError') then
Message = 'Successfully queued data for re-archive.' Message = 'Successfully queued data for re-archive.'
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = Message
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
end else end else
ErrorMsg = 'Error queueing re-archiving.' ErrorMsg = 'Error queueing re-archiving.'
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = ErrorMsg
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
end end
end else end else
ErrorMsg = 'Archive record not found in database.' ErrorMsg = 'Archive record not found in database.'
LogData = ''
LogData<1> = LoggingDTM;
LogData<2> = ArchiveId
LogData<3> = ErrorMsg
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
end end
If ErrorMsg NE '' then If ErrorMsg NE '' then