apply abort metrology when specific sub modes are selected
This commit is contained in:
@ -1055,7 +1055,6 @@ end service
|
||||
Service ConvertRecordToJSON(KeyID, Record, itemURL)
|
||||
|
||||
jsonRecord = ''
|
||||
|
||||
If KeyID NE '' then
|
||||
|
||||
If Record EQ '' then Record = Database_Services('ReadDataRow', 'RDS', KeyID)
|
||||
@ -1231,7 +1230,9 @@ Service ConvertRecordToJSON(KeyID, Record, itemURL)
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service GetRDSMoves(ReportDTM)
|
||||
|
||||
DatesToSearch = ''
|
||||
ReportDTM = FIELD(ReportDTM, ' ', 1)
|
||||
query = 'SELECT RDS WITH DATE_OUT EQ ': QUOTE(ReportDTM)
|
||||
@ -1261,7 +1262,9 @@ Service GetRDSMoves(ReportDTM)
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service SignUnloadExtra1(RDSNo, LSLUserName)
|
||||
|
||||
IF LSLUserName NE '' AND RowExists('LSL_USERS', LSLUserName) then
|
||||
If RowExists('RDS', RDSNo) then
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
@ -1288,7 +1291,9 @@ Service SignUnloadExtra1(RDSNo, LSLUserName)
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UnsignUnloadExtra1(RDSNo, LSLUserName)
|
||||
|
||||
IF LSLUserName NE '' AND RowExists('LSL_USERS', LSLUserName) then
|
||||
If RowExists('RDS', RDSNo) then
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
@ -1323,9 +1328,12 @@ Service UnsignUnloadExtra1(RDSNo, LSLUserName)
|
||||
end else
|
||||
Error_Services('Add', 'Invalid user passed to Unsign Load Extra 1 routine')
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service SignLoadExtra1(RDSNo,LSLUserName)
|
||||
|
||||
IF LSLUserName NE '' AND RowExists('LSL_USERS', LSLUserName) then
|
||||
If RowExists('RDS', RDSNo) then
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
@ -1359,9 +1367,12 @@ Service SignLoadExtra1(RDSNo,LSLUserName)
|
||||
end else
|
||||
Error_Services('Add', 'Invalid user passed to Sign Unload Extra 1 routine')
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UnsignLoadExtra1(RDSNo, LSLUserName)
|
||||
|
||||
IF LSLUserName NE '' AND RowExists('LSL_USERS', LSLUserName) then
|
||||
If RowExists('RDS', RDSNo) then
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
@ -1385,10 +1396,12 @@ Service UnsignLoadExtra1(RDSNo, LSLUserName)
|
||||
end else
|
||||
Error_Services('Add', 'Invalid user passed to Unsign Load Extra 1 routine')
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service SignUnloadExtra2(RDSNo,LSLUserName)
|
||||
|
||||
IF LSLUserName NE '' AND RowExists('LSL_USERS', LSLUserName) then
|
||||
If RowExists('RDS', RDSNo) then
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
@ -1412,9 +1425,12 @@ Service SignUnloadExtra2(RDSNo,LSLUserName)
|
||||
end else
|
||||
Error_Services('Add', 'Invalid user passed to Sign Unload Extra 1 routine')
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UnsignUnloadExtra2(RDSNo, LSLUserName)
|
||||
|
||||
IF LSLUserName NE '' AND RowExists('LSL_USERS', LSLUserName) then
|
||||
If RowExists('RDS', RDSNo) then
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
@ -1449,9 +1465,12 @@ Service UnsignUnloadExtra2(RDSNo, LSLUserName)
|
||||
end else
|
||||
Error_Services('Add', 'Invalid user passed to Unsign Unload Extra 1 routine')
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service SignLoadExtra2(RDSNo,LSLUserName)
|
||||
|
||||
IF LSLUserName NE '' AND RowExists('LSL_USERS', LSLUserName) then
|
||||
If RowExists('RDS', RDSNo) then
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
@ -1484,9 +1503,12 @@ Service SignLoadExtra2(RDSNo,LSLUserName)
|
||||
end else
|
||||
Error_Services('Add', 'Invalid user passed to Sign Unload Extra 1 routine')
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UnsignLoadExtra2(RDSNo, LSLUserName)
|
||||
|
||||
IF LSLUserName NE '' AND RowExists('LSL_USERS', LSLUserName) then
|
||||
If RowExists('RDS', RDSNo) then
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
@ -1510,17 +1532,109 @@ Service UnsignLoadExtra2(RDSNo, LSLUserName)
|
||||
end else
|
||||
Error_Services('Add', 'Invalid user passed to Unsign Unload Extra 1 routine')
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service ApplyAbortMetrology(RdsKeys)
|
||||
|
||||
Result = False$
|
||||
ErrorMsg = ''
|
||||
If RdsKeys NE '' then
|
||||
Convert @VM to @FM in RdsKeys
|
||||
If RowExists('RDS', RdsKeys) then
|
||||
For each RdsKey in RdsKeys using @FM
|
||||
|
||||
WoNo = Xlate('RDS', RdsKey, RDS_WO$, 'X')
|
||||
// Set a flag on the CI record indicating the run was aborted
|
||||
CleanInspKey = Xlate('RDS', RdsKey, 'LWI_CI_NO', 'X')
|
||||
CIRec = Database_Services('ReadDataRow', 'CLEAN_INSP', CleanInspKey)
|
||||
CIRec<CLEAN_INSP_WAFERS_REMOVED$> = True$
|
||||
Database_Services('WriteDataRow', 'CLEAN_INSP', CleanInspKey, CIRec, True$, False$, False$)
|
||||
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
|
||||
|
||||
If ErrorMsg EQ '' then
|
||||
// Change the QA metrology requirements to all wafers
|
||||
CassNo = Xlate('RDS', RdsKey, 'CASS_NO', 'X')
|
||||
WoMatQaKey = WoNo : '*' : CassNo
|
||||
WoMatQaRec = Xlate('WO_MAT_QA', WoMatQaKey, '', 'X')
|
||||
WoWaferQty = Xlate('WO_MAT', WoMatQaKey, WO_MAT_WAFER_QTY$, 'X')
|
||||
WoMatQaStages = WoMatQaRec<WO_MAT_QA_STAGE$>
|
||||
WoMatQaProfiles = WoMatQaRec<WO_MAT_QA_PROFILE$>
|
||||
WoMatQaSlots = WoMatQaRec<WO_MAT_QA_SLOT$>
|
||||
WoMatQaWfrQtys = WoMatQaRec<WO_MAT_QA_WFR_QTY$>
|
||||
WoMatQaProps = WoMatQaRec<WO_MAT_QA_PROP$>
|
||||
WoMatQaToolClasses = WoMatQaRec<WO_MAT_QA_TOOL_CLASS$>
|
||||
WoMatQaRecipes = WoMatQaRec<WO_MAT_QA_RECIPE$>
|
||||
WoMatQaRecipePatterns = WoMatQaRec<WO_MAT_QA_RECIPE_PATTERN$>
|
||||
WoMatQaMin = WoMatQaRec<WO_MAT_QA_MIN$>
|
||||
WoMatQaMax = WoMatQaRec<WO_MAT_QA_MAX$>
|
||||
WoMatQaOOS = WoMatQaRec<WO_MAT_QA_OUT_OF_SPEC$>
|
||||
StageCount = DCount(WoMatQaStages, @VM)
|
||||
For stageIdx = 1 to StageCount
|
||||
If (WoMatQaStages<0, stageIdx> _EQC 'QA') and (WoMatQaProfiles<0, stageIdx> _EQC '1ADE') then
|
||||
Slot = WoMatQaSlots<0, stageIdx>
|
||||
If (Slot _NEC 'L') then
|
||||
WoMatQaSlots<0, stageIdx> = 'A'
|
||||
WoMatQaWfrQtys<0, stageIdx> = WoWaferQty
|
||||
end
|
||||
If (Slot _EQC 'L') then
|
||||
WoMatQaStages<0, stageIdx> = ''
|
||||
WoMatQaProfiles<0, stageIdx> = ''
|
||||
WoMatQaSlots<0, stageIdx> = ''
|
||||
WoMatQaWfrQtys<0, stageIdx> = ''
|
||||
WoMatQaProps<0, stageIdx> = ''
|
||||
WoMatQaToolClasses<0, stageIdx> = ''
|
||||
WoMatQaRecipes<0, stageIdx> = ''
|
||||
WoMatQaRecipePatterns<0, stageIdx> = ''
|
||||
WoMatQaMin<0, stageIdx> = ''
|
||||
WoMatQaMax<0, stageIdx> = ''
|
||||
WoMatQaOOS<0, stageIdx> = ''
|
||||
end
|
||||
end
|
||||
Next stageIdx
|
||||
WoMatQaRec<WO_MAT_QA_STAGE$> = WoMatQaStages
|
||||
WoMatQaRec<WO_MAT_QA_PROFILE$> = WoMatQaProfiles
|
||||
WoMatQaRec<WO_MAT_QA_SLOT$> = WoMatQaSlots
|
||||
WoMatQaRec<WO_MAT_QA_WFR_QTY$> = WoMatQaWfrQtys
|
||||
WoMatQaRec<WO_MAT_QA_PROP$> = WoMatQaProps
|
||||
WoMatQaRec<WO_MAT_QA_TOOL_CLASS$> = WoMatQaToolClasses
|
||||
WoMatQaRec<WO_MAT_QA_RECIPE$> = WoMatQaRecipes
|
||||
WoMatQaRec<WO_MAT_QA_RECIPE_PATTERN$> = WoMatQaRecipePatterns
|
||||
WoMatQaRec<WO_MAT_QA_MIN$> = WoMatQaMin
|
||||
WoMatQaRec<WO_MAT_QA_MAX$> = WoMatQaMax
|
||||
WoMatQaRec<WO_MAT_QA_OUT_OF_SPEC$> = WoMatQaOOS
|
||||
Database_Services('WriteDataRow', 'WO_MAT_QA', WoMatQaKey, WoMatQaRec, True$, False$, False$)
|
||||
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
|
||||
Next RdsKey
|
||||
end else
|
||||
Convert @FM to ',' in RdsKeys
|
||||
ErrorMsg = 'Error in ':Service:' service. One or more Rds records (':RdsKeys:') do not exist!'
|
||||
end
|
||||
end else
|
||||
ErrorMsg = 'Error in ':Service:' service. Null RdsKeys passed into service!'
|
||||
end
|
||||
|
||||
If ErrorMsg NE '' then
|
||||
Error_Services('Add', ErrorMsg)
|
||||
end else
|
||||
Result = True$
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Internal GoSubs
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ClearCursors:
|
||||
|
||||
For counter = 0 to 8
|
||||
ClearSelect counter
|
||||
Next counter
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user