added LSL2 stored procedures
This commit is contained in:
579
LSL2/STPROC/OBJ_REACT_STATUS.txt
Normal file
579
LSL2/STPROC/OBJ_REACT_STATUS.txt
Normal file
@ -0,0 +1,579 @@
|
||||
COMPILE FUNCTION obj_React_Status(Method,Parms)
|
||||
/*
|
||||
Methods for the Reactor Mode (REACT_STATUS) table
|
||||
|
||||
10/02/2006 JCH - Initial Coding
|
||||
|
||||
Properties:
|
||||
|
||||
Methods:
|
||||
|
||||
SetOutOfProdDTM(React,OutOfProdDTM) ;* Create new React Mode record
|
||||
SetUnloadDTM(React,UnloadDTM)
|
||||
CassLoad(ReactNo,WONo,CassNo,LoadDTM) ;* Cass Load signoff button pressed
|
||||
;* Loads may overlap in time (operators sign off BEFORE doing the work.
|
||||
;* This returns a Date-Time for the PrevReactUnloadDTM
|
||||
|
||||
CassUnload(ReactNo,WONo,CassNo,UnloadDTM) ;* Cass Unload signoff button pressed. Removes load WONo & CassNo & Resets UnoadDTM
|
||||
|
||||
*/
|
||||
#pragma precomp SRP_PreCompiler
|
||||
|
||||
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Dialog_Box,NextKey, Popup, Get_Property, Database_Services
|
||||
DECLARE FUNCTION Error_Services, Environment_Services, Logging_Services, Override_Log_Services
|
||||
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, Btree.Extract, ErrMsg, Database_Services, Rlist
|
||||
DECLARE SUBROUTINE Logging_Services
|
||||
|
||||
$INSERT LOGICAL
|
||||
$INSERT MSG_EQUATES
|
||||
$INSERT REACT_STATUS_EQUATES
|
||||
$INSERT REACTOR_EQUATES
|
||||
$INSERT WO_MAT_EQUATES
|
||||
$INSERT RLIST_EQUATES
|
||||
$INSERT OVERRIDE_LOG_EQUATES
|
||||
|
||||
EQU CRLF$ TO \0D0A\
|
||||
EQU Comma$ to ','
|
||||
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
LogTime = Oconv(Time(), 'MTS')
|
||||
LoggingDTM = LogDate : ' ' : LogTime
|
||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\ReactStatus'
|
||||
LogFilename = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' React Status.csv'
|
||||
Headers = 'Logging DTM' : @FM : 'User' : @FM : 'CassNo' : @FM : 'RDSNo' : @FM : 'Load DTM' : @FM : 'Service' : @FM : 'Notes'
|
||||
objReactStatusLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
|
||||
|
||||
ErrTitle = 'Error in Stored Procedure "obj_React_Status"'
|
||||
ErrorMsg = ''
|
||||
|
||||
IF NOT(ASSIGNED(Method)) THEN ErrorMsg = 'Unassigned parameter "Method" passed to subroutine'
|
||||
IF NOT(ASSIGNED(Parms)) THEN Parms = ''
|
||||
|
||||
IF ErrorMsg NE '' THEN
|
||||
Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
|
||||
RETURN ''
|
||||
END
|
||||
|
||||
Result = ''
|
||||
|
||||
BEGIN CASE
|
||||
CASE Method = 'SetOutOfProdDTM' ; GOSUB SetOutOfProdDTM
|
||||
CASE Method = 'CassLoad' ; GOSUB CassLoad
|
||||
CASE Method = 'CassUnload' ; GOSUB CassUnload
|
||||
CASE Method = 'ReactorLoad' ; GOSUB ReactorLoad
|
||||
CASE Method = 'ReactorUnload' ; GOSUB ReactorUnload
|
||||
CASE Method = 'CleanHouse' ; GOSUB CleanHouse
|
||||
CASE Method = 'HandleLoadUnsign' ; GOSUB HandleLoadUnsign
|
||||
CASE Method = 'HandleUnloadUnsign' ; GOSUB HandleUnloadUnsign
|
||||
|
||||
CASE 1
|
||||
ErrorMsg = 'Unknown Method ':QUOTE(Method):' passed to routine.'
|
||||
|
||||
END CASE
|
||||
|
||||
IF ErrorMsg NE '' THEN
|
||||
Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
|
||||
RETURN ''
|
||||
END
|
||||
|
||||
RETURN Result
|
||||
|
||||
|
||||
* * * * * * *
|
||||
SetOutOfProdDTM:
|
||||
* * * * * * *
|
||||
|
||||
ReactNo = Parms[1,@RM]
|
||||
OutOfProdDTM = Parms[COL2()+1,@RM]
|
||||
|
||||
IF ReactNo = '' THEN ErrorMsg = 'Null parameter ReactNo passed to routine (':Method:').'
|
||||
IF OutOfProdDTM = '' THEN ErrorMsg = 'Null parameter OutOfProdDTM passed to routine (':Method:').'
|
||||
|
||||
IF ErrorMsg NE '' THEN RETURN
|
||||
|
||||
thisOutOfProdDTM = ICONV(OutOfProdDTM,'DT')
|
||||
IF thisOutOfProdDTM = '' THEN
|
||||
ErrorMsg = 'Invalid value ':QUOTE(OutOfProdDTM):' passed for parameter OutOfProdDTM (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
Test = XLATE('REACTOR',ReactNo,'','X')
|
||||
IF Test = '' THEN
|
||||
ErrorMsg = 'Invalid Reactor Number ':QUOTE(ReactNo):' passed to routine (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
ReactStatRec = Database_Services('ReadDataRow', 'REACT_STATUS', ReactNo)
|
||||
|
||||
IF Get_Status(errCode) or Error_Services('HasError') THEN
|
||||
ErrorMsg = 'Unable to read REACT_STATUS record ':ReactNo:' for update (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
ReactStatRec<REACT_STATUS_OUT_OF_PROD_DTM$> = thisOutOfProdDTM
|
||||
|
||||
Database_Services('WriteDataRow', 'REACT_STATUS', ReactNo, ReactStatRec, True$, False$, True$)
|
||||
|
||||
If Error_Services('HasError') then
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
CassLoad:
|
||||
* * * * * * *
|
||||
|
||||
ReactNo = Parms[1,@RM]
|
||||
WONo = Parms[COL2()+1,@RM]
|
||||
CassNo = Parms[COL2()+1,@RM]
|
||||
LoadDTM = Parms[COL2()+1,@RM]
|
||||
RDSNo = Parms[COL2()+1,@RM]
|
||||
|
||||
IF ReactNo = '' THEN ErrorMsg = 'Null parameter ReactNo passed to routine (':Method:').'
|
||||
IF WONo = '' THEN ErrorMsg = 'Null parameter WONo passed to routine (':Method:').'
|
||||
IF CassNo = '' THEN ErrorMsg = 'Null parameter CassNo passed to routine (':Method:').'
|
||||
IF LoadDTM = '' THEN ErrorMsg = 'Null parameter LoadDTM passed to routine (':Method:').'
|
||||
IF RDSNo = '' THEN ErrorMsg = 'Null parameter RDSNo passed to routine(':Method:').'
|
||||
|
||||
IF ErrorMsg NE '' THEN RETURN
|
||||
|
||||
thisLoadDTM = ICONV(LoadDTM,'DT')
|
||||
IF thisLoadDTM = '' THEN
|
||||
ErrorMsg = 'Invalid value ':QUOTE(LoadDTM):' passed for parameter LoadDTM (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
ReactRec = XLATE('REACTOR',ReactNo,'','X')
|
||||
|
||||
IF ReactRec = '' THEN
|
||||
ErrorMsg = 'Invalid Reactor Number ':QUOTE(ReactNo):' passed to routine (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
IF ReactRec<REACTOR_REACT_TYPE$> = 'EPP' THEN RETURN ;* CassLoad is for non EpiPro
|
||||
|
||||
ReactStatRec = Database_Services('ReadDataRow', 'REACT_STATUS', ReactNo)
|
||||
|
||||
IF Get_Status(errCode) or Error_Services('HasError') THEN
|
||||
ErrorMsg = 'Unable to read REACT_STATUS record ':ReactNo:' for update (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
CassID = WONo:'*':CassNo
|
||||
|
||||
* PrevLoadedCassCnt = COUNT(ReactStatRec<REACT_STATUS_LOAD_CASS_ID$>,@VM) + (ReactStatRec<REACT_STATUS_LOAD_CASS_ID$> NE '')
|
||||
PrevLoadedCassCnt = DCount(ReactStatRec<REACT_STATUS_LOAD_RDS$>, @VM)
|
||||
ReactStatRec = INSERT(ReactStatRec,REACT_STATUS_LOAD_CASS_ID$,PrevLoadedCassCnt+1,0,CassID)
|
||||
ReactStatRec = INSERT(ReactStatRec,REACT_STATUS_LOAD_DTM$,PrevLoadedCassCnt+1,0,thisLoadDTM)
|
||||
ReactStatRec<REACT_STATUS_LOAD_RDS$, -1> = RDSNo
|
||||
ReactStatRec<REACT_STATUS_LOAD_RDS_DTM$, -1> = thisLoadDTM
|
||||
|
||||
Database_Services('WriteDataRow', 'REACT_STATUS', ReactNo, ReactStatRec, True$, False$, True$)
|
||||
|
||||
If Error_Services('HasError') then
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDTM
|
||||
LogData<2> = @User4
|
||||
LogData<3> = CassNo
|
||||
LogData<4> = RDSNo
|
||||
LogData<5> = LoadDTM
|
||||
LogData<6> = 'obj_React_Status'
|
||||
LogData<7> = ErrorMsg
|
||||
Logging_Services('AppendLog', objReactStatusLog, LogData, @RM, @FM)
|
||||
end
|
||||
|
||||
IF ReactStatRec<REACT_STATUS_UNLOAD_RDS_DTM$> = '' THEN
|
||||
UnloadDTM = thisLoadDTM
|
||||
END ELSE
|
||||
UnloadDTM = ReactStatRec<REACT_STATUS_UNLOAD_RDS_DTM$,1>
|
||||
END
|
||||
|
||||
IF PrevLoadedCassCnt > 0 THEN
|
||||
IdleTime = 0
|
||||
END ELSE
|
||||
IdleTime = thisLoadDTM - UnloadDTM
|
||||
END
|
||||
|
||||
IF IdleTime < 0 THEN IdleTime = 0
|
||||
|
||||
IdleTime = OCONV(ICONV(IdleTime*24,'MD2'),'MD2,')
|
||||
|
||||
Result = IdleTime
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
CassUnload:
|
||||
* * * * * * *
|
||||
|
||||
ReactNo = Parms[1,@RM]
|
||||
WONo = Parms[COL2()+1,@RM]
|
||||
CassNo = Parms[COL2()+1,@RM]
|
||||
UnloadDTM = Parms[COL2()+1,@RM]
|
||||
RDSNo = Parms[COL2()+1,@RM]
|
||||
|
||||
IF ReactNo = '' THEN ErrorMsg = 'Null parameter ReactNo passed to routine (':Method:').'
|
||||
IF WONo = '' THEN ErrorMsg = 'Null parameter WONo passed to routine (':Method:').'
|
||||
IF CassNo = '' THEN ErrorMsg = 'Null parameter CassNo passed to routine (':Method:').'
|
||||
IF UnloadDTM = '' THEN ErrorMsg = 'Null parameter UnloadDTM passed to routine (':Method:').'
|
||||
IF RDSNo = '' THEN ErrorMsg = 'Null parameter RDSNo passed to routine (':Method:').'
|
||||
|
||||
IF ErrorMsg NE '' THEN RETURN
|
||||
|
||||
thisUnloadDTM = ICONV(UnloadDTM,'DT')
|
||||
IF thisUnloadDTM = '' THEN
|
||||
ErrorMsg = 'Invalid value ':QUOTE(UnloadDTM):' passed for parameter UnloadDTM (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
ReactRec = XLATE('REACTOR',ReactNo,'','X')
|
||||
IF ReactRec = '' THEN
|
||||
ErrorMsg = 'Invalid Reactor Number ':QUOTE(ReactNo):' passed to routine (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
IF ReactRec<REACTOR_REACT_TYPE$> = 'EPP' THEN RETURN ;* CassUnload is for non EpiPro
|
||||
|
||||
ReactStatRec = Database_Services('ReadDataRow', 'REACT_STATUS', ReactNo)
|
||||
|
||||
IF Get_Status(errCode) or Error_Services('HasError') THEN
|
||||
ErrorMsg = 'Unable to read REACT_STATUS record ':ReactNo:' for update (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
CassID = WONo:'*':CassNo
|
||||
|
||||
LoadedCass = ReactStatRec<REACT_STATUS_LOAD_CASS_ID$>
|
||||
|
||||
Locate CassID in LoadedCass using @VM setting vPos then
|
||||
ReactStatRec = DELETE(ReactStatRec,REACT_STATUS_LOAD_CASS_ID$,vPos,0)
|
||||
ReactStatRec = DELETE(ReactStatRec,REACT_STATUS_LOAD_DTM$,vPos,0)
|
||||
end
|
||||
|
||||
LoadedRDS = ReactStatRec<REACT_STATUS_LOAD_RDS$>
|
||||
Locate RDSNo in LoadedRDS using @VM setting vPos then
|
||||
ReactStatRec = Delete(ReactStatRec, REACT_STATUS_LOAD_RDS$, vPos, 0)
|
||||
ReactStatRec = Delete(ReactStatRec, REACT_STATUS_LOAD_RDS_DTM$, vPos, 0)
|
||||
end
|
||||
|
||||
ReactStatRec<REACT_STATUS_UNLOAD_DTM$> = thisUnloadDTM
|
||||
ReactStatRec<REACT_STATUS_UNLOAD_CASS_ID$> = CassID ;* Added 11/14/2008 JCH
|
||||
|
||||
ReactStatRec<REACT_STATUS_UNLOAD_RDS_DTM$> = thisUnloadDTM
|
||||
ReactStatRec<REACT_STATUS_UNLOAD_RDS$> = RDSNo
|
||||
|
||||
Database_Services('WriteDataRow', 'REACT_STATUS', ReactNo, ReactStatRec, True$, False$, True$)
|
||||
If Error_Services('HasError') then
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
ReactorLoad:
|
||||
* * * * * * *
|
||||
|
||||
* EpiPro Reactor Load
|
||||
|
||||
ReactNo = Parms[1,@RM]
|
||||
WONo = Parms[COL2()+1,@RM]
|
||||
CassNos = Parms[COL2()+1,@RM]
|
||||
LoadDTM = Parms[COL2()+1,@RM]
|
||||
RDSNos = Parms[COL2()+1,@RM]
|
||||
|
||||
IF ReactNo = '' THEN ErrorMsg = 'Null parameter ReactNo passed to routine (':Method:').'
|
||||
IF WONo = '' THEN ErrorMsg = 'Null parameter WONo passed to routine (':Method:').'
|
||||
IF CassNos = '' THEN ErrorMsg = 'Null parameter CassNos passed to routine (':Method:').'
|
||||
IF LoadDTM = '' THEN ErrorMsg = 'Null parameter LoadDTM passed to routine (':Method:').'
|
||||
IF RDSNos = '' THEN ErrorMsg = 'Null parameter RDSNos passed to routine (':Method:').'
|
||||
|
||||
IF ErrorMsg NE '' THEN RETURN
|
||||
|
||||
thisLoadDTM = ICONV(LoadDTM,'DT')
|
||||
IF thisLoadDTM = '' THEN
|
||||
ErrorMsg = 'Invalid value ':QUOTE(LoadDTM):' passed for parameter LoadDTM (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
ReactRec = XLATE('REACTOR',ReactNo,'','X')
|
||||
IF ReactRec = '' THEN
|
||||
ErrorMsg = 'Invalid Reactor Number ':QUOTE(ReactNo):' passed to routine (':Method:').' ;* Check for valid reactor number
|
||||
RETURN
|
||||
END ELSE
|
||||
IF ReactRec<REACTOR_REACT_TYPE$> NE 'EPP' THEN
|
||||
ErrorMsg = 'Invalid reactor type ':ReactRec<REACTOR_REACT_TYPE$>:' passed to routine.' ;* Not an EpiPro reactor
|
||||
RETURN
|
||||
END
|
||||
END
|
||||
|
||||
ReactStatRec = Database_Services('ReadDataRow', 'REACT_STATUS', ReactNo)
|
||||
|
||||
If Error_Services('NoError') then
|
||||
|
||||
* PrevLoadCnt = COUNT(ReactStatRec<REACT_STATUS_LOAD_CASS_ID$>,@VM) + (ReactStatRec<REACT_STATUS_LOAD_CASS_ID$> NE '')
|
||||
|
||||
CassIDs = ''
|
||||
CassCnt = COUNT(CassNos,@VM) + (CassNos NE '')
|
||||
|
||||
FOR I = 1 TO CassCnt
|
||||
ReactStatRec<REACT_STATUS_LOAD_CASS_ID$,I> = WONo:'*':CassNos<1,I>
|
||||
ReactStatRec<REACT_STATUS_LOAD_DTM$,I> = thisLoadDTM
|
||||
NEXT I
|
||||
|
||||
PrevLoadCnt = DCount(ReactStatRec<REACT_STATUS_LOAD_RDS$>, @VM)
|
||||
For each RDSNo in RDSNos using @VM
|
||||
ReactStatRec<REACT_STATUS_LOAD_RDS$, -1> = RDSNo
|
||||
ReactStatRec<REACT_STATUS_LOAD_RDS_DTM$, -1> = thisLoadDTM
|
||||
Next RDSNo
|
||||
|
||||
Database_Services('WriteDataRow', 'REACT_STATUS', ReactNo, ReactStatRec, True$, False$, True$)
|
||||
|
||||
If Error_Services('HasError') then
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
|
||||
* IF ReactStatRec<REACT_STATUS_UNLOAD_DTM$,1> = '' THEN
|
||||
* UnloadDTM = thisLoadDTM
|
||||
* END ELSE
|
||||
* UnloadDTM = ReactStatRec<REACT_STATUS_UNLOAD_DTM$,1>
|
||||
* END
|
||||
|
||||
If ReactStatRec<REACT_STATUS_UNLOAD_RDS_DTM$, 1> EQ '' then
|
||||
UnloadDTM = thisLoadDTM
|
||||
end else
|
||||
UnloadDTM = ReactStatRec<REACT_STATUS_UNLOAD_RDS_DTM$, 1>
|
||||
end
|
||||
|
||||
IF PrevLoadCnt > 0 THEN
|
||||
IdleTime = 0 ;* There were already a cassette on the reactor (HTR reactors)
|
||||
END ELSE
|
||||
IdleTime = thisLoadDTM - UnloadDTM
|
||||
END
|
||||
|
||||
IF IdleTime < 0 THEN IdleTime = 0
|
||||
IdleTime = OCONV(ICONV(IdleTime*24,'MD2'),'MD2,')
|
||||
Result = IdleTime
|
||||
end else
|
||||
ErrorMsg = 'Unable to read REACT_STATUS record ':ReactNo:' for update (':Method:').'
|
||||
end
|
||||
|
||||
RETURN
|
||||
|
||||
* * * * * * *
|
||||
ReactorUnload:
|
||||
* * * * * * *
|
||||
|
||||
* EpiPro Reactor Unload
|
||||
|
||||
ReactNo = Parms[1,@RM]
|
||||
WONo = Parms[COL2()+1,@RM]
|
||||
CassNos = Parms[COL2()+1,@RM]
|
||||
UnloadDTM = Parms[COL2()+1,@RM]
|
||||
RDSNos = Parms[COL2()+1,@RM]
|
||||
|
||||
IF ReactNo = '' THEN ErrorMsg = 'Null parameter ReactNo passed to routine (':Method:').'
|
||||
IF WONo = '' THEN ErrorMsg = 'Null parameter WONo passed to routine (':Method:').'
|
||||
IF CassNos = '' THEN ErrorMsg = 'Null parameter CassNos passed to routine (':Method:').'
|
||||
IF UnloadDTM = '' THEN ErrorMsg = 'Null parameter UnloadDTM passed to routine (':Method:').'
|
||||
IF RDSNos = '' THEN ErrorMsg = 'Null parameter RDSNos passed to routine (':Method:').'
|
||||
|
||||
IF ErrorMsg NE '' THEN RETURN
|
||||
|
||||
thisUnloadDTM = ICONV(UnloadDTM,'DT')
|
||||
IF thisUnloadDTM = '' THEN
|
||||
ErrorMsg = 'Invalid value ':QUOTE(UnloadDTM):' passed for parameter UnloadDTM (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
ReactRec = XLATE('REACTOR',ReactNo,'','X')
|
||||
IF ReactRec = '' THEN
|
||||
ErrorMsg = 'Invalid Reactor Number ':QUOTE(ReactNo):' passed to routine (':Method:').'
|
||||
RETURN
|
||||
END ELSE
|
||||
IF ReactRec<REACTOR_REACT_TYPE$> NE 'EPP' THEN
|
||||
ErrorMsg = 'Invalid reactor type ':ReactRec<REACTOR_REACT_TYPE$>:' passed to routine.'
|
||||
RETURN
|
||||
END
|
||||
END
|
||||
|
||||
ReactStatRec = Database_Services('ReadDataRow', 'REACT_STATUS', ReactNo)
|
||||
|
||||
If Error_Services('NoError') then
|
||||
|
||||
CassIDs = ''
|
||||
CassCnt = COUNT(CassNos,@VM) + (CassNos NE '')
|
||||
|
||||
FOR I = 1 TO CassCnt
|
||||
ReactStatRec<REACT_STATUS_UNLOAD_CASS_ID$,I> = WONo:'*':CassNos<1,I> ;* Set Unload CassID(s)
|
||||
ReactStatRec<REACT_STATUS_UNLOAD_DTM$,I> = thisUnloadDTM ;* Set Unload DTM(s)
|
||||
NEXT I
|
||||
|
||||
For each RDSNo in RDSNos using @VM setting vPos
|
||||
ReactStatRec<REACT_STATUS_UNLOAD_RDS$, vPos> = RDSNo
|
||||
ReactStatRec<REACT_STATUS_UNLOAD_RDS_DTM$, vPos> = thisUnloadDTM
|
||||
Next RDSNo
|
||||
|
||||
ReactStatRec<REACT_STATUS_LOAD_CASS_ID$> = '' ;* Clear Load CassID(s)
|
||||
ReactStatRec<REACT_STATUS_LOAD_DTM$> = '' ;* Clear Load DTM(s)
|
||||
|
||||
ReactStatRec<REACT_STATUS_LOAD_RDS$> = ''
|
||||
ReactStatRec<REACT_STATUS_LOAD_RDS_DTM$> = ''
|
||||
|
||||
Database_Services('WriteDataRow', 'REACT_STATUS', ReactNo, ReactStatRec, True$, False$, True$)
|
||||
If Error_Services('HasError') then
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
HandleLoadUnsign:
|
||||
* * * * * * *
|
||||
|
||||
ReactNo = Parms[1,@RM]
|
||||
WONo = Parms[COL2()+1,@RM]
|
||||
CassNo = Parms[COL2()+1,@RM]
|
||||
RDSNo = Parms[COL2()+1,@RM]
|
||||
OverrideUser = Parms[COL2()+1,@RM]
|
||||
|
||||
IF ReactNo = '' THEN ErrorMsg = 'Null parameter ReactNo passed to routine (':Method:').'
|
||||
IF WONo = '' THEN ErrorMsg = 'Null parameter WONo passed to routine (':Method:').'
|
||||
IF CassNo = '' THEN ErrorMsg = 'Null parameter CassNo passed to routine (':Method:').'
|
||||
IF RDSNo = '' THEN ErrorMsg = 'Null parameter RDSNo passed to routine(':Method:').'
|
||||
IF OverrideUser = '' THEN ErrorMsg = 'Null parameter OverrideUser passed to routine(':Method:').'
|
||||
|
||||
CassID = WONo:'*':CassNo
|
||||
|
||||
ReactStatRec = Database_Services('ReadDataRow', 'REACT_STATUS', ReactNo)
|
||||
|
||||
IF Get_Status(errCode) or Error_Services('HasError') THEN
|
||||
ErrorMsg = 'Unable to read REACT_STATUS record ':ReactNo:' for update (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
|
||||
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', CassID)
|
||||
LoadedRDS = ReactStatRec<REACT_STATUS_LOAD_RDS$>
|
||||
Locate RDSNo in LoadedRDS using @VM setting vPos then
|
||||
ReactStatRec<REACT_STATUS_LOAD_CASS_ID$> = Delete(ReactStatRec<REACT_STATUS_LOAD_CASS_ID$, 0, vPos, 0)
|
||||
ReactStatRec<REACT_STATUS_LOAD_DTM$> = Delete(ReactStatRec<REACT_STATUS_LOAD_DTM$, 0, vPos, 0)
|
||||
ReactStatRec<REACT_STATUS_LOAD_RDS$> = Delete(ReactStatRec<REACT_STATUS_LOAD_RDS$, 0, vPos, 0)
|
||||
ReactStatRec<REACT_STATUS_LOAD_RDS_DTM$> = Delete(ReactStatRec<REACT_STATUS_LOAD_RDS_DTM$, 0, vPos, 0)
|
||||
end
|
||||
Database_Services('WriteDataRow', 'REACT_STATUS', ReactNo, ReactStatRec, True$, False$, True$)
|
||||
|
||||
If Error_Services('HasError') then
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
return
|
||||
end else
|
||||
overrideLogTable = 'RDS':@VM:'REACTOR'
|
||||
overrideLogKey = RDSNo:@VM:ReactNo
|
||||
overrideLogUser = OverrideUser
|
||||
overrideLogComment = 'UNSIGN-LOAD'
|
||||
overrideLogCategory = 'UNSIGN'
|
||||
orKey = Override_Log_Services('Create', overrideLogTable, overrideLogKey, overrideLogUser, overrideLogComment, overrideLogCategory)
|
||||
end
|
||||
|
||||
Return
|
||||
|
||||
|
||||
* * * * * * *
|
||||
HandleUnloadUnsign:
|
||||
* * * * * * *
|
||||
|
||||
ReactNo = Parms[1,@RM]
|
||||
WONo = Parms[COL2()+1,@RM]
|
||||
CassNo = Parms[COL2()+1,@RM]
|
||||
RDSNo = Parms[COL2()+1,@RM]
|
||||
OverrideUser = Parms[COL2()+1,@RM]
|
||||
|
||||
IF ReactNo = '' THEN ErrorMsg = 'Null parameter ReactNo passed to routine (':Method:').'
|
||||
IF WONo = '' THEN ErrorMsg = 'Null parameter WONo passed to routine (':Method:').'
|
||||
IF CassNo = '' THEN ErrorMsg = 'Null parameter CassNo passed to routine (':Method:').'
|
||||
IF RDSNo = '' THEN ErrorMsg = 'Null parameter RDSNo passed to routine(':Method:').'
|
||||
IF OverrideUser = '' THEN ErrorMsg = 'Null parameter OverrideUser passed to routine(':Method:').'
|
||||
|
||||
CassID = WONo:'*':CassNo
|
||||
|
||||
ReactStatRec = Database_Services('ReadDataRow', 'REACT_STATUS', ReactNo)
|
||||
|
||||
IF Get_Status(errCode) or Error_Services('HasError') THEN
|
||||
ErrorMsg = 'Unable to read REACT_STATUS record ':ReactNo:' for update (':Method:').'
|
||||
RETURN
|
||||
END
|
||||
OriginalLoadTime = ''
|
||||
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', CassID)
|
||||
|
||||
// Get the original load event DTM to reload
|
||||
OriginalLoadTime = Xlate('RDS', RDSNo, 'DTM_IN', 'X')
|
||||
If OriginalLoadTime NE '' then
|
||||
|
||||
// Restore the loaded cassette information
|
||||
PrevLoadedCassCnt = DCount(ReactStatRec<REACT_STATUS_LOAD_RDS$>, @VM)
|
||||
ReactStatRec<REACT_STATUS_LOAD_RDS$, -1> = RDSNo
|
||||
ReactStatRec<REACT_STATUS_LOAD_RDS_DTM$, -1> = OriginalLoadTime
|
||||
|
||||
PrevUnloadRDS = ''
|
||||
PrevRDSUnloadDTM = ''
|
||||
PrevUnloadCassID = ''
|
||||
ErrCode = ''
|
||||
Query = 'SELECT RDS WITH WO EQ ':WONo:' AND WITH REACTOR EQ ':ReactNo:' BY-DSND DATE_OUT BY-DSND TIME_OUT'
|
||||
Rlist(Query, TARGET_ACTIVELIST$, '', '', '')
|
||||
If Not(Get_Status(ErrCode)) then
|
||||
ReadNext PrevUnloadRDS else Null
|
||||
PrevRDSUnloadDTM = Xlate('RDS', PrevUnloadRDS, 'DTM_OUT', 'X')
|
||||
end
|
||||
|
||||
ReactStatRec<REACT_STATUS_UNLOAD_RDS_DTM$> = PrevRDSUnloadDTM
|
||||
ReactStatRec<REACT_STATUS_UNLOAD_RDS$> = PrevUnloadRDS
|
||||
|
||||
Database_Services('WriteDataRow', 'REACT_STATUS', ReactNo, ReactStatRec, True$, False$, True$)
|
||||
|
||||
If Error_Services('HasError') then
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
return
|
||||
end else
|
||||
overrideLogTable = 'RDS':@VM:'REACTOR'
|
||||
overrideLogKey = RDSNo:@VM:ReactNo
|
||||
overrideLogUser = OverrideUser
|
||||
overrideLogComment = 'UNSIGN-UNLOAD'
|
||||
overrideLogCategory = 'UNSIGN'
|
||||
orKey = Override_Log_Services('Create', overrideLogTable, overrideLogKey, overrideLogUser, overrideLogComment, overrideLogCategory)
|
||||
end
|
||||
end
|
||||
|
||||
Return
|
||||
|
||||
|
||||
* * * * * * *
|
||||
CleanHouse:
|
||||
* * * * * * *
|
||||
|
||||
OPEN 'REACT_STATUS' TO FileIn ELSE
|
||||
RETURN
|
||||
END
|
||||
|
||||
SELECT FileIn
|
||||
|
||||
Done = 0
|
||||
LOOP
|
||||
READNEXT ReactNo ELSE Done =1
|
||||
UNTIL DONE
|
||||
READ ReactStatRec FROM FileIn,ReactNo THEN
|
||||
ReactStatRec<REACT_STATUS_LOAD_DTM$> = ''
|
||||
ReactStatRec<REACT_STATUS_LOAD_CASS_ID$> = ''
|
||||
WRITE ReactStatRec ON FileIn,ReactNo
|
||||
|
||||
END ;* End of record read
|
||||
REPEAT
|
||||
|
||||
RETURN
|
||||
|
Reference in New Issue
Block a user