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

143 lines
3.8 KiB
Plaintext

COMPILE FUNCTION obj_WM_Wfrs(Method,Parms)
/*
Methods for WMO_WFRS and WMI_WFRS tables
01/15/2007 JCH - Initial Coding
Properties:
Methods:
Presence of a slot record in this file indicates that it is 'locked' by the entry logic and
will not be available for unloading of a wafer from the reactor in to it.
LockSet(TableName,WMWaferKeys) ;* Creates timestamp record in table for each key passed
UnlockSet(TableName,WMWaferKeys) ;* Deletes timestamp record from table for each key passed
*/
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn
$INSERT WMO_WFRS_EQUATES
$INSERT WMI_WFRS_EQUATES
EQU CRLF$ TO \0D0A\
ErrTitle = 'Error in Stored Procedure "obj_WM_Wfrs"'
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 = 'LockSet' ; GOSUB LockSet
CASE Method = 'UnlockSet' ; GOSUB UnlockSet
CASE 1
NULL
END CASE
IF ErrorMsg NE '' THEN
Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
END
RETURN Result
* * * * * * *
LockSet:
* * * * * * *
WMTableName = Parms[1,@RM]
WMWaferKeys = Parms[COL2()+1,@RM]
IF WMTableName = '' THEN ErrorMsg = 'Null Parameter "WMTableName" passed to routine. (':Method:')'
IF WMWaferKeys = '' THEN ErrorMsg = 'Null Parameter "WMWaferKeys" passed to routine. (':Method:')'
IF ErrorMsg NE '' THEN RETURN
OPEN WMTableName TO WMWfrsTable ELSE
ErrorMsg = 'Unable to open ':QUOTE(WMTableName):' table in routine. (':Method:')'
RETURN
END
LockedKeys = ''
FOR I = 1 TO COUNT(WMWaferKeys,@VM) + (WMWaferKeys NE '')
WMWaferKey = WMWaferKeys<1,I>
READ TestRec FROM WMWfrsTable,WMWaferKey THEN
LockUser = TestRec<WMO_WFRS_USER_NAME$>
LockStation = TestRec<WMO_WFRS_WORKSTATION_ID$>
LockDTM = OCONV(TestRec<WMO_WFRS_LOCKED_AT$>,'DT4/^HS')
ErrorMsg = 'Cassette/Wafers are currently being loaded/unloaded by: ':CRLF$
ErrorMsg := 'User Name: ':LockUser:CRLF$
ErrorMsg := 'Computer Station: ':LockStation:CRLF$
ErrorMsg := 'Locked At: ':LockDTM
FOR N = 1 TO COUNT(LockedKeys,@VM) + (LockedKeys NE '')
DELETE WMWfrsTable,LockedKeys<1,N> ELSE NULL
NEXT N
RETURN
END ELSE
* Write the timestamp record to 'lock' the slot
CurrDTM = ICONV(OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS'),'DT')
WMWfrRec = @USER4:@FM:@STATION:@FM:CurrDTM
WRITE WMWfrRec ON WMWfrsTable,WMWaferKey THEN
LockedKeys<1,-1> = WMWaferKey
END ELSE
ErrorMsg = 'Unable to WRITE to ':QUOTE(WMTableName):' table in routine. (':Method:')'
FOR N = 1 TO COUNT(LockedKeys,@VM) + (LockedKeys NE '')
DELETE WMWfrsTable,LockedKeys<1,N> ELSE NULL
NEXT N
RETURN
END
END
NEXT I
Result = LockedKeys ;* This gets put into @LOCKED_WFRS in the dialog box
RETURN
* * * * * * *
UnlockSet:
* * * * * * *
WMTableName = Parms[1,@RM]
WMWaferKeys = Parms[COL2()+1,@RM]
IF WMTableName = '' THEN ErrorMsg = 'Null Parameter "WMTableName" passed to routine. (':Method:')'
IF WMWaferKeys = '' THEN ErrorMsg = 'Null Parameter "WMWaferKeys" passed to routine. (':Method:')'
IF ErrorMsg NE '' THEN RETURN
OPEN WMTableName TO WMWfrsTable ELSE
ErrorMsg = 'Unable to open ':QUOTE(WMTableName):' table in routine. (':Method:')'
RETURN
END
FOR I = 1 TO COUNT(WMWaferKeys,@VM) + (WMWaferKeys NE '')
WMWaferKey = WMWaferKeys<1,I>
DELETE WMWfrsTable,WMWaferKey ELSE
ErrorMsg = 'Unable to DELETE ':QUOTE(WMTableName):' record ':WMWaferKeys<1,I>:'.':CRLF$:CRLF$
ErrorMsg := 'Screen print this message and give to OpenInsight System Administrator.'
END
NEXT I
RETURN