Modified QA met complete check before wafer counter to only apply to FQA location scans
This commit is contained in:
committed by
Stieber Daniel (CSC FI SPS MESLEO)
parent
9d6c4c154f
commit
c183da951a
@ -97,16 +97,6 @@ Event WINDOW.CREATE(CreateParam)
|
|||||||
LogData<5> = ToolLoc
|
LogData<5> = ToolLoc
|
||||||
LogData<6> = @Window:'.CREATE'
|
LogData<6> = @Window:'.CREATE'
|
||||||
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
||||||
QAMetComplete = ''
|
|
||||||
|
|
||||||
If CassID NE '' then
|
|
||||||
If RowExists('WM_OUT', CassID) then
|
|
||||||
WOMatKey = Xlate('WM_OUT', CassID, 'WO_MAT_KEY', 'X')
|
|
||||||
end else
|
|
||||||
WOMatKey = Xlate('RDS', CassID, 'WO_MAT_KEY', 'X')
|
|
||||||
end
|
|
||||||
QAMetComplete = Wo_Mat_Qa_Services('GetQAMetComplete', WOMatKey)
|
|
||||||
end
|
|
||||||
|
|
||||||
Convert '.' to '*' in CassID
|
Convert '.' to '*' in CassID
|
||||||
ExpectedQty = ''
|
ExpectedQty = ''
|
||||||
@ -115,8 +105,6 @@ Event WINDOW.CREATE(CreateParam)
|
|||||||
Set_Property(@Window:'.EDL_CASS_ID', 'TEXT', CassID)
|
Set_Property(@Window:'.EDL_CASS_ID', 'TEXT', CassID)
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
Case (CassID NE '' AND QAMetComplete EQ False$)
|
|
||||||
ErrorMsg = 'Wafer Counter Operation Not Allowed. QA Metrology Incomplete.'
|
|
||||||
Case ( (CassID EQ '') and (ToolLoc EQ '') )
|
Case ( (CassID EQ '') and (ToolLoc EQ '') )
|
||||||
// Alternate workflow
|
// Alternate workflow
|
||||||
Set_Property(@Window:'.LBL_CASS_ID', 'TEXT', 'Cass ID')
|
Set_Property(@Window:'.LBL_CASS_ID', 'TEXT', 'Cass ID')
|
||||||
@ -333,8 +321,6 @@ Event EDL_CASS_BARCODE.LOSTFOCUS(Flag, FocusID)
|
|||||||
Begin Case
|
Begin Case
|
||||||
Case RowExists('RDS', CassetteID)
|
Case RowExists('RDS', CassetteID)
|
||||||
WOMatKey = Xlate('RDS', CassetteID, 'WO_MAT_KEY', 'X')
|
WOMatKey = Xlate('RDS', CassetteID, 'WO_MAT_KEY', 'X')
|
||||||
QAMetComplete = Wo_Mat_Qa_Services('GetQAMetComplete', WOMatKey)
|
|
||||||
If QAMetComplete EQ True$ then
|
|
||||||
ExpectedQty = Xlate('RDS', CassetteID, 'WFRS_OUT', 'X')
|
ExpectedQty = Xlate('RDS', CassetteID, 'WFRS_OUT', 'X')
|
||||||
Set_Property(@Window:'.EDL_EXPECTED_QTY', 'TEXT', ExpectedQty)
|
Set_Property(@Window:'.EDL_EXPECTED_QTY', 'TEXT', ExpectedQty)
|
||||||
Set_Property(@Window:'.LBL_CASS_ID', 'TEXT', 'Cass RDS')
|
Set_Property(@Window:'.LBL_CASS_ID', 'TEXT', 'Cass RDS')
|
||||||
@ -347,14 +333,9 @@ Event EDL_CASS_BARCODE.LOSTFOCUS(Flag, FocusID)
|
|||||||
end else
|
end else
|
||||||
ErrorMsg = Error_Services('GetMessage')
|
ErrorMsg = Error_Services('GetMessage')
|
||||||
end
|
end
|
||||||
end else
|
|
||||||
ErrorMsg = 'Wafer Counter Operation Not Allowed. A Metrology stage is incomplete.'
|
|
||||||
end
|
|
||||||
|
|
||||||
Case RowExists('WM_OUT', CassetteID)
|
Case RowExists('WM_OUT', CassetteID)
|
||||||
WOMatKey = Xlate('WM_OUT', CassetteID, 'WO_MAT_KEY', 'X')
|
WOMatKey = Xlate('WM_OUT', CassetteID, 'WO_MAT_KEY', 'X')
|
||||||
QAMetComplete = Wo_Mat_Qa_Services('GetQAMetComplete', WOMatKey)
|
|
||||||
If QAMetComplete EQ True$ then
|
|
||||||
ExpectedQty = Xlate('WM_OUT', CassetteID, 'WAFER_CNT', 'X')
|
ExpectedQty = Xlate('WM_OUT', CassetteID, 'WAFER_CNT', 'X')
|
||||||
Set_Property(@Window:'.EDL_EXPECTED_QTY', 'TEXT', ExpectedQty)
|
Set_Property(@Window:'.EDL_EXPECTED_QTY', 'TEXT', ExpectedQty)
|
||||||
Set_Property(@Window:'.LBL_CASS_ID', 'TEXT', 'Cass WMO')
|
Set_Property(@Window:'.LBL_CASS_ID', 'TEXT', 'Cass WMO')
|
||||||
@ -366,9 +347,6 @@ Event EDL_CASS_BARCODE.LOSTFOCUS(Flag, FocusID)
|
|||||||
end else
|
end else
|
||||||
ErrorMsg = Error_Services('GetMessage')
|
ErrorMsg = Error_Services('GetMessage')
|
||||||
end
|
end
|
||||||
end else
|
|
||||||
ErrorMsg = 'Wafer Counter Operation Not Allowed. QA Metrology Incomplete.'
|
|
||||||
end
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
If ErrorMsg EQ '' then
|
If ErrorMsg EQ '' then
|
||||||
@ -438,7 +416,53 @@ Event EDL_TOOL_BARCODE.LOSTFOCUS(Flag, FocusID)
|
|||||||
Cnt = DCount(ScanData, '|')
|
Cnt = DCount(ScanData, '|')
|
||||||
If Cnt EQ 2 then
|
If Cnt EQ 2 then
|
||||||
WaferSize = Field(ScanData, '|', 1)
|
WaferSize = Field(ScanData, '|', 1)
|
||||||
Area = Field(ScanData, '|', 2)
|
Area = Field(ScanData, '|', 2) ; // This is a proxy for the operation being performed
|
||||||
|
|
||||||
|
If Area EQ 'FQA' then
|
||||||
|
CassetteID = Get_Property(@Window:'.EDL_CASS_ID', 'TEXT')
|
||||||
|
Begin Case
|
||||||
|
Case RowExists('RDS', CassetteID)
|
||||||
|
WOMatKey = Xlate('RDS', CassetteID, 'WO_MAT_KEY', 'X')
|
||||||
|
QAMetComplete = Wo_Mat_Qa_Services('GetQAMetComplete', WOMatKey)
|
||||||
|
If QAMetComplete EQ True$ then
|
||||||
|
ExpectedQty = Xlate('RDS', CassetteID, 'WFRS_OUT', 'X')
|
||||||
|
Set_Property(@Window:'.EDL_EXPECTED_QTY', 'TEXT', ExpectedQty)
|
||||||
|
Set_Property(@Window:'.LBL_CASS_ID', 'TEXT', 'Cass RDS')
|
||||||
|
Set_Property(@Window:'.LBL_CASS_BARCODE', 'TEXT', 'Cass RDS 2D')
|
||||||
|
|
||||||
|
WOMatKey = Xlate('RDS', CassetteID, 'WO_MAT_KEY', 'X')
|
||||||
|
CurrWfrMap = WO_Mat_Services('GetWaferMap', WOMatKey)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
ExpectedWfrMap = CurrWfrMap
|
||||||
|
end else
|
||||||
|
ErrorMsg = Error_Services('GetMessage')
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrorMsg = 'Wafer Counter Operation Not Allowed. A Metrology stage is incomplete.'
|
||||||
|
end
|
||||||
|
Case RowExists('WM_OUT', CassetteID)
|
||||||
|
WOMatKey = Xlate('WM_OUT', CassetteID, 'WO_MAT_KEY', 'X')
|
||||||
|
QAMetComplete = Wo_Mat_Qa_Services('GetQAMetComplete', WOMatKey)
|
||||||
|
If QAMetComplete EQ True$ then
|
||||||
|
ExpectedQty = Xlate('WM_OUT', CassetteID, 'WAFER_CNT', 'X')
|
||||||
|
Set_Property(@Window:'.EDL_EXPECTED_QTY', 'TEXT', ExpectedQty)
|
||||||
|
Set_Property(@Window:'.LBL_CASS_ID', 'TEXT', 'Cass WMO')
|
||||||
|
Set_Property(@Window:'.LBL_CASS_BARCODE', 'TEXT', 'Cass WMO 2D')
|
||||||
|
|
||||||
|
CurrWfrMap = WM_Out_Services('GetWaferMap', CassetteID)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
ExpectedWfrMap = CurrWfrMap
|
||||||
|
end else
|
||||||
|
ErrorMsg = Error_Services('GetMessage')
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrorMsg = 'Wafer Counter Operation Not Allowed. QA Metrology Incomplete.'
|
||||||
|
end
|
||||||
|
End Case
|
||||||
|
end
|
||||||
|
|
||||||
|
If ErrorMsg EQ '' then
|
||||||
|
|
||||||
Def = ""
|
Def = ""
|
||||||
Def<MTEXT$> = "Retreiving Wafer Counter Data..."
|
Def<MTEXT$> = "Retreiving Wafer Counter Data..."
|
||||||
Def<MTYPE$> = "U"
|
Def<MTYPE$> = "U"
|
||||||
@ -531,17 +555,16 @@ Event EDL_TOOL_BARCODE.LOSTFOCUS(Flag, FocusID)
|
|||||||
end else
|
end else
|
||||||
ErrorMsg = Error_Services('GetMessage')
|
ErrorMsg = Error_Services('GetMessage')
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end else
|
end else
|
||||||
ErrorMsg = 'Invalid Tool Barcode Scan.'
|
ErrorMsg = 'Invalid Tool Barcode Scan.'
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
|
|
||||||
LogData = ''
|
LogData = ''
|
||||||
LogData<1> = OConv(Datetime(), 'DT2/^H')
|
LogData<1> = OConv(Datetime(), 'DT2/^H')
|
||||||
LogData<2> = @User4
|
LogData<2> = @User4
|
||||||
LogData<3> = 'Verification process canceled'
|
LogData<3> = 'Verification process canceled'
|
||||||
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
||||||
|
|
||||||
End_Dialog(@Window, False$)
|
End_Dialog(@Window, False$)
|
||||||
end
|
end
|
||||||
If ErrorMsg NE '' then
|
If ErrorMsg NE '' then
|
||||||
@ -624,9 +647,3 @@ ClearForm:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user