open-insight/LSL2/STPROC/WRITE_OI_TO_SQL.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

84 lines
3.3 KiB
Plaintext

Subroutine Write_OI_To_SQL(TransactionID)
#pragma precomp SRP_PreCompiler
$insert LOGICAL
Declare function SQL_Services, Error_Services, Database_Services, Memory_Services, Environment_Services, Logging_Services
Declare subroutine SQL_Services, Error_Services, Memory_Services, Attach_Table, Logging_Services
If TransactionID NE '' then
* (Action, AccountName, Volume, OITableName, OIKeyID) = TransactionID
Action = TransactionID[1, @FM]
If Action EQ 'WRITE' then
AccountName = TransactionID[Col2() + 1, @FM]
Volume = TransactionID[Col2() + 1, @FM]
OITableName = TransactionID[Col2() + 1, @FM]
OIKeyID = TransactionID[Col2() + 1, @FM]
If OIKeyID NE '*' then
OIRow = Database_Services('ReadDataRow', OITableName, OIKeyID)
If Error_Services('NoError') then
SQL_Services('WriteDataRowToSQL', OITableName, OIKeyID, OIRow)
If Error_Services('HasError') then
Message = Error_Services('GetMessage')
* IF OITableName EQ 'RDS' then
* LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Replication'
* LogDate = Oconv(Date(), 'D4/')
* LogTime = Oconv(Time(), 'MTS')
* LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' WRITE_OI_Error.csv'
* Headers = 'Logging DTM' : @FM : 'User' : @FM : 'Table' : @FM : 'Key'
* objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
* LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
*
* ErrTitle = 'Error in ':OITableName
* ErrorMsg = ''
*
* LogData = ''
* LogData<1, 1> = LoggingDTM
* LogData<1, 2> = @User4
* LogData<1, 3> = OITableName
* LogData<1, 4> = OIKeyID
* LogData<1, 5> = Message
* Logging_Services('AppendLog', objLog, LogData, @FM, @VM)
* end
GoSub WriteLog
Error_Services('Add', Message)
end
end else
Message = Error_Services('GetMessage')
GoSub WriteLog
If IndexC(Message, 'Error reading', 1) AND IndexC(Message, 'Error = 100', 1) then
// The error is due to a read error as the result of a missing record. Clear the error.
Error_Services('Clear')
end
end
end
end
end
Return
WriteLog:
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Replication'
LogDate = Oconv(Date(), 'D4/')
LogTime = Oconv(Time(), 'MTS')
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' WRITE_OI_Error.csv'
Headers = 'Logging DTM' : @FM : 'User' : @FM : 'Table' : @FM : 'Key'
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
ErrTitle = 'Error in ':OITableName
ErrorMsg = ''
LogData = ''
LogData<1, 1> = LoggingDTM
LogData<1, 2> = @User4
LogData<1, 3> = OITableName
LogData<1, 4> = OIKeyID
LogData<1, 5> = Message
Logging_Services('AppendLog', objLog, LogData, @FM, @VM)
return