created transaction queue to process database writes and deletes in first in first out order
This commit is contained in:
@ -865,108 +865,20 @@ return
|
||||
|
||||
WRITE_RECORD:
|
||||
|
||||
StartTick = GetTickCount()
|
||||
StartTick = GetTickCount()
|
||||
MetricName = 'WriteRecord'
|
||||
|
||||
WONo = Record<RDS_WO$>
|
||||
|
||||
ReactType = Xlate('WO_LOG', WONo, 'REACT_TYPE', 'X')
|
||||
EpiPro = (ReactType EQ 'EPP')
|
||||
GaN = (ReactType EQ 'GAN')
|
||||
NonEpiPro = ( (ReactType NE 'EPP') and (ReactType NE 'GAN') )
|
||||
|
||||
If NonEpiPro then
|
||||
// Sync up VER, LOAD, UNLOAD, POST, and QA signatures with WO_MAT signature profile.
|
||||
// The goal of signature services was to remove any dependency on the WO_MAT signature profile,
|
||||
// however Fabtime relies on this data being replicated to the Scrape SQL DB.
|
||||
WOMatKey = {WO_MAT_KEY}
|
||||
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
||||
WOMatSigProf = obj_WO_Mat('CassSigProfile', WOMatKey)
|
||||
WOMatSig = WOMatRec<WO_MAT_SIGNATURE$>
|
||||
WOMatSigDTM = WOMatRec<WO_MAT_SIG_DTM$>
|
||||
|
||||
// Update WO_MAT signature profile to match for the "1VER" stage
|
||||
Stage = '1VER'
|
||||
Locate Stage in WOMatSigProf using @VM setting vPos then
|
||||
WOMatSig<0, vPos> = Record<RDS_PRE_EPI_SIG$>
|
||||
PreEpiDate = Record<RDS_PRE_EPI_SIG_DATE$>
|
||||
If PreEpiDate NE '' then
|
||||
PreEpiTime = Record<RDS_PRE_EPI_SIG_TIME$>
|
||||
PreEpiSigDTM = PreEpiDate + (PreEpiTime/86400)
|
||||
end else
|
||||
PreEpiSigDTM = ''
|
||||
end
|
||||
WOMatSigDTM<0, vPos> = PreEpiSigDTM
|
||||
end
|
||||
|
||||
// Update WO_MAT signature profile to match for "1LOAD" stage
|
||||
Stage = '1LOAD'
|
||||
Locate Stage in WOMatSigProf using @VM setting vPos then
|
||||
WOMatSig<0, vPos> = Record<RDS_OPERATOR_IN$>
|
||||
DateIn = Record<RDS_DATE_IN$>
|
||||
If DateIn NE '' then
|
||||
LoadTime = Record<RDS_TIME_IN$>
|
||||
LoadSigDTM = DateIn + (LoadTime/86400)
|
||||
end else
|
||||
LoadSigDTM = ''
|
||||
end
|
||||
WOMatSigDTM<0, vPos> = LoadSigDTM
|
||||
end
|
||||
|
||||
// Update WO_MAT signature profile to match for the "1UNLOAD" stage
|
||||
Stage = '1UNLOAD'
|
||||
Locate Stage in WOMatSigProf using @VM setting vPos then
|
||||
WOMatSig<0, vPos> = Record<RDS_OPERATOR_OUT$>
|
||||
DateOut = Record<RDS_DATE_OUT$>
|
||||
If DateOut NE '' then
|
||||
TimeOut = Record<RDS_TIME_OUT$>
|
||||
TimeOutSigDTM = DateOut + (TimeOut/86400)
|
||||
end else
|
||||
TimeOutSigDTM = ''
|
||||
end
|
||||
WOMatSigDTM<0, vPos> = TimeOutSigDTM
|
||||
end
|
||||
|
||||
// Update WO_MAT signature profile to match for the "1POST" stage
|
||||
Stage = '1POST'
|
||||
Locate Stage in WOMatSigProf using @VM setting vPos then
|
||||
WOMatSig<0, vPos> = Record<RDS_POST_EPI_SIG$>
|
||||
PostSigDate = Record<RDS_POST_EPI_SIG_DATE$>
|
||||
If PostSigDate NE '' then
|
||||
PostSigTime = Record<RDS_POST_EPI_SIG_TIME$>
|
||||
PostSigDTM = PostSigDate + (PostSigTime/86400)
|
||||
end else
|
||||
PostSigDTM = ''
|
||||
end
|
||||
WOMatSigDTM<0, vPos> = PostSigDTM
|
||||
end
|
||||
|
||||
// Update WO_MAT signature profile to match for the "1QA" stage
|
||||
Stage = '1QA'
|
||||
Locate Stage in WOMatSigProf using @VM setting vPos then
|
||||
WOMatSig<0, vPos> = Record<RDS_SUP_VER_SIG$>
|
||||
FQADate = Record<RDS_SUP_VER_SIG_DATE$>
|
||||
If FQADate NE '' then
|
||||
FQASigTime = Record<RDS_SUP_VER_SIG_TIME$>
|
||||
FQASigDTM = FQADate + (FQASigTime/86400)
|
||||
end else
|
||||
FQASigDTM = ''
|
||||
end
|
||||
WOMatSigDTM<0, vPos> = FQASigDTM
|
||||
end
|
||||
|
||||
WOMatRec<WO_MAT_SIG_PROFILE$> = WOMatSigProf
|
||||
WOMatRec<WO_MAT_SIGNATURE$> = WOMatSig
|
||||
WOMatRec<WO_MAT_SIG_DTM$> = WOMatSigDTM
|
||||
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$)
|
||||
end
|
||||
Service_Services('PostProcedure', 'RDS_SERVICES', 'PushSigProfileToWoMat':@VM:Name)
|
||||
|
||||
OrigDateOut = OrigRecord<RDS_DATE_OUT$>
|
||||
NewDateOut = Record<RDS_DATE_OUT$>
|
||||
|
||||
If ( ( (OrigDateOut EQ '') and (NewDateOut NE '') ) ) then
|
||||
// Mark this cassette as processed in the schedule event record
|
||||
WONo = Record<RDS_WO$>
|
||||
DatetimeOut = {DATETIME_OUT}
|
||||
ReactType = Xlate('WO_LOG', WONo, 'REACT_TYPE', 'X')
|
||||
EpiPro = (ReactType EQ 'EPP')
|
||||
If EpiPro then
|
||||
WMIKeys = {WM_IN_KEY}
|
||||
For each WMIKey in WMIKeys using @VM setting vPos
|
||||
@ -1062,5 +974,3 @@ Restore_System_Variables:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user