Merged PR 19143: Require 100 percent centerpoint on MU conversion.
Initial commit. Create FQASignatureReady service in QA_SERVICES. Create SignFQA service in SIGNATURE_SERVICES. Commit remaining portion of project. Implement changes requested in review meeting. Fix typo. Add new MU logic to final entry point. Restrict logic to only apply to 'THICK' inspections. Bypass new logic if Biorad 4 and 5 are down.
This commit is contained in:
parent
5cb17c6d52
commit
273b7f67a6
@ -1722,6 +1722,84 @@ Service UnsignLoadExtra2(RDSNo, LSLUserName)
|
||||
|
||||
end service
|
||||
|
||||
Service ApplyQA100PercentADE(RDSNo)
|
||||
|
||||
Result = False$
|
||||
ErrorMsg = ''
|
||||
If RDSNo NE '' then
|
||||
// Change the QA metrology requirements to all wafers
|
||||
WoNo = Xlate('RDS', RDSNo, RDS_WO$, 'X')
|
||||
CassNo = Xlate('RDS', RDSNo, 'CASS_NO', 'X')
|
||||
WoMatQaKey = WoNo : '*' : CassNo
|
||||
WoMatQaRec = Xlate('WO_MAT_QA', WoMatQaKey, '', 'X')
|
||||
EpiCheck = Rds_Services('IsEpiPro', RDSNo)
|
||||
If EpiCheck EQ True$ then
|
||||
WoWaferQty = Xlate('WO_MAT', WoMatQaKey, WO_MAT_WAFER_QTY$, 'X')
|
||||
end else
|
||||
WoWaferQty = Xlate('RDS', RDSNo, 'WFRS_OUT', 'X')
|
||||
end
|
||||
|
||||
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
|
||||
WoMatQaRec<WO_MAT_QA_SIG$> = ''
|
||||
WoMatQaRec<WO_MAT_QA_SIG_DTM$> = ''
|
||||
WoMatQaRec<WO_MAT_QA_RESULT$> = ''
|
||||
Database_Services('WriteDataRow', 'WO_MAT_QA', WoMatQaKey, WoMatQaRec, True$, False$, False$)
|
||||
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
|
||||
end else
|
||||
ErrorMsg = 'Error in ':Service:' service. Null RdsKey passed into service!'
|
||||
end
|
||||
|
||||
If ErrorMsg NE '' then
|
||||
Error_Services('Add', ErrorMsg)
|
||||
end else
|
||||
Result = True$
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
Service ApplyAbortMetrology(RdsKeys)
|
||||
|
||||
@ -1740,58 +1818,8 @@ Service ApplyAbortMetrology(RdsKeys)
|
||||
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 ErrorMsg EQ '' then
|
||||
Result = Rds_Services('ApplyQA100PercentADE', RDSKey)
|
||||
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
|
||||
@ -1855,7 +1883,3 @@ return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user