Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e5f0e9b7f1 | ||
|
869787e0f3 | ||
|
38fc89dac6 | ||
|
614da8ad3b | ||
|
dcb61e220c | ||
|
117e5c8b4b | ||
|
25c608c9a6 | ||
|
31632e28aa | ||
|
03b0c8f606 | ||
|
6cfb6e521e | ||
|
481f083804 |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -423,7 +423,7 @@
|
|||||||
"<1,31>": "",
|
"<1,31>": "",
|
||||||
"<1,32>": "",
|
"<1,32>": "",
|
||||||
"<1,33>": "",
|
"<1,33>": "",
|
||||||
"<1,34>": "",
|
"<1,34>": "LSL2*IMAGE*ICO*INFINEON",
|
||||||
"<1,35>": "",
|
"<1,35>": "",
|
||||||
"<1,36>": "",
|
"<1,36>": "",
|
||||||
"<1,37>": {
|
"<1,37>": {
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
"<8,2>": {
|
"<8,2>": {
|
||||||
"<8,2,1>": "MET",
|
"<8,2,1>": "MET",
|
||||||
"<8,2,2>": "Metrology",
|
"<8,2,2>": "Metrology",
|
||||||
"<8,2,3>": "TODD_C, JEANNE_M"
|
"<8,2,3>": "TODD_C, JEANNE_M, JFUENTE1, JUSTIN_H, JONATHON_S, MARROQUINBRA, TIFFANY_M"
|
||||||
},
|
},
|
||||||
"<8,3>": {
|
"<8,3>": {
|
||||||
"<8,3,1>": "MTC",
|
"<8,3,1>": "MTC",
|
||||||
|
@ -235,7 +235,7 @@ Service SendReminders()
|
|||||||
IF CLType = 'E' THEN
|
IF CLType = 'E' THEN
|
||||||
Desc = CLRec<CALIB_LIST_EQ_DESC$>
|
Desc = CLRec<CALIB_LIST_EQ_DESC$>
|
||||||
SN = CLRec<CALIB_LIST_EQ_SN$>
|
SN = CLRec<CALIB_LIST_EQ_SN$>
|
||||||
Loc = CLRec<CALIB_LIST_EQ_LOC$
|
Loc = CLRec<CALIB_LIST_EQ_LOC$>
|
||||||
NewLine = Desc:' (S/N: ':SN:') located in the ':Loc:' is due for calibration on ':NextCalDt:CRLF$
|
NewLine = Desc:' (S/N: ':SN:') located in the ':Loc:' is due for calibration on ':NextCalDt:CRLF$
|
||||||
END
|
END
|
||||||
IF CLType = 'S' THEN
|
IF CLType = 'S' THEN
|
||||||
|
@ -50,109 +50,112 @@ RETURN Result
|
|||||||
* * * * * * *
|
* * * * * * *
|
||||||
Create:
|
Create:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
obj_AppWindow('Create')
|
obj_AppWindow('Create')
|
||||||
|
|
||||||
Set_Property(@WINDOW,'STATUSLINE',@WINDOW:'.STATUSLINE_FIX')
|
Set_Property(@WINDOW,'STATUSLINE',@WINDOW:'.STATUSLINE_FIX')
|
||||||
|
|
||||||
GOSUB Refresh
|
GOSUB Refresh
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Refresh:
|
Refresh:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
ReactNoGF:
|
ReactNoGF:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
* Don't add a return here
|
* Don't add a return here
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
LUReactor:
|
LUReactor:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
IF NOT(ASSIGNED(Parm1)) THEN FocusControl = '' ELSE FocusControl = Parm1
|
IF NOT(ASSIGNED(Parm1)) THEN FocusControl = '' ELSE FocusControl = Parm1
|
||||||
IF NOT(ASSIGNED(Parm2)) THEN FocusPos = '' ELSE FocusPos = Parm2
|
IF NOT(ASSIGNED(Parm2)) THEN FocusPos = '' ELSE FocusPos = Parm2
|
||||||
|
|
||||||
Set_Status(0)
|
Set_Status(0)
|
||||||
|
|
||||||
TypeOver = ''
|
TypeOver = ''
|
||||||
TypeOver<PSELECT$> = '2' ;* Multiple Select
|
TypeOver<PSELECT$> = '2' ;* Multiple Select
|
||||||
TypeOver<PTYPE$> = 'E' ;* Return entire row
|
TypeOver<PTYPE$> = 'E' ;* Return entire row
|
||||||
|
|
||||||
ReactData = Popup(@WINDOW,TypeOver,'REACTORS')
|
ReactData = Popup(@WINDOW,TypeOver,'REACTORS')
|
||||||
|
|
||||||
IF ReactData = '' THEN RETURN
|
IF ReactData = '' THEN RETURN
|
||||||
|
|
||||||
Set_Property(@WINDOW:'.REACT_NO','LIST',ReactData)
|
Set_Property(@WINDOW:'.REACT_NO','LIST',ReactData)
|
||||||
|
|
||||||
LineCnt = COUNT(ReactData,@FM) + (ReactData NE '')
|
LineCnt = COUNT(ReactData,@FM) + (ReactData NE '')
|
||||||
ColCnt = 7
|
ColCnt = 7
|
||||||
|
|
||||||
FOR Line = 1 TO LineCnt
|
FOR Line = 1 TO LineCnt
|
||||||
FOR Column = 2 TO ColCnt
|
FOR Column = 2 TO ColCnt
|
||||||
stat = Send_Message(@WINDOW:'.REACT_NO','COLOR_BY_POS',Column,Line,GREEN$)
|
stat = Send_Message(@WINDOW:'.REACT_NO','COLOR_BY_POS',Column,Line,GREEN$)
|
||||||
NEXT Column
|
NEXT Column
|
||||||
NEXT Line
|
NEXT Line
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Cancel:
|
Cancel:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
End_Dialog(@WINDOW,'')
|
End_Dialog(@WINDOW,'')
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
PostEntries:
|
PostEntries:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
ReactNos = Get_Property(@WINDOW:'.REACT_NO','ARRAY')<COL$REACT_NO>
|
|
||||||
Comment = Get_Property(@WINDOW:'.COMMENT','DEFPROP')
|
|
||||||
|
|
||||||
LOOP
|
|
||||||
TestChar = ReactNos[-1,1]
|
|
||||||
UNTIL TestChar NE @VM OR ReactNos = ''
|
|
||||||
ReactNos[-1,1] = ''
|
|
||||||
REPEAT
|
|
||||||
|
|
||||||
EventKeys = '' ;* Keys to return to the REACT_EVENT window for a browse of the newly created records
|
|
||||||
|
|
||||||
IF ReactNos NE '' AND Comment NE '' THEN
|
|
||||||
|
|
||||||
EventDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS') ;* Same DTM for all new records
|
|
||||||
EventType = 'PD' ;* Passdown
|
|
||||||
LoggedBy = @USER4
|
|
||||||
|
|
||||||
ReactCnt = COUNT(ReactNos,@VM) + (ReactNos NE '')
|
ReactNos = Get_Property(@WINDOW:'.REACT_NO','ARRAY')<COL$REACT_NO>
|
||||||
|
Comment = Get_Property(@WINDOW:'.COMMENT','DEFPROP')
|
||||||
|
|
||||||
FOR I = 1 TO ReactCnt
|
LOOP
|
||||||
ReactNo = ReactNos<1,I>
|
TestChar = ReactNos[-1,1]
|
||||||
CurrMode = XLATE('REACTOR',ReactNo,'CURR_MODE','X')
|
UNTIL TestChar NE @VM OR ReactNos = ''
|
||||||
|
ReactNos[-1,1] = ''
|
||||||
|
REPEAT
|
||||||
|
|
||||||
|
EventKeys = '' ;* Keys to return to the REACT_EVENT window for a browse of the newly created records
|
||||||
|
|
||||||
|
IF ReactNos NE '' AND Comment NE '' THEN
|
||||||
|
|
||||||
obj_React_Event('Create',ReactNo:@RM:EventDTM:@RM:EventType:@RM:LoggedBy:@RM:Comment:@RM:@RM:CurrMode)
|
EventDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS') ;* Same DTM for all new records
|
||||||
EventKeys<I> = ReactNo:'*':ICONV(EventDTM,'DT')
|
EventType = 'PD' ;* Passdown
|
||||||
NEXT I
|
LoggedBy = @USER4
|
||||||
|
|
||||||
END
|
ReactCnt = COUNT(ReactNos,@VM) + (ReactNos NE '')
|
||||||
|
|
||||||
End_Dialog(@WINDOW,EventKeys)
|
FOR I = 1 TO ReactCnt
|
||||||
|
ReactNo = ReactNos<1,I>
|
||||||
|
CurrMode = XLATE('REACTOR',ReactNo,'CURR_MODE','X')
|
||||||
|
|
||||||
|
obj_React_Event('Create',ReactNo:@RM:EventDTM:@RM:EventType:@RM:LoggedBy:@RM:Comment:@RM:@RM:CurrMode)
|
||||||
|
|
||||||
|
ErrCode = ''
|
||||||
|
If Get_Status(ErrCode) then
|
||||||
|
Msg(@Window, '', 'OK', '', 'Process Error':@FM:'Error posting entries. ':ErrCode)
|
||||||
|
end else
|
||||||
|
Set_Property(@Window:'.REACT_NO', 'LIST', '')
|
||||||
|
Set_Property(@Window:'.COMMENT', 'TEXT', '')
|
||||||
|
end
|
||||||
|
|
||||||
|
EventKeys<I> = ReactNo:'*':ICONV(EventDTM,'DT')
|
||||||
|
NEXT I
|
||||||
|
|
||||||
|
END else
|
||||||
|
Msg(@Window, '', 'OK', '', 'Process Error':@FM:'React No(s) and Comment must not be null!')
|
||||||
|
end
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,25 +3,27 @@ Compile function NDW_WAFER_COUNTS_EVENTS(CtrlEntId, Event, @PARAMS)
|
|||||||
#window NDW_WAFER_COUNTS
|
#window NDW_WAFER_COUNTS
|
||||||
Declare function Reactor_Services, Database_Services, Get_Property, Error_Services, Environment_Services
|
Declare function Reactor_Services, Database_Services, Get_Property, Error_Services, Environment_Services
|
||||||
Declare function SRP_Array, Logging_Services
|
Declare function SRP_Array, Logging_Services
|
||||||
Declare subroutine Set_Property, Logging_Services
|
Declare subroutine Set_Property, Logging_Services, PlaceDialog
|
||||||
|
|
||||||
$Insert EVENT_SETUP
|
$Insert EVENT_SETUP
|
||||||
$Insert APP_INSERTS
|
$Insert APP_INSERTS
|
||||||
$Insert REACTOR_EQUATES
|
$Insert REACTOR_EQUATES
|
||||||
|
|
||||||
EQU DATA_ASM_REACT_ID$ to 1
|
EQU DATA_ASM_REACT_ID$ to 1
|
||||||
EQU DATA_ASM_SUSC_CNT$ to 2
|
EQU DATA_ASM_SUSC_CNT$ to 2
|
||||||
EQU DATA_ASM_SUSC_THK$ to 3
|
EQU DATA_ASM_SUSC_THK$ to 3
|
||||||
EQU DATA_ASM_TUBE_CNT$ to 4
|
EQU DATA_ASM_TUBE_CNT$ to 4
|
||||||
EQU DATA_ASM_TUBE_THK$ to 5
|
EQU DATA_ASM_TUBE_THK$ to 5
|
||||||
EQU DATA_ASM_ARM_CNT$ to 6
|
EQU DATA_ASM_ARM_CNT$ to 6
|
||||||
|
EQU DATA_ASM_EXHAUST_THK$ to 7
|
||||||
|
|
||||||
EQU DATA_HTR_REACT_ID$ to 1
|
EQU DATA_HTR_REACT_ID$ to 1
|
||||||
EQU DATA_HTR_SUSC_CNT$ TO 2
|
EQU DATA_HTR_SUSC_CNT$ TO 2
|
||||||
EQU DATA_HTR_SUSC_THK$ TO 3
|
EQU DATA_HTR_SUSC_THK$ TO 3
|
||||||
EQU DATA_HTR_TUBE_CNT$ TO 4
|
EQU DATA_HTR_TUBE_CNT$ TO 4
|
||||||
EQU DATA_HTR_TUBE_THK$ TO 5
|
EQU DATA_HTR_TUBE_THK$ TO 5
|
||||||
EQU DATA_HTR_ARM_CNT$ TO 6
|
EQU DATA_HTR_ARM_CNT$ TO 6
|
||||||
|
EQU DATA_HTR_EXHAUST_THK$ TO 7
|
||||||
|
|
||||||
EQU DATA_EPP_REACT_ID$ to 1
|
EQU DATA_EPP_REACT_ID$ to 1
|
||||||
EQU DATA_EPP_SUSC_CNT$ TO 2
|
EQU DATA_EPP_SUSC_CNT$ TO 2
|
||||||
@ -30,6 +32,7 @@ EQU DATA_EPP_BELL_JAR_CNT$ TO 4
|
|||||||
EQU DATA_EPP_BELL_JAR_THK$ TO 5
|
EQU DATA_EPP_BELL_JAR_THK$ TO 5
|
||||||
EQU DATA_EPP_LOWER_QUARTZ_CNT$ TO 6
|
EQU DATA_EPP_LOWER_QUARTZ_CNT$ TO 6
|
||||||
EQU DATA_EPP_LOWER_QUARTZ_THK$ TO 7
|
EQU DATA_EPP_LOWER_QUARTZ_THK$ TO 7
|
||||||
|
EQU DATA_EPP_EXHAUST_THK$ TO 8
|
||||||
|
|
||||||
ASMDataTable = @Window : '.OLE_DATA_ASM'
|
ASMDataTable = @Window : '.OLE_DATA_ASM'
|
||||||
HTRDataTable = @Window : '.OLE_DATA_HTR'
|
HTRDataTable = @Window : '.OLE_DATA_HTR'
|
||||||
@ -49,11 +52,11 @@ If Event EQ 'OLE' then
|
|||||||
Transfer Param1 to Event
|
Transfer Param1 to Event
|
||||||
Transfer Param2 to Param1
|
Transfer Param2 to Param1
|
||||||
Transfer Param3 to Param2
|
Transfer Param3 to Param2
|
||||||
* Transfer Param4 to Param3
|
Transfer Param4 to Param3
|
||||||
* Transfer Param5 to Param4
|
Transfer Param5 to Param4
|
||||||
* Transfer Param6 to Param5
|
Transfer Param6 to Param5
|
||||||
* Transfer Param7 to Param6
|
Transfer Param7 to Param6
|
||||||
* Transfer Param8 to Param7
|
Transfer Param8 to Param7
|
||||||
end
|
end
|
||||||
|
|
||||||
GoToEvent Event for CtrlEntId else
|
GoToEvent Event for CtrlEntId else
|
||||||
@ -67,17 +70,25 @@ Return EventFlow or 1
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
Event WINDOW.CREATE(CreateParam)
|
Event WINDOW.CREATE(CreateParam)
|
||||||
|
|
||||||
GoSub SetupOLEControls
|
GoSub SetupOLEControls
|
||||||
GoSub GetReactorMetrics
|
GoSub GetReactorMetrics
|
||||||
|
|
||||||
End Event
|
End Event
|
||||||
|
|
||||||
|
|
||||||
Event TABCONTROL_1.CLICK()
|
Event TABCONTROL_1.CLICK()
|
||||||
|
|
||||||
Page = Get_Property(@Window : '.TABCONTROL_1', 'VALUE')
|
Page = Get_Property(@Window : '.TABCONTROL_1', 'VALUE')
|
||||||
Set_Property(@WINDOW,'VPOSITION', Page)
|
Set_Property(@WINDOW,'VPOSITION', Page)
|
||||||
|
|
||||||
end event
|
end event
|
||||||
|
|
||||||
|
|
||||||
Event PUB_REFRESH_DATA.CLICK()
|
Event PUB_REFRESH_DATA.CLICK()
|
||||||
|
|
||||||
GoSub GetReactorMetrics
|
GoSub GetReactorMetrics
|
||||||
|
|
||||||
end event
|
end event
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@ -85,6 +96,7 @@ end event
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
GetReactorMetrics:
|
GetReactorMetrics:
|
||||||
|
|
||||||
ReactorRec = ''
|
ReactorRec = ''
|
||||||
ASMData = ''
|
ASMData = ''
|
||||||
HTRData = ''
|
HTRData = ''
|
||||||
@ -105,12 +117,13 @@ GetReactorMetrics:
|
|||||||
for each Reactor in ASMList using @FM setting rPos
|
for each Reactor in ASMList using @FM setting rPos
|
||||||
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
|
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
|
||||||
if Error_Services('NoError') then
|
if Error_Services('NoError') then
|
||||||
ASMData<rPos, DATA_ASM_REACT_ID$> = MetricData<1, DATA_ASM_REACT_ID$>
|
ASMData<rPos, DATA_ASM_REACT_ID$> = MetricData<1, DATA_ASM_REACT_ID$>
|
||||||
ASMData<rPos, DATA_ASM_SUSC_CNT$> = MetricData<1, DATA_ASM_SUSC_CNT$>
|
ASMData<rPos, DATA_ASM_SUSC_CNT$> = MetricData<1, DATA_ASM_SUSC_CNT$>
|
||||||
ASMData<rPos, DATA_ASM_SUSC_THK$> = MetricData<1, DATA_ASM_SUSC_THK$>
|
ASMData<rPos, DATA_ASM_SUSC_THK$> = MetricData<1, DATA_ASM_SUSC_THK$>
|
||||||
ASMData<rPos, DATA_ASM_TUBE_CNT$> = MetricData<1, DATA_ASM_TUBE_CNT$>
|
ASMData<rPos, DATA_ASM_TUBE_CNT$> = MetricData<1, DATA_ASM_TUBE_CNT$>
|
||||||
ASMData<rPos, DATA_ASM_TUBE_THK$> = MetricData<1, DATA_ASM_TUBE_THK$>
|
ASMData<rPos, DATA_ASM_TUBE_THK$> = MetricData<1, DATA_ASM_TUBE_THK$>
|
||||||
ASMData<rPos, DATA_ASM_ARM_CNT$> = MetricData<1, DATA_ASM_ARM_CNT$>
|
ASMData<rPos, DATA_ASM_ARM_CNT$> = MetricData<1, DATA_ASM_ARM_CNT$>
|
||||||
|
ASMData<rPos, DATA_ASM_EXHAUST_THK$> = MetricData<1, DATA_ASM_EXHAUST_THK$>
|
||||||
end else
|
end else
|
||||||
ErrorMessage = Error_Services('GetMessage')
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
LogData = LoggingDTM : @FM : ErrorMessage
|
LogData = LoggingDTM : @FM : ErrorMessage
|
||||||
@ -123,12 +136,13 @@ GetReactorMetrics:
|
|||||||
for each Reactor in HTRList using @FM setting rPos
|
for each Reactor in HTRList using @FM setting rPos
|
||||||
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
|
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
|
||||||
if Error_Services('NoError') then
|
if Error_Services('NoError') then
|
||||||
HTRData<rPos, DATA_HTR_REACT_ID$> = MetricData <1, DATA_HTR_REACT_ID$>
|
HTRData<rPos, DATA_HTR_REACT_ID$> = MetricData <1, DATA_HTR_REACT_ID$>
|
||||||
HTRData<rPos, DATA_HTR_SUSC_CNT$> = MetricData<1, DATA_HTR_SUSC_CNT$>
|
HTRData<rPos, DATA_HTR_SUSC_CNT$> = MetricData<1, DATA_HTR_SUSC_CNT$>
|
||||||
HTRData<rPos, DATA_HTR_SUSC_THK$> = MetricData<1, DATA_HTR_SUSC_THK$>
|
HTRData<rPos, DATA_HTR_SUSC_THK$> = MetricData<1, DATA_HTR_SUSC_THK$>
|
||||||
HTRData<rPos, DATA_HTR_TUBE_CNT$> = MetricData<1, DATA_HTR_TUBE_CNT$>
|
HTRData<rPos, DATA_HTR_TUBE_CNT$> = MetricData<1, DATA_HTR_TUBE_CNT$>
|
||||||
HTRData<rPos, DATA_HTR_TUBE_THK$> = MetricData<1, DATA_HTR_TUBE_THK$>
|
HTRData<rPos, DATA_HTR_TUBE_THK$> = MetricData<1, DATA_HTR_TUBE_THK$>
|
||||||
HTRData<rPos, DATA_HTR_ARM_CNT$> = MetricData<1, DATA_HTR_ARM_CNT$>
|
HTRData<rPos, DATA_HTR_ARM_CNT$> = MetricData<1, DATA_HTR_ARM_CNT$>
|
||||||
|
HTRData<rPos, DATA_HTR_EXHAUST_THK$> = MetricData<1, DATA_HTR_EXHAUST_THK$>
|
||||||
end else
|
end else
|
||||||
ErrorMessage = Error_Services('GetMessage')
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
LogData = LoggingDTM : @FM : ErrorMessage
|
LogData = LoggingDTM : @FM : ErrorMessage
|
||||||
@ -149,6 +163,7 @@ GetReactorMetrics:
|
|||||||
EPPData<rPos, DATA_EPP_BELL_JAR_THK$> = MetricData<1, DATA_EPP_BELL_JAR_THK$>
|
EPPData<rPos, DATA_EPP_BELL_JAR_THK$> = MetricData<1, DATA_EPP_BELL_JAR_THK$>
|
||||||
EPPData<rPos, DATA_EPP_LOWER_QUARTZ_CNT$> = MetricData<1, DATA_EPP_LOWER_QUARTZ_CNT$>
|
EPPData<rPos, DATA_EPP_LOWER_QUARTZ_CNT$> = MetricData<1, DATA_EPP_LOWER_QUARTZ_CNT$>
|
||||||
EPPData<rPos, DATA_EPP_LOWER_QUARTZ_THK$> = MetricData<1, DATA_EPP_LOWER_QUARTZ_THK$>
|
EPPData<rPos, DATA_EPP_LOWER_QUARTZ_THK$> = MetricData<1, DATA_EPP_LOWER_QUARTZ_THK$>
|
||||||
|
EPPData<rPos, DATA_EPP_EXHAUST_THK$> = MetricData<1, DATA_EPP_EXHAUST_THK$>
|
||||||
end else
|
end else
|
||||||
ErrorMessage = Error_Services('GetMessage')
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
LogData = LoggingDTM : @FM : ErrorMessage
|
LogData = LoggingDTM : @FM : ErrorMessage
|
||||||
@ -159,36 +174,55 @@ GetReactorMetrics:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
SetupOLEControls:
|
SetupOLEControls:
|
||||||
|
|
||||||
//Set Row Headers to invisible
|
// Set Row Headers to invisible
|
||||||
Set_Property(ASMDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
Set_Property(ASMDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
||||||
Set_Property(HTRDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
Set_Property(HTRDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
||||||
Set_Property(EPPDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
Set_Property(EPPDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
||||||
|
|
||||||
//Set Number of columns for each table
|
// Set Number of columns for each table
|
||||||
Set_Property(ASMDataTable, "OLE.Dimension", 6);*6 columns for ASM Data Table
|
Set_Property(ASMDataTable, "OLE.Dimension", 7);*6 columns for ASM Data Table
|
||||||
Set_Property(HTRDataTable, "OLE.Dimension", 6);*6 columns for HTR Data Table
|
Set_Property(HTRDataTable, "OLE.Dimension", 7);*6 columns for HTR Data Table
|
||||||
Set_Property(EPPDataTable, "OLE.Dimension", 7);*7 columns for EPP Data Table
|
Set_Property(EPPDataTable, "OLE.Dimension", 8);*7 columns for EPP Data Table
|
||||||
|
|
||||||
//Set size of columns
|
// Set size of all columns
|
||||||
ColSizeArray = ''
|
ColSizeArray = ''
|
||||||
ColSizeArray<1> = 100
|
ColSizeArray<1> = 115
|
||||||
Set_Property(ASMDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
Set_Property(ASMDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
||||||
Set_Property(HTRDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
Set_Property(HTRDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
||||||
Set_Property(EPPDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
Set_Property(EPPDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
||||||
|
|
||||||
|
// Shrink size of column 1
|
||||||
|
ColSizeArray<1> = 60
|
||||||
|
Set_Property(ASMDataTable, "OLE.DataColumn[1]", ColSizeArray)
|
||||||
|
Set_Property(HTRDataTable, "OLE.DataColumn[1]", ColSizeArray)
|
||||||
|
Set_Property(EPPDataTable, "OLE.DataColumn[1]", ColSizeArray)
|
||||||
|
|
||||||
|
// Set size of all columns
|
||||||
|
ColSizeArray = ''
|
||||||
|
ColSizeArray<1> = 125
|
||||||
|
Set_Property(EPPDataTable, "OLE.DataColumn[6]", ColSizeArray)
|
||||||
|
|
||||||
|
// Set autosize last column to true to fill out table width
|
||||||
|
ColSizeArray<1> = 125
|
||||||
|
ColSizeArray<4> = True$
|
||||||
|
Set_Property(ASMDataTable, "OLE.DataColumn[7]", ColSizeArray)
|
||||||
|
Set_Property(HTRDataTable, "OLE.DataColumn[7]", ColSizeArray)
|
||||||
|
Set_Property(EPPDataTable, "OLE.DataColumn[8]", ColSizeArray)
|
||||||
|
|
||||||
//Set ASM Table Col. Headers
|
//Set ASM Table Col. Headers
|
||||||
HeaderTitles = 'Reactor#':@VM:'Susc. Wfr. Cnt.':@VM:'Susc. Thk':@VM:'Tube Wfr. Cnt.':@VM:'Tube Wfr. Thk':@VM:'Arm Wfr. Cnt.'
|
HeaderTitles = 'Reactor#':@VM:'Susc. Wfr. Cnt.':@VM:'Susc. Thk':@VM:'Tube Wfr. Cnt.':@VM:'Tube Wfr. Thk':@VM:'Arm Wfr. Cnt.':@VM:'Exhaust Chamber Thk.'
|
||||||
Set_Property(ASMDataTable, "OLE.TitleList", HeaderTitles)
|
Set_Property(ASMDataTable, "OLE.TitleList", HeaderTitles)
|
||||||
|
|
||||||
//Set HTR Table Col. Headers
|
//Set HTR Table Col. Headers
|
||||||
HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Tube Run Cnt.':@VM:'Tube Thk':@VM:'Arm Wfr. Cnt.'
|
HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Tube Run Cnt.':@VM:'Tube Thk':@VM:'Arm Wfr. Cnt.':@VM:'Exhaust Chamber Thk.'
|
||||||
Set_Property(HTRDataTable, "OLE.TitleList", HeaderTitles)
|
Set_Property(HTRDataTable, "OLE.TitleList", HeaderTitles)
|
||||||
|
|
||||||
//Set EPP Table Col. Headers
|
//Set EPP Table Col. Headers
|
||||||
HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Bell Jar Run Cnt.':@VM:'Bell Jar Thk':@VM:'Lower Quartz Run Cnt.':@VM:'Lower Quartz thk.'
|
HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Bell Jar Run Cnt.':@VM:'Bell Jar Thk':@VM:'Lower Quartz Run Cnt.':@VM:'Lower Quartz thk.':@VM:'Exhaust Chamber Thk.'
|
||||||
Set_Property(EPPDataTable, "OLE.TitleList", HeaderTitles)
|
Set_Property(EPPDataTable, "OLE.TitleList", HeaderTitles)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ Return Response else ''
|
|||||||
// Service Parameter Options
|
// Service Parameter Options
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
Options BOOLEAN = True$, False$
|
Options BOOLEAN = True$, False$
|
||||||
Options REACTORMETRIC = 'TUBE_BELL_JAR_THK', 'TUBE_BELL_JAR_WFR_CNT', 'SUSC_THK', 'SUSC_WFR_CNT', 'LOWER_QUARTZ_THK', 'LOWER_QUARTZ_WFR', 'ARMS_WFR_CNT'
|
Options REACTORMETRIC = 'TUBE_BELL_JAR_THK', 'TUBE_BELL_JAR_WFR_CNT', 'SUSC_THK', 'SUSC_WFR_CNT', 'LOWER_QUARTZ_THK', 'LOWER_QUARTZ_WFR', 'ARMS_WFR_CNT', 'EXHAUST_CHAMBER_THK'
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Services
|
// Services
|
||||||
@ -136,6 +136,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
|
CurrExhaustThk = OldReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
|
|
||||||
// Arms are not used for EPP
|
// Arms are not used for EPP
|
||||||
If ReactorType NE 'EPP' then
|
If ReactorType NE 'EPP' then
|
||||||
@ -150,6 +151,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
||||||
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
||||||
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
||||||
|
If CurrExhaustThk = '' then CurrExhaustThk = 0
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
|
|
||||||
@ -161,6 +163,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + 1
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + 1
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + TargetThickness
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + TargetThickness
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + 1
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + 1
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + TargetThickness
|
||||||
|
|
||||||
Case ReactorType = 'HTR'
|
Case ReactorType = 'HTR'
|
||||||
|
|
||||||
@ -176,6 +179,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
Case SusceptorSize = 8
|
Case SusceptorSize = 8
|
||||||
// Round up
|
// Round up
|
||||||
@ -192,6 +196,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -206,6 +211,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + WaferCount
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + WaferCount
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -229,6 +235,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<1, 4> = ReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
ResponseData<1, 4> = ReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
||||||
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
||||||
ResponseData<1, 6> = ReactorRec<REACTOR_ARMS_WFR_CNT$>
|
ResponseData<1, 6> = ReactorRec<REACTOR_ARMS_WFR_CNT$>
|
||||||
|
ResponseData<1, 7> = ReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
//These are the column titles to help us with API Responses
|
//These are the column titles to help us with API Responses
|
||||||
ResponseData<2, 1> = 'ReactorID'
|
ResponseData<2, 1> = 'ReactorID'
|
||||||
ResponseData<2, 2> = 'SusceptorWaferCount'
|
ResponseData<2, 2> = 'SusceptorWaferCount'
|
||||||
@ -236,6 +243,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<2, 4> = 'TubeWaferCount'
|
ResponseData<2, 4> = 'TubeWaferCount'
|
||||||
ResponseData<2, 5> = 'TubeThickness'
|
ResponseData<2, 5> = 'TubeThickness'
|
||||||
ResponseData<2, 6> = 'ArmsWaferCount'
|
ResponseData<2, 6> = 'ArmsWaferCount'
|
||||||
|
ResponseData<2, 7> = 'ExhuastChamberThickness'
|
||||||
Case ReactorType EQ 'HTR'
|
Case ReactorType EQ 'HTR'
|
||||||
ResponseData<1, 1> = ReactorID
|
ResponseData<1, 1> = ReactorID
|
||||||
ResponseData<1, 2> = ReactorRec<REACTOR_SUSC_WFR_CNT$>
|
ResponseData<1, 2> = ReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
@ -243,6 +251,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<1, 4> = ReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
ResponseData<1, 4> = ReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
||||||
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
||||||
ResponseData<1, 6> = ReactorRec<REACTOR_ARMS_WFR_CNT$>
|
ResponseData<1, 6> = ReactorRec<REACTOR_ARMS_WFR_CNT$>
|
||||||
|
ResponseData<1, 7> = ReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
//These are the column titles to help us with API Responses
|
//These are the column titles to help us with API Responses
|
||||||
ResponseData<2, 1> = 'ReactorID'
|
ResponseData<2, 1> = 'ReactorID'
|
||||||
ResponseData<2, 2> = 'SusceptorWaferCount'
|
ResponseData<2, 2> = 'SusceptorWaferCount'
|
||||||
@ -250,6 +259,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<2, 4> = 'TubeWaferCount'
|
ResponseData<2, 4> = 'TubeWaferCount'
|
||||||
ResponseData<2, 5> = 'TubeThickness'
|
ResponseData<2, 5> = 'TubeThickness'
|
||||||
ResponseData<2, 6> = 'ArmsWaferCount'
|
ResponseData<2, 6> = 'ArmsWaferCount'
|
||||||
|
ResponseData<2, 7> = 'ExhuastChamberThickness'
|
||||||
Case ReactorType EQ 'EPP'
|
Case ReactorType EQ 'EPP'
|
||||||
ResponseData<1, 1> = ReactorID
|
ResponseData<1, 1> = ReactorID
|
||||||
ResponseData<1, 2> = ReactorRec<REACTOR_SUSC_WFR_CNT$>
|
ResponseData<1, 2> = ReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
@ -258,6 +268,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
||||||
ResponseData<1, 6> = ReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
ResponseData<1, 6> = ReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
ResponseData<1, 7> = ReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
ResponseData<1, 7> = ReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
|
ResponseData<1, 8> = ReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
//These are the column titles to help us with API Responses
|
//These are the column titles to help us with API Responses
|
||||||
ResponseData<2, 1> = 'ReactorID'
|
ResponseData<2, 1> = 'ReactorID'
|
||||||
ResponseData<2, 2> = 'SusceptorWaferCount'
|
ResponseData<2, 2> = 'SusceptorWaferCount'
|
||||||
@ -266,6 +277,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<2, 5> = 'BellJarThickness'
|
ResponseData<2, 5> = 'BellJarThickness'
|
||||||
ResponseData<2, 6> = 'LowerQuartzWaferCount'
|
ResponseData<2, 6> = 'LowerQuartzWaferCount'
|
||||||
ResponseData<2, 7> = 'LowerQuartzThickness'
|
ResponseData<2, 7> = 'LowerQuartzThickness'
|
||||||
|
ResponseData<2, 8> = 'ExhuastChamberThickness'
|
||||||
End Case
|
End Case
|
||||||
Response = ResponseData
|
Response = ResponseData
|
||||||
end else
|
end else
|
||||||
@ -307,6 +319,7 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
|
CurrExhaustThk = OldReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
|
|
||||||
// Arms are not used for EPP
|
// Arms are not used for EPP
|
||||||
If ReactorType NE 'EPP' then
|
If ReactorType NE 'EPP' then
|
||||||
@ -321,6 +334,7 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
||||||
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
||||||
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
||||||
|
If CurrExhaustThk = '' then CurrExhaustThk = 0
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
|
|
||||||
@ -332,6 +346,7 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - 1
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - 1
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - TargetThickness
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - TargetThickness
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - 1
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - 1
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - TargetThickness
|
||||||
|
|
||||||
Case ReactorType = 'HTR'
|
Case ReactorType = 'HTR'
|
||||||
|
|
||||||
@ -342,11 +357,12 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
ThkAddition = (WaferCount / 5) * TargetThickness
|
ThkAddition = (WaferCount / 5) * TargetThickness
|
||||||
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk - ThkAddition
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt - CntAddition
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt - CntAddition
|
||||||
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk + ThkAddition
|
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - CntAddition
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - CntAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
Case SusceptorSize = 8
|
Case SusceptorSize = 8
|
||||||
// Round up
|
// Round up
|
||||||
@ -363,6 +379,7 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -377,6 +394,7 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - WaferCount
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - WaferCount
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -410,6 +428,7 @@ Service IncrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
|
CurrExhaustThk = OldReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
|
|
||||||
// Arms are not used for EPP
|
// Arms are not used for EPP
|
||||||
If ReactorType NE 'EPP' then
|
If ReactorType NE 'EPP' then
|
||||||
@ -435,6 +454,7 @@ Service IncrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + 1
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + 1
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + TargetThickness
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + TargetThickness
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + 1
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + 1
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + TargetThickness
|
||||||
|
|
||||||
Case ReactorType = 'HTR'
|
Case ReactorType = 'HTR'
|
||||||
|
|
||||||
@ -450,6 +470,7 @@ Service IncrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
Case SusceptorSize = 8
|
Case SusceptorSize = 8
|
||||||
// Round up
|
// Round up
|
||||||
@ -466,6 +487,7 @@ Service IncrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -480,6 +502,7 @@ Service IncrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + WaferCount
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + WaferCount
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -513,6 +536,7 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
|
CurrExhaustThk = OldReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
|
|
||||||
// Arms are not used for EPP
|
// Arms are not used for EPP
|
||||||
If ReactorType NE 'EPP' then
|
If ReactorType NE 'EPP' then
|
||||||
@ -527,6 +551,7 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
||||||
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
||||||
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
||||||
|
If CurrExhaustThk = '' then CurrExhaustThk = 0
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
|
|
||||||
@ -538,6 +563,7 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - 1
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - 1
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - TargetThickness
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - TargetThickness
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - 1
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - 1
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - TargetThickness
|
||||||
|
|
||||||
Case ReactorType = 'HTR'
|
Case ReactorType = 'HTR'
|
||||||
|
|
||||||
@ -548,11 +574,12 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
ThkAddition = (WaferCount / 5) * TargetThickness
|
ThkAddition = (WaferCount / 5) * TargetThickness
|
||||||
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk - ThkAddition
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt - CntAddition
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt - CntAddition
|
||||||
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk + ThkAddition
|
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - CntAddition
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - CntAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
Case SusceptorSize = 8
|
Case SusceptorSize = 8
|
||||||
// Round up
|
// Round up
|
||||||
@ -569,6 +596,7 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -583,6 +611,7 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - WaferCount
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - WaferCount
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -596,7 +625,7 @@ end service
|
|||||||
// ResetWfrMetric
|
// ResetWfrMetric
|
||||||
//
|
//
|
||||||
// RDSNo. - [Required]
|
// RDSNo. - [Required]
|
||||||
// MetricType - [Required]('TUBE_BELL_JAR_THK', 'TUBE_BELL_JAR_WFR_CNT', 'SUSC_THK', 'SUSC_WFR_CNT', 'LOWER_QUARTZ_THK', 'LOWER_QUARTZ_WFR', 'ARMS_WFR_CNT')
|
// MetricType - [Required]('TUBE_BELL_JAR_THK', 'TUBE_BELL_JAR_WFR_CNT', 'SUSC_THK', 'SUSC_WFR_CNT', 'LOWER_QUARTZ_THK', 'LOWER_QUARTZ_WFR', 'ARMS_WFR_CNT', EXHAUST_CHAMBER_THK)
|
||||||
//
|
//
|
||||||
// Reset a specified REACTOR metric to 0.
|
// Reset a specified REACTOR metric to 0.
|
||||||
//
|
//
|
||||||
@ -628,6 +657,9 @@ Service ResetWfrMetric(ReactorNo, MetricType = REACTORMETRIC)
|
|||||||
Case MetricType = 'ARMS_WFR_CNT'
|
Case MetricType = 'ARMS_WFR_CNT'
|
||||||
ReactorRec<REACTOR_ARMS_WFR_CNT$> = 0
|
ReactorRec<REACTOR_ARMS_WFR_CNT$> = 0
|
||||||
|
|
||||||
|
Case MetricType = 'EXHAUST_CHAMBER_THK'
|
||||||
|
ReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = 0
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, ReactorRec, 1, 0, 0)
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, ReactorRec, 1, 0, 0)
|
||||||
|
@ -140,7 +140,7 @@ WRITE_RECORD_PRE:
|
|||||||
// Req'd parameter checks
|
// Req'd parameter checks
|
||||||
ItemType = {RI_TYPE}
|
ItemType = {RI_TYPE}
|
||||||
|
|
||||||
* If ItemType EQ '' then ErrMsg := 'Item Type was not specified. '
|
If ItemType EQ '' then ErrMsg := 'Item Type was not specified. '
|
||||||
|
|
||||||
If ErrMsg NE '' then
|
If ErrMsg NE '' then
|
||||||
Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
|
Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
|
||||||
|
@ -79,6 +79,7 @@ Service CreateReturnToFabRecord(CassId, UserId)
|
|||||||
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
||||||
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_GENERAL',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = UserId
|
Recipients<1, -1> = UserId
|
||||||
SentFrom = 'OI_ADMIN'
|
SentFrom = 'OI_ADMIN'
|
||||||
Subject = 'Return To Fab Form Created'
|
Subject = 'Return To Fab Form Created'
|
||||||
@ -475,6 +476,7 @@ Service SetBinToBin(RTFId, MHUserId)
|
|||||||
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
||||||
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_GENERAL',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = RTFOrigUser
|
Recipients<1, -1> = RTFOrigUser
|
||||||
SentFrom = 'OI_ADMIN'
|
SentFrom = 'OI_ADMIN'
|
||||||
Subject = 'Return To Fab Form Updated'
|
Subject = 'Return To Fab Form Updated'
|
||||||
@ -549,6 +551,7 @@ Service SetRTFCompleted(RTFId, CompleteUserId)
|
|||||||
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
||||||
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_GENERAL',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = RTFRecord<RETURN_TO_FAB_LOTS_REQUESTOR_USER_ID$>
|
Recipients<1, -1> = RTFRecord<RETURN_TO_FAB_LOTS_REQUESTOR_USER_ID$>
|
||||||
SentFrom = 'OI_ADMIN'
|
SentFrom = 'OI_ADMIN'
|
||||||
Subject = 'Return To Fab Form Completed'
|
Subject = 'Return To Fab Form Completed'
|
||||||
@ -623,6 +626,7 @@ Service SetEvalInfo(RTFId, EvalUserId, ResultId)
|
|||||||
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
||||||
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_GENERAL',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = RTFRecord<RETURN_TO_FAB_LOTS_REQUESTOR_USER_ID$>
|
Recipients<1, -1> = RTFRecord<RETURN_TO_FAB_LOTS_REQUESTOR_USER_ID$>
|
||||||
SentFrom = 'OI_ADMIN'
|
SentFrom = 'OI_ADMIN'
|
||||||
Subject = 'Return To Fab Form Updated'
|
Subject = 'Return To Fab Form Updated'
|
||||||
@ -822,3 +826,4 @@ end service
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,8 @@ Subroutine Service_Manager_Debugger_Intercept(Void)
|
|||||||
Metadata :
|
Metadata :
|
||||||
|
|
||||||
History : (Date, Initials, Notes)
|
History : (Date, Initials, Notes)
|
||||||
07/25/23 djs Original programmer.
|
07/25/23 djs Original programmer.
|
||||||
|
06/04/25 djs Added LSL note creation (and email forwarding) to notify OI_ADMIN users when invoked.
|
||||||
|
|
||||||
***********************************************************************************************************************/
|
***********************************************************************************************************************/
|
||||||
|
|
||||||
@ -24,24 +25,58 @@ Subroutine Service_Manager_Debugger_Intercept(Void)
|
|||||||
|
|
||||||
$insert APP_INSERTS
|
$insert APP_INSERTS
|
||||||
$insert RTI_DEBUG_COMMON
|
$insert RTI_DEBUG_COMMON
|
||||||
|
$insert ENVIRON_CONSTANTS
|
||||||
|
|
||||||
Declare function Environment_Services, Logging_Services
|
Declare function Environment_Services, Logging_Services, Environment_Services, GetCommandLine, Datetime
|
||||||
Declare subroutine Logging_Services
|
Declare subroutine Logging_Services, obj_Notes, Set_Env
|
||||||
|
|
||||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\ServiceManager'
|
Main:
|
||||||
LogDate = Oconv(Date(), 'D4/')
|
|
||||||
LogTime = Oconv(Time(), 'MTS')
|
// Log event in .\LogFiles\ServiceManager\<Date> OEngine Log.csv
|
||||||
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' OEngine Log.csv'
|
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\ServiceManager'
|
||||||
Headers = 'Stored Proc Status' : @FM : 'Stored Proc Status Code' : @FM : 'Current Program' : @FM : 'Call Depth' : @FM : 'Line No' : @FM : 'Call Stack'
|
LogDate = Oconv(Date(), 'D4/')
|
||||||
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', Headers, '', False$, False$)
|
LogTime = Oconv(Time(), 'MTS')
|
||||||
LogData = ''
|
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' OEngine Log.csv'
|
||||||
LogData<1> = SPStatus@
|
Headers = 'Stored Proc Status' : @FM : 'Stored Proc Status Code' : @FM : 'Current Program' : @FM
|
||||||
LogData<2> = SPStatCode@
|
Headers := 'Call Depth' : @FM : 'Line No' : @FM : 'Call Stack'
|
||||||
LogData<3> = Curr_Program@
|
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', Headers, '', False$, False$)
|
||||||
LogData<4> = CallDepth@
|
LogData = ''
|
||||||
LogData<5> = LineNo@
|
LogData<1> = spStatus@
|
||||||
LogData<6> = CallStack@
|
LogData<2> = spStatCode@
|
||||||
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, '', '', '')
|
LogData<3> = curr_Program@
|
||||||
|
LogData<4> = callDepth@
|
||||||
|
LogData<5> = lineNo@
|
||||||
|
LogData<6> = callStack@
|
||||||
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, '', '', '')
|
||||||
|
|
||||||
|
// Send an LSL message to FI admins to alert them. This is forward to their email address if configured in
|
||||||
|
// their LSL_USERS record.
|
||||||
|
CmdLine = GetCommandLine()
|
||||||
|
EngIndex = Index(CmdLine, '/S=', 1)
|
||||||
|
EngNo = CmdLine[EngIndex + 3, 'F ']
|
||||||
|
Server = Environment_Services('GetServer')
|
||||||
|
Recipients = ''
|
||||||
|
SentFrom = 'SYSTEM'
|
||||||
|
Subject = 'Service Manager Debugger Intercept Invoked'
|
||||||
|
Message = OConv(Datetime(), 'DT2/^H')
|
||||||
|
Message<2> = 'RevEngineHost (OEngine) ':EngNo:' encountered a runtime error on server ':Server
|
||||||
|
Message<3> = 'Stored Procedure Status: ':spStatus@
|
||||||
|
StatCodes = spStatCode@
|
||||||
|
Swap Char(0) with ',' in StatCodes
|
||||||
|
Swap Char(23) with '' in StatCodes
|
||||||
|
Message<4> = 'Stored Procedure Status Code: ':StatCodes
|
||||||
|
Message<5> = 'Current Program: ':curr_Program@
|
||||||
|
Message<6> = 'Call Depth: ':callDepth@
|
||||||
|
Message<7> = 'Line No: ':lineNo@
|
||||||
|
Message<8> = 'Call Stack: ':\0D0A\:callStack@
|
||||||
|
Swap @FM with \0D0A\ in Message
|
||||||
|
Swap @VM with ',' in Message
|
||||||
|
AttachWindow = ''
|
||||||
|
AttachKey = ''
|
||||||
|
SendToGroup = 'OI_SYSADMIN'
|
||||||
|
|
||||||
|
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
|
||||||
|
obj_Notes('Create',Parms)
|
||||||
|
|
||||||
Return
|
Return
|
||||||
|
|
||||||
|
@ -27,19 +27,29 @@ Function Service_Services(@Service, @Params)
|
|||||||
|
|
||||||
#pragma precomp SRP_PreCompiler
|
#pragma precomp SRP_PreCompiler
|
||||||
|
|
||||||
$insert LOGICAL
|
$insert APP_INSERTS
|
||||||
$insert SERVICE_SETUP
|
$insert SERVICE_SETUP
|
||||||
$insert SERVICES_EQUATES
|
$insert SERVICES_EQUATES
|
||||||
$insert RLIST_EQUATES
|
$insert RLIST_EQUATES
|
||||||
$insert SQL_REQUESTS_EQUATES
|
$insert SQL_REQUESTS_EQUATES
|
||||||
$Insert PROC_QUEUE_EQUATES
|
$Insert PROC_QUEUE_EQUATES
|
||||||
|
|
||||||
|
Equ Comma$ to ','
|
||||||
|
|
||||||
Common /ServiceServices/ Unused1@, Unused2@, Unused3@, Unused4@, Unused5@, Unused6@, Unused7@, Unused8@, Unused9@, Unused10@
|
Common /ServiceServices/ Unused1@, Unused2@, Unused3@, Unused4@, Unused5@, Unused6@, Unused7@, Unused8@, Unused9@, Unused10@
|
||||||
|
|
||||||
Declare function Service_Services, Memory_Services, SRP_List, SRP_FastArray, SRP_Array, Database_Services, Datetime
|
Declare function Service_Services, Memory_Services, SRP_List, SRP_FastArray, SRP_Array, Database_Services, Datetime
|
||||||
Declare Function GetTickCount, SRP_Decode, RTI_CREATEGUID
|
Declare function GetTickCount, SRP_Decode, RTI_CreateGuid, UCase, Environment_services, Logging_Services
|
||||||
Declare subroutine Service_Services, Memory_Services, SRP_List, SRP_FastArray, RList, Set_Status, Database_Services
|
Declare subroutine Service_Services, Memory_Services, SRP_List, SRP_FastArray, RList, Set_Status, Database_Services
|
||||||
Declare Subroutine Yield, WinYield, Sleepery, Btree.Extract
|
Declare Subroutine Yield, WinYield, Sleepery, Btree.Extract, Logging_Services, obj_Notes
|
||||||
|
|
||||||
|
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\ProcQueue'
|
||||||
|
LogDate = Oconv(Date(), 'D4/')
|
||||||
|
LogTime = Oconv(Time(), 'MTS')
|
||||||
|
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Procedure Queue Log.csv'
|
||||||
|
Headers = 'Logging DTM' : @FM : 'Machine' : @FM : 'RequestKeyId' : @FM : 'Procedure' : @FM : 'Params' : @FM : 'Result' : @FM : 'Error Message'
|
||||||
|
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
|
||||||
|
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
|
||||||
|
|
||||||
GoToService else
|
GoToService else
|
||||||
Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
|
Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
|
||||||
@ -165,18 +175,21 @@ Service ProcessProcedureQueue()
|
|||||||
ReadNext RequestKeyID else EOF = True$
|
ReadNext RequestKeyID else EOF = True$
|
||||||
Until EOF or Done
|
Until EOF or Done
|
||||||
Lock hProcQueue, RequestKeyID then
|
Lock hProcQueue, RequestKeyID then
|
||||||
|
Server = Environment_Services('GetServer')
|
||||||
Done = True$
|
Done = True$
|
||||||
Database_Services('GetKeyIDLock', 'PROC_QUEUE', RequestKeyId)
|
Database_Services('GetKeyIDLock', 'PROC_QUEUE', RequestKeyId)
|
||||||
RequestRow = Database_Services('ReadDataRow', 'PROC_QUEUE', RequestKeyID)
|
RequestRow = Database_Services('ReadDataRow', 'PROC_QUEUE', RequestKeyID)
|
||||||
If RequestRow NE '' then
|
If RequestRow NE '' then
|
||||||
Procedure = RequestRow<PROC_QUEUE.PROC_NAME$>
|
Procedure = RequestRow<PROC_QUEUE.PROC_NAME$>
|
||||||
|
Procedure = UCase(Procedure)
|
||||||
Params = RequestRow<PROC_QUEUE.PARAMS$>
|
Params = RequestRow<PROC_QUEUE.PARAMS$>
|
||||||
If Procedure NE '' then
|
If Procedure NE '' then
|
||||||
Dim ProcParams(11)
|
Dim ProcParams(12)
|
||||||
For each Param in Params using @VM setting pPos
|
For each Param in Params using @VM setting pPos
|
||||||
ProcParams(pPos) = Param
|
ProcParams(pPos) = Param
|
||||||
Next Param
|
Next Param
|
||||||
NumArguments = DCount(Params, @VM)
|
NumArguments = DCount(Params, @VM)
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
Case NumArguments EQ 0 ; Call @Procedure()
|
Case NumArguments EQ 0 ; Call @Procedure()
|
||||||
Case NumArguments EQ 1 ; Call @Procedure(ProcParams(1))
|
Case NumArguments EQ 1 ; Call @Procedure(ProcParams(1))
|
||||||
@ -194,17 +207,40 @@ Service ProcessProcedureQueue()
|
|||||||
Error_Services('Add', 'Error in ':Service:' service. More than 11 arguments are not currently supported.')
|
Error_Services('Add', 'Error in ':Service:' service. More than 11 arguments are not currently supported.')
|
||||||
End Case
|
End Case
|
||||||
end
|
end
|
||||||
If Error_Services('NoError') then
|
|
||||||
Database_Services('DeleteDataRow', 'PROC_QUEUE', RequestKeyId, True$, False$) ; // This call will release the lock
|
Swap @VM with ',' in Params
|
||||||
|
LogData = LoggingDTM
|
||||||
|
LogData<2> = Server
|
||||||
|
LogData<3> = RequestKeyId
|
||||||
|
LogData<4> = Procedure
|
||||||
|
LogData<5> = Params
|
||||||
|
ErrCode = ''
|
||||||
|
If ( Get_Status(ErrCode) or Error_Services('HasError') ) then
|
||||||
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
|
Recipients = ''
|
||||||
|
SentFrom = 'SYSTEM'
|
||||||
|
Subject = 'Background Procedure Queue Error'
|
||||||
|
Message = OConv(Datetime(), 'DT2/^H')
|
||||||
|
Message<2> = 'Error on server ':Server
|
||||||
|
Message<3> = 'Stored Procedure: ':Procedure
|
||||||
|
StatCodes = 'Parameters: ':Params
|
||||||
|
Message<4> = 'Error_Services error message: ':ErrorMessage
|
||||||
|
Message<5> = 'Get_Status error code: ':ErrCode
|
||||||
|
Swap @FM with \0D0A\ in Message
|
||||||
|
AttachWindow = ''
|
||||||
|
AttachKey = ''
|
||||||
|
SendToGroup = 'OI_SYSADMIN'
|
||||||
|
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
|
||||||
|
obj_Notes('Create',Parms)
|
||||||
|
LogData<6> = 'Failed'
|
||||||
|
LogData<7> = 'Error_Services error message: ':ErrorMessage:' Get_Status error code: ':ErrCode
|
||||||
end else
|
end else
|
||||||
RequestRow<PROC_QUEUE.LAST_ATTEMPT_DTM$> = DateTime()
|
LogData<6> = 'Success'
|
||||||
RequestRow<PROC_QUEUE.ERROR$> = Error_Services('GetMessage')
|
|
||||||
Database_Services('WriteDataRow', 'PROC_QUEUE', RequestKeyID, RequestRow, True$, False$, False$) ; // This call will release the lock
|
|
||||||
end
|
end
|
||||||
end else
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
||||||
// Empty request, so delete it from the queue
|
|
||||||
Database_Services('DeleteDataRow', 'PROC_QUEUE', RequestKeyId, True$, False$) ; // This call will release the lock
|
|
||||||
end
|
end
|
||||||
|
Database_Services('DeleteDataRow', 'PROC_QUEUE', RequestKeyId, True$, False$) ; // This call should release the lock
|
||||||
|
Unlock hProcQueue, RequestKeyID else Null
|
||||||
end
|
end
|
||||||
Repeat
|
Repeat
|
||||||
end
|
end
|
||||||
@ -258,4 +294,3 @@ return
|
|||||||
/// Internal GoSubs
|
/// Internal GoSubs
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
@ -1231,19 +1231,23 @@ Service SignVoidNonEpp(WOMatKey, Username)
|
|||||||
Service_Services('PostProcedure', 'RDS_SERVICES', 'DetachRDSFromWO':@vm:RDSNo)
|
Service_Services('PostProcedure', 'RDS_SERVICES', 'DetachRDSFromWO':@vm:RDSNo)
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
LotEventParams = ''
|
LotEventParams = ''
|
||||||
LotEventParams<1,1> = 'CreateLotEvent'
|
LotEventParams<1,1> = 'CreateLotEvent' ; //Service Module
|
||||||
LotEventParams<1,4> = DateTime()
|
LotEventParams<1,2> = ''; //Legacy Lot Id, set below
|
||||||
LotEventParams<1,5> = 'VOID'
|
LotEventParams<1,3> = DateTime(); //Datetime
|
||||||
LotEventParams<1,6> = 'Lot voided by ' : Username
|
LotEventParams<1,4> = 'VOID'; //Event Type
|
||||||
LotEventParams<1,11> = Username
|
LotEventParams<1,5> = 'Lot voided by ' : Username; //Event Note
|
||||||
|
LotEventParams<1,6> = ''; //Equipment id
|
||||||
|
LotEventParams<1,7> = Username ;//User Id
|
||||||
|
LotEventParams<1,8> = True$; //IsLegacyLotId
|
||||||
|
LotEventParams<1,9> = ''; //Legacy Lot Type, set below
|
||||||
If RDSNo NE '' then
|
If RDSNo NE '' then
|
||||||
LotEventParams<1,2> = RDSNo
|
LotEventParams<1,2> = RDSNo
|
||||||
LotEventParams<1,3> = 'RDS'
|
LotEventParams<1,9> = 'RDS'; //Legacy Lot Type
|
||||||
Service_Services('PostProcedure', 'LOT_SERVICES', LotEventParams)
|
Service_Services('PostProcedure', 'LOT_EVENT_SERVICES', LotEventParams)
|
||||||
end else
|
end else
|
||||||
LotEventParams<1,2> = WoMatKey
|
LotEventParams<1,2> = WoMatKey
|
||||||
LotEventParams<1,3> = 'WO_MAT'
|
LotEventParams<1,9> = 'WO_MAT'
|
||||||
Service_Services('PostProcedure', 'LOT_SERVICES', LotEventParams)
|
Service_Services('PostProcedure', 'LOT_EVENT_SERVICES', LotEventParams)
|
||||||
end
|
end
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
//Add inventory transaction
|
//Add inventory transaction
|
||||||
@ -1311,13 +1315,15 @@ Service SignVoidWMI(WMInKey, Username)
|
|||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
LotEventParams = ''
|
LotEventParams = ''
|
||||||
LotEventParams<1,1> = 'CreateLotEvent'
|
LotEventParams<1,1> = 'CreateLotEvent'
|
||||||
LotEventParams<1,4> = DateTime()
|
|
||||||
LotEventParams<1,5> = 'VOID'
|
|
||||||
LotEventParams<1,6> = 'Lot voided by ' : Username
|
|
||||||
LotEventParams<1,11> = Username
|
|
||||||
LotEventParams<1,2> = WMInKey
|
LotEventParams<1,2> = WMInKey
|
||||||
LotEventParams<1,3> = 'WM_IN'
|
LotEventParams<1,3> = DateTime()
|
||||||
Service_Services('PostProcedure', 'LOT_SERVICES', LotEventParams)
|
LotEventParams<1,4> = 'VOID'
|
||||||
|
LotEventParams<1,5> = 'Lot voided by ' : Username
|
||||||
|
LotEventParams<1,6> = ''
|
||||||
|
LotEventParams<1,7> = Username
|
||||||
|
LotEventParams<1,8> = True$
|
||||||
|
LotEventParams<1,9> = 'WM_IN'
|
||||||
|
Service_Services('PostProcedure', 'LOT_EVENT_SERVICES', LotEventParams)
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
//Check if WMO is also voided. If it is, remove it from the WO_MAT_KEY field in WO_LOG, and void the WO_MAT record
|
//Check if WMO is also voided. If it is, remove it from the WO_MAT_KEY field in WO_LOG, and void the WO_MAT record
|
||||||
WMOKey = WMInKey; //the paired WMO key is the same as the WMIKey
|
WMOKey = WMInKey; //the paired WMO key is the same as the WMIKey
|
||||||
@ -1386,13 +1392,15 @@ Service SignVoidWMO(WMOutKey, Username)
|
|||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
LotEventParams = ''
|
LotEventParams = ''
|
||||||
LotEventParams<1,1> = 'CreateLotEvent'
|
LotEventParams<1,1> = 'CreateLotEvent'
|
||||||
LotEventParams<1,4> = DateTime()
|
|
||||||
LotEventParams<1,5> = 'VOID'
|
|
||||||
LotEventParams<1,6> = 'Lot voided by ' : Username
|
|
||||||
LotEventParams<1,11> = Username
|
|
||||||
LotEventParams<1,2> = WMOutKey
|
LotEventParams<1,2> = WMOutKey
|
||||||
LotEventParams<1,3> = 'WM_OUT'
|
LotEventParams<1,3> = DateTime()
|
||||||
Service_Services('PostProcedure', 'LOT_SERVICES', LotEventParams)
|
LotEventParams<1,4> = 'VOID'
|
||||||
|
LotEventParams<1,5> = 'Lot voided by ' : Username
|
||||||
|
LotEventParams<1,6> = ''
|
||||||
|
LotEventParams<1,7> = Username
|
||||||
|
LotEventParams<1,8> = True$
|
||||||
|
LotEventParams<1,9> = 'WM_OUT'
|
||||||
|
Service_Services('PostProcedure', 'LOT_EVENT_SERVICES', LotEventParams)
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
//Check if WMI is also voided. If it is, remove it from the WO_MAT_KEY field in WO_LOG, and void the WO_MAT record
|
//Check if WMI is also voided. If it is, remove it from the WO_MAT_KEY field in WO_LOG, and void the WO_MAT record
|
||||||
WMIKey = WMOutKey; //the paired WMO key is the same as the WMIKey
|
WMIKey = WMOutKey; //the paired WMO key is the same as the WMIKey
|
||||||
@ -1558,3 +1566,4 @@ ClearCursors:
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -573,15 +573,16 @@ return
|
|||||||
|
|
||||||
|
|
||||||
WRITE_RECORD:
|
WRITE_RECORD:
|
||||||
|
|
||||||
WONo = Field(Name, '*', 1)
|
WONo = Field(Name, '*', 1)
|
||||||
CassNo = Field(Name, '*', 2)
|
CassNo = Field(Name, '*', 2)
|
||||||
WOMatKeyID = Name
|
WOMatKeyID = Name
|
||||||
|
|
||||||
If {REACTOR_TYPE} NE 'EPP' then
|
If {REACTOR_TYPE} NE 'EPP' then
|
||||||
If {MAKEUP_BOX} then
|
If {MAKEUP_BOX} then
|
||||||
CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKeyID)
|
CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKeyID)
|
||||||
If CurrWaferCount GT 0 then
|
CurrStatus = {CURR_STATUS}
|
||||||
|
If ( (CurrWaferCount GT 0) and (CurrStatus NE 'VOID') ) then
|
||||||
// Populate MAKEUP_WAFERS table
|
// Populate MAKEUP_WAFERS table
|
||||||
// Add/update cassette data to the MAKEUP_WAFERS table
|
// Add/update cassette data to the MAKEUP_WAFERS table
|
||||||
If RowExists('MAKEUP_WAFERS', WOMatKeyID) then
|
If RowExists('MAKEUP_WAFERS', WOMatKeyID) then
|
||||||
@ -600,7 +601,7 @@ WRITE_RECORD:
|
|||||||
MUWfrRec<MAKEUP_WAFERS.PROD_VER_NO$> = {PROD_VER_NO}
|
MUWfrRec<MAKEUP_WAFERS.PROD_VER_NO$> = {PROD_VER_NO}
|
||||||
MUWfrRec<MAKEUP_WAFERS.CUST_PART_NO$> = {CUST_PART_NO}
|
MUWfrRec<MAKEUP_WAFERS.CUST_PART_NO$> = {CUST_PART_NO}
|
||||||
MUWfrRec<MAKEUP_WAFERS.REACT_TYPE$> = {REACTOR_TYPE}
|
MUWfrRec<MAKEUP_WAFERS.REACT_TYPE$> = {REACTOR_TYPE}
|
||||||
MUWfrRec<MAKEUP_WAFERS.CURR_STATUS_STATIC$> = {CURR_STATUS}
|
MUWfrRec<MAKEUP_WAFERS.CURR_STATUS_STATIC$> = CurrStatus
|
||||||
MUWfrRec<MAKEUP_WAFERS.WFR_QTY$> = CurrWaferCount
|
MUWfrRec<MAKEUP_WAFERS.WFR_QTY$> = CurrWaferCount
|
||||||
DateOut = Xlate('RDS', {RDS_NO}, 'DATE_OUT', 'X')
|
DateOut = Xlate('RDS', {RDS_NO}, 'DATE_OUT', 'X')
|
||||||
TimeOut = Xlate('RDS', {RDS_NO}, 'TIME_OUT', 'X') / 86400
|
TimeOut = Xlate('RDS', {RDS_NO}, 'TIME_OUT', 'X') / 86400
|
||||||
|
@ -83,4 +83,5 @@ Equ REACTOR_HGCV_CHECKLIST_ACTIVE$ To 71
|
|||||||
Equ REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$ To 72
|
Equ REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$ To 72
|
||||||
Equ REACTOR_ABORT_ALARM_CHECKLIST_ACTIVE$ To 73
|
Equ REACTOR_ABORT_ALARM_CHECKLIST_ACTIVE$ To 73
|
||||||
Equ REACTOR_ABORT_ALARM_COMPLETE$ To 74
|
Equ REACTOR_ABORT_ALARM_COMPLETE$ To 74
|
||||||
|
Equ REACTOR_EXHAUST_CHAMBER_THK$ To 75
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user