Modified ApplyQA100PercentADE service to delete the @VM delimited test instead of just clearing it.
This commit is contained in:
@ -646,7 +646,7 @@ MakeUpClick:
|
|||||||
Set_Property(@WINDOW,'SAVEWARN', False$)
|
Set_Property(@WINDOW,'SAVEWARN', False$)
|
||||||
Send_Event(@WINDOW,'CLEAR')
|
Send_Event(@WINDOW,'CLEAR')
|
||||||
If (CheckValue EQ True$) then
|
If (CheckValue EQ True$) then
|
||||||
Wo_Mat_Services('MakeupFlagOn', RDSNo)
|
Wo_Mat_Services('MakeupFlagOn', WOMatKey)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
@ -815,3 +815,4 @@ BatchFixit:
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
@ -827,7 +827,8 @@ AddMakeup:
|
|||||||
ErrMsg('Unable to set makeup flag until Unload stage is signed.')
|
ErrMsg('Unable to set makeup flag until Unload stage is signed.')
|
||||||
Return
|
Return
|
||||||
END else
|
END else
|
||||||
Wo_Mat_Services('MakeupFlagOn', RDSNo)
|
Wo_Mat_Services('MakeupFlagOn', WOMatKey)
|
||||||
|
If Error_Services('HasError') then ErrMsg(Error_Services('GetMessage'))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1064,7 +1065,8 @@ MakeUpLot:
|
|||||||
Set_Property(@WINDOW,'SAVEWARN', False$)
|
Set_Property(@WINDOW,'SAVEWARN', False$)
|
||||||
Send_Event(@WINDOW,'CLEAR')
|
Send_Event(@WINDOW,'CLEAR')
|
||||||
If (CheckValue EQ True$) then
|
If (CheckValue EQ True$) then
|
||||||
Wo_Mat_Services('MakeupFlagOn', RDSNo)
|
Wo_Mat_Services('MakeupFlagOn', WOMatKey)
|
||||||
|
If Error_Services('HasError') then ErrMsg(Error_Services('GetMessage'))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
|
@ -1800,54 +1800,119 @@ Service ApplyQA100PercentADE(RDSNo)
|
|||||||
WoWaferQty = Xlate('RDS', RDSNo, 'WFRS_OUT', 'X')
|
WoWaferQty = Xlate('RDS', RDSNo, 'WFRS_OUT', 'X')
|
||||||
end
|
end
|
||||||
|
|
||||||
WoMatQaStages = WoMatQaRec<WO_MAT_QA_STAGE$>
|
WoMatQaStages = WoMatQaRec<WO_MAT_QA_STAGE$>
|
||||||
WoMatQaProfiles = WoMatQaRec<WO_MAT_QA_PROFILE$>
|
WoMatQaProfiles = WoMatQaRec<WO_MAT_QA_PROFILE$>
|
||||||
WoMatQaSlots = WoMatQaRec<WO_MAT_QA_SLOT$>
|
WoMatQaProps = WoMatQaRec<WO_MAT_QA_PROP$>
|
||||||
WoMatQaWfrQtys = WoMatQaRec<WO_MAT_QA_WFR_QTY$>
|
WoMatQaToolClasses = WoMatQaRec<WO_MAT_QA_TOOL_CLASS$>
|
||||||
WoMatQaProps = WoMatQaRec<WO_MAT_QA_PROP$>
|
WoMatQaRecipes = WoMatQaRec<WO_MAT_QA_RECIPE$>
|
||||||
WoMatQaToolClasses = WoMatQaRec<WO_MAT_QA_TOOL_CLASS$>
|
WoMatQaRecipePatterns = WoMatQaRec<WO_MAT_QA_RECIPE_PATTERN$>
|
||||||
WoMatQaRecipes = WoMatQaRec<WO_MAT_QA_RECIPE$>
|
WoMatQaMin = WoMatQaRec<WO_MAT_QA_MIN$>
|
||||||
WoMatQaRecipePatterns = WoMatQaRec<WO_MAT_QA_RECIPE_PATTERN$>
|
WoMatQaMax = WoMatQaRec<WO_MAT_QA_MAX$>
|
||||||
WoMatQaMin = WoMatQaRec<WO_MAT_QA_MIN$>
|
WoMatQaSlots = WoMatQaRec<WO_MAT_QA_SLOT$>
|
||||||
WoMatQaMax = WoMatQaRec<WO_MAT_QA_MAX$>
|
WoMatQaSlotTests = WoMatQaRec<WO_MAT_QA_SLOT_TEST$>
|
||||||
WoMatQaOOS = WoMatQaRec<WO_MAT_QA_OUT_OF_SPEC$>
|
WoMatQaResults = WoMatQaRec<WO_MAT_QA_RESULT$>
|
||||||
StageCount = DCount(WoMatQaStages, @VM)
|
WoMatQaStdMaxes = WoMatQaRec<WO_MAT_QA_STD_MAX$>
|
||||||
|
WoMatQaStdResults = WoMatQaRec<WO_MAT_QA_STD_RESULT$>
|
||||||
|
WoMatQaSigs = WoMatQaRec<WO_MAT_QA_SIG$>
|
||||||
|
WoMatQaSigDtms = WoMatQaRec<WO_MAT_QA_SIG_DTM$>
|
||||||
|
WoMatQaWfrQtys = WoMatQaRec<WO_MAT_QA_WFR_QTY$>
|
||||||
|
WoMatQaWfrTypes = WoMatQaRec<WO_MAT_QA_WFR_TYPE$>
|
||||||
|
WoMatQaReactScheds = WoMatQaRec<WO_MAT_QA_REACT_SCHED$>
|
||||||
|
WoMatQaShipDocs = WoMatQaRec<WO_MAT_QA_SHIP_DOC$>
|
||||||
|
WoMatQaDataPoints = WoMatQaRec<WO_MAT_QA_DATA_POINTS$>
|
||||||
|
WoMatQaMinResults = WoMatQaRec<WO_MAT_QA_MIN_RESULT$>
|
||||||
|
WoMatQaMaxResults = WoMatQaRec<WO_MAT_QA_MAX_RESULT$>
|
||||||
|
WoMatQaRngResults = WoMatQaRec<WO_MAT_QA_RANGE_PCT_RESULT$>
|
||||||
|
WoMatQaEdgeResults = WoMatQaRec<WO_MAT_QA_EDGE_MEAN_RESULT$>
|
||||||
|
WoMatQa5mmResults = WoMatQaRec<WO_MAT_QA_5MM_PCT_RESULT$>
|
||||||
|
WoMatQaOOS = WoMatQaRec<WO_MAT_QA_OUT_OF_SPEC$>
|
||||||
|
WoMatQaPhaseMins = WoMatQaRec<WO_MAT_QA_PHASE_MIN$>
|
||||||
|
WoMatQaFailReasons = WoMatQaRec<WO_MAT_QA_FAIL_REASON$>
|
||||||
|
|
||||||
|
StageCount = DCount(WoMatQaStages, @VM)
|
||||||
|
StageIdxToDelete = ''
|
||||||
For stageIdx = 1 to StageCount
|
For stageIdx = 1 to StageCount
|
||||||
If (WoMatQaStages<0, stageIdx> _EQC 'QA') and (WoMatQaProfiles<0, stageIdx> _EQC '1ADE') then
|
If (WoMatQaStages<0, stageIdx> _EQC 'QA') and (WoMatQaProfiles<0, stageIdx> _EQC '1ADE') then
|
||||||
Slot = WoMatQaSlots<0, stageIdx>
|
Slot = WoMatQaSlots<0, stageIdx>
|
||||||
If (Slot _NEC 'L') then
|
If (Slot _NEC 'L') then
|
||||||
WoMatQaSlots<0, stageIdx> = 'A'
|
WoMatQaSlots<0, stageIdx> = 'A'
|
||||||
WoMatQaWfrQtys<0, stageIdx> = WoWaferQty
|
WoMatQaWfrQtys<0, stageIdx> = WoWaferQty
|
||||||
end
|
WoMatQaSigs<0, stageIdx> = ''
|
||||||
If (Slot _EQC 'L') then
|
WoMatQaSigDtms<0, stageIdx> = ''
|
||||||
WoMatQaStages<0, stageIdx> = ''
|
WoMatQaResults<0, stageIdx> = ''
|
||||||
WoMatQaProfiles<0, stageIdx> = ''
|
WoMatQaDataPoints<0, stageIdx> = ''
|
||||||
WoMatQaSlots<0, stageIdx> = ''
|
WoMatQaMinResults<0, stageIdx> = ''
|
||||||
WoMatQaWfrQtys<0, stageIdx> = ''
|
WoMatQaMaxResults<0, stageIdx> = ''
|
||||||
WoMatQaProps<0, stageIdx> = ''
|
WoMatQaRngResults<0, stageIdx> = ''
|
||||||
WoMatQaToolClasses<0, stageIdx> = ''
|
WoMatQaEdgeResults<0, stageIdx> = ''
|
||||||
WoMatQaRecipes<0, stageIdx> = ''
|
WoMatQa5mmResults<0, stageIdx> = ''
|
||||||
WoMatQaRecipePatterns<0, stageIdx> = ''
|
|
||||||
WoMatQaMin<0, stageIdx> = ''
|
|
||||||
WoMatQaMax<0, stageIdx> = ''
|
|
||||||
WoMatQaOOS<0, stageIdx> = ''
|
|
||||||
end
|
end
|
||||||
end
|
If (Slot _EQC 'L') then
|
||||||
|
StageIdxToDelete = stageIdx
|
||||||
|
end
|
||||||
|
end
|
||||||
Next stageIdx
|
Next stageIdx
|
||||||
WoMatQaRec<WO_MAT_QA_STAGE$> = WoMatQaStages
|
|
||||||
WoMatQaRec<WO_MAT_QA_PROFILE$> = WoMatQaProfiles
|
If (StageIdxToDelete NE '') then
|
||||||
WoMatQaRec<WO_MAT_QA_SLOT$> = WoMatQaSlots
|
WoMatQaStages = Delete(WoMatQaStages, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_WFR_QTY$> = WoMatQaWfrQtys
|
WoMatQaProfiles = Delete(WoMatQaProfiles, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_PROP$> = WoMatQaProps
|
WoMatQaProps = Delete(WoMatQaProps, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_TOOL_CLASS$> = WoMatQaToolClasses
|
WoMatQaToolClasses = Delete(WoMatQaToolClasses, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_RECIPE$> = WoMatQaRecipes
|
WoMatQaRecipes = Delete(WoMatQaRecipes, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_RECIPE_PATTERN$> = WoMatQaRecipePatterns
|
WoMatQaRecipePatterns = Delete(WoMatQaRecipePatterns, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_MIN$> = WoMatQaMin
|
WoMatQaMin = Delete(WoMatQaMin, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_MAX$> = WoMatQaMax
|
WoMatQaMax = Delete(WoMatQaMax, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_OUT_OF_SPEC$> = WoMatQaOOS
|
WoMatQaSlots = Delete(WoMatQaSlots, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_SIG$> = ''
|
WoMatQaSlotTests = Delete(WoMatQaSlotTests, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_SIG_DTM$> = ''
|
WoMatQaResults = Delete(WoMatQaResults, 0, StageIdxToDelete, 0)
|
||||||
WoMatQaRec<WO_MAT_QA_RESULT$> = ''
|
WoMatQaSigs = Delete(WoMatQaSigs, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaSigDtms = Delete(WoMatQaSigDtms, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaStdMaxes = Delete(WoMatQaStdMaxes, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaStdResults = Delete(WoMatQaStdResults, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaWfrQtys = Delete(WoMatQaWfrQtys, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaWfrTypes = Delete(WoMatQaWfrTypes, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaReactScheds = Delete(WoMatQaReactScheds, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaShipDocs = Delete(WoMatQaShipDocs, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaDataPoints = Delete(WoMatQaDataPoints, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaMinResults = Delete(WoMatQaMinResults, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaMaxResults = Delete(WoMatQaMaxResults, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaRngResults = Delete(WoMatQaRngResults, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaEdgeResults = Delete(WoMatQaEdgeResults, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQa5mmResults = Delete(WoMatQa5mmResults, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaOOS = Delete(WoMatQaOOS, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaPhaseMins = Delete(WoMatQaPhaseMins, 0, StageIdxToDelete, 0)
|
||||||
|
WoMatQaFailReasons = Delete(WoMatQaFailReasons, 0, StageIdxToDelete, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
WoMatQaRec<WO_MAT_QA_STAGE$> = WoMatQaStages
|
||||||
|
WoMatQaRec<WO_MAT_QA_PROFILE$> = WoMatQaProfiles
|
||||||
|
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_SLOT$> = WoMatQaSlots
|
||||||
|
WoMatQaRec<WO_MAT_QA_SLOT_TEST$> = WoMatQaSlotTests
|
||||||
|
WoMatQaRec<WO_MAT_QA_RESULT$> = WoMatQaResults
|
||||||
|
WoMatQaRec<WO_MAT_QA_SIG$> = WoMatQaSigs
|
||||||
|
WoMatQaRec<WO_MAT_QA_SIG_DTM$> = WoMatQaSigDtms
|
||||||
|
WoMatQaRec<WO_MAT_QA_STD_MAX$> = WoMatQaStdMaxes
|
||||||
|
WoMatQaRec<WO_MAT_QA_STD_RESULT$> = WoMatQaStdResults
|
||||||
|
WoMatQaRec<WO_MAT_QA_WFR_QTY$> = WoMatQaWfrQtys
|
||||||
|
WoMatQaRec<WO_MAT_QA_WFR_TYPE$> = WoMatQaWfrTypes
|
||||||
|
WoMatQaRec<WO_MAT_QA_REACT_SCHED$> = WoMatQaReactScheds
|
||||||
|
WoMatQaRec<WO_MAT_QA_SHIP_DOC$> = WoMatQaShipDocs
|
||||||
|
WoMatQaRec<WO_MAT_QA_DATA_POINTS$> = WoMatQaDataPoints
|
||||||
|
WoMatQaRec<WO_MAT_QA_MIN_RESULT$> = WoMatQaMinResults
|
||||||
|
WoMatQaRec<WO_MAT_QA_MAX_RESULT$> = WoMatQaMaxResults
|
||||||
|
WoMatQaRec<WO_MAT_QA_RANGE_PCT_RESULT$> = WoMatQaRngResults
|
||||||
|
WoMatQaRec<WO_MAT_QA_EDGE_MEAN_RESULT$> = WoMatQaEdgeResults
|
||||||
|
WoMatQaRec<WO_MAT_QA_5MM_PCT_RESULT$> = WoMatQa5mmResults
|
||||||
|
WoMatQaRec<WO_MAT_QA_OUT_OF_SPEC$> = WoMatQaOOS
|
||||||
|
WoMatQaRec<WO_MAT_QA_PHASE_MIN$> = WoMatQaPhaseMins
|
||||||
|
WoMatQaRec<WO_MAT_QA_FAIL_REASON$> = WoMatQaFailReasons
|
||||||
|
|
||||||
Database_Services('WriteDataRow', 'WO_MAT_QA', WoMatQaKey, WoMatQaRec, True$, False$, False$)
|
Database_Services('WriteDataRow', 'WO_MAT_QA', WoMatQaKey, WoMatQaRec, True$, False$, False$)
|
||||||
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
|
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
|
||||||
end else
|
end else
|
||||||
@ -2506,4 +2571,3 @@ ClearCursors:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -547,34 +547,49 @@ Service SetWoMatVoidFlag(WoMatKey, Username)
|
|||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
Service MakeupFlagOn(RDSNo)
|
Service MakeupFlagOn(WOMatKey)
|
||||||
|
|
||||||
EpiCheck = Rds_Services('IsEpiPro', RDSNo)
|
ErrorMsg = ''
|
||||||
BioRadDown = False$
|
If (WOMatKey NE '') then
|
||||||
Bio4Down = False$
|
If RowExists('WO_MAT', WOMatKey) then
|
||||||
Bio5Down = False$
|
RDSNo = Database_Services('ReadDataColumn', 'WO_MAT', WOMatKey, WO_MAT_RDS_NO$)
|
||||||
Bio4LogKey = Xlate('TOOL', 'BIORAD4', 'CURR_MODE_KEY', 'X')
|
If Error_Services('NoError') then
|
||||||
Bio5LogKey = Xlate('TOOL', 'BIORAD5', 'CURR_MODE_KEY', 'X')
|
EpiCheck = Rds_Services('IsEpiPro', RDSNo)
|
||||||
Bio4Mode = Xlate('TOOL_LOG', Bio4LogKey, 'TOOL_MODE', 'X')
|
BioRadDown = False$
|
||||||
Bio5Mode = Xlate('TOOL_LOG', Bio5LogKey, 'TOOL_MODE', 'X')
|
Bio4Down = False$
|
||||||
|
Bio5Down = False$
|
||||||
If (Bio4Mode NE 'PROD') AND (Bio4Mode NE 'LIM') then Bio4Down = True$
|
Bio4LogKey = Xlate('TOOL', 'BIORAD4', 'CURR_MODE_KEY', 'X')
|
||||||
If (Bio5Mode NE 'PROD') AND (Bio5Mode NE 'LIM') then Bio5Down = True$
|
Bio5LogKey = Xlate('TOOL', 'BIORAD5', 'CURR_MODE_KEY', 'X')
|
||||||
|
Bio4Mode = Xlate('TOOL_LOG', Bio4LogKey, 'TOOL_MODE', 'X')
|
||||||
If (Bio4Down) AND (Bio5Down) then BioRadDown = True$
|
Bio5Mode = Xlate('TOOL_LOG', Bio5LogKey, 'TOOL_MODE', 'X')
|
||||||
|
|
||||||
If EpiCheck EQ False$ then
|
If (Bio4Mode NE 'PROD') AND (Bio4Mode NE 'LIM') then Bio4Down = True$
|
||||||
WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X')
|
If (Bio5Mode NE 'PROD') AND (Bio5Mode NE 'LIM') then Bio5Down = True$
|
||||||
WOMatQARec = XLATE('WO_MAT_QA',WOMatKey,'','X')
|
|
||||||
PropRow = WOMatQARec<3>
|
If (Bio4Down) AND (Bio5Down) then BioRadDown = True$
|
||||||
If (Count(PropRow, 'THICK') NE 0) AND (BioRadDown EQ False$) then
|
|
||||||
CurrentStage = Rds_Services('GetCurrentStage', RDSNo)
|
If EpiCheck EQ False$ then
|
||||||
If CurrentStage EQ 'COMP' then
|
WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X')
|
||||||
Signature_Services('UnsignFQAStage', RDSNo)
|
WOMatQARec = XLATE('WO_MAT_QA',WOMatKey,'','X')
|
||||||
end
|
PropRow = WOMatQARec<3>
|
||||||
Rds_Services('ApplyQA100PercentADE', RDSNo)
|
If (Count(PropRow, 'THICK') NE 0) AND (BioRadDown EQ False$) then
|
||||||
end
|
CurrentStage = Rds_Services('GetCurrentStage', RDSNo)
|
||||||
end
|
If CurrentStage EQ 'COMP' then
|
||||||
|
Signature_Services('UnsignFQAStage', RDSNo)
|
||||||
|
end
|
||||||
|
Rds_Services('ApplyQA100PercentADE', RDSNo)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrorMsg = 'Error in ':Service:' service. Error reading RDS_NO from WO_MAT record ':WOMatKey:'. '
|
||||||
|
ErrorMsg := 'Error message: ':Error_Services('GetMessage')
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrorMsg = 'Error in ':Service:' service. WO_MAT record ':WOMatKey:' does not exist.'
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrorMsg = 'Error in ':Service:' service. Null WOMatKey passed into service.'
|
||||||
|
end
|
||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
@ -697,6 +712,3 @@ Service VerifyWOLogWOMatKeyColumn(WOMatKey)
|
|||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user