diff --git a/LSL2/STPROC/COMM_WO_MAT.txt b/LSL2/STPROC/COMM_WO_MAT.txt index a869d8d..15c81a5 100644 --- a/LSL2/STPROC/COMM_WO_MAT.txt +++ b/LSL2/STPROC/COMM_WO_MAT.txt @@ -646,7 +646,7 @@ MakeUpClick: Set_Property(@WINDOW,'SAVEWARN', False$) Send_Event(@WINDOW,'CLEAR') If (CheckValue EQ True$) then - Wo_Mat_Services('MakeupFlagOn', RDSNo) + Wo_Mat_Services('MakeupFlagOn', WOMatKey) end end end else @@ -815,3 +815,4 @@ BatchFixit: RETURN + diff --git a/LSL2/STPROC/COMM_WO_MAT_WFR.txt b/LSL2/STPROC/COMM_WO_MAT_WFR.txt index 352fa69..524fe68 100644 --- a/LSL2/STPROC/COMM_WO_MAT_WFR.txt +++ b/LSL2/STPROC/COMM_WO_MAT_WFR.txt @@ -827,7 +827,8 @@ AddMakeup: ErrMsg('Unable to set makeup flag until Unload stage is signed.') Return END else - Wo_Mat_Services('MakeupFlagOn', RDSNo) + Wo_Mat_Services('MakeupFlagOn', WOMatKey) + If Error_Services('HasError') then ErrMsg(Error_Services('GetMessage')) end end @@ -1064,7 +1065,8 @@ MakeUpLot: Set_Property(@WINDOW,'SAVEWARN', False$) Send_Event(@WINDOW,'CLEAR') 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 else diff --git a/LSL2/STPROC/RDS_SERVICES.txt b/LSL2/STPROC/RDS_SERVICES.txt index cbeb7d0..1687cee 100644 --- a/LSL2/STPROC/RDS_SERVICES.txt +++ b/LSL2/STPROC/RDS_SERVICES.txt @@ -1800,54 +1800,119 @@ Service ApplyQA100PercentADE(RDSNo) WoWaferQty = Xlate('RDS', RDSNo, 'WFRS_OUT', 'X') end - WoMatQaStages = WoMatQaRec - WoMatQaProfiles = WoMatQaRec - WoMatQaSlots = WoMatQaRec - WoMatQaWfrQtys = WoMatQaRec - WoMatQaProps = WoMatQaRec - WoMatQaToolClasses = WoMatQaRec - WoMatQaRecipes = WoMatQaRec - WoMatQaRecipePatterns = WoMatQaRec - WoMatQaMin = WoMatQaRec - WoMatQaMax = WoMatQaRec - WoMatQaOOS = WoMatQaRec - StageCount = DCount(WoMatQaStages, @VM) + WoMatQaStages = WoMatQaRec + WoMatQaProfiles = WoMatQaRec + WoMatQaProps = WoMatQaRec + WoMatQaToolClasses = WoMatQaRec + WoMatQaRecipes = WoMatQaRec + WoMatQaRecipePatterns = WoMatQaRec + WoMatQaMin = WoMatQaRec + WoMatQaMax = WoMatQaRec + WoMatQaSlots = WoMatQaRec + WoMatQaSlotTests = WoMatQaRec + WoMatQaResults = WoMatQaRec + WoMatQaStdMaxes = WoMatQaRec + WoMatQaStdResults = WoMatQaRec + WoMatQaSigs = WoMatQaRec + WoMatQaSigDtms = WoMatQaRec + WoMatQaWfrQtys = WoMatQaRec + WoMatQaWfrTypes = WoMatQaRec + WoMatQaReactScheds = WoMatQaRec + WoMatQaShipDocs = WoMatQaRec + WoMatQaDataPoints = WoMatQaRec + WoMatQaMinResults = WoMatQaRec + WoMatQaMaxResults = WoMatQaRec + WoMatQaRngResults = WoMatQaRec + WoMatQaEdgeResults = WoMatQaRec + WoMatQa5mmResults = WoMatQaRec + WoMatQaOOS = WoMatQaRec + WoMatQaPhaseMins = WoMatQaRec + WoMatQaFailReasons = WoMatQaRec + + StageCount = DCount(WoMatQaStages, @VM) + StageIdxToDelete = '' 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> = '' + WoMatQaSlots<0, stageIdx> = 'A' + WoMatQaWfrQtys<0, stageIdx> = WoWaferQty + WoMatQaSigs<0, stageIdx> = '' + WoMatQaSigDtms<0, stageIdx> = '' + WoMatQaResults<0, stageIdx> = '' + WoMatQaDataPoints<0, stageIdx> = '' + WoMatQaMinResults<0, stageIdx> = '' + WoMatQaMaxResults<0, stageIdx> = '' + WoMatQaRngResults<0, stageIdx> = '' + WoMatQaEdgeResults<0, stageIdx> = '' + WoMatQa5mmResults<0, stageIdx> = '' end - end + If (Slot _EQC 'L') then + StageIdxToDelete = stageIdx + end + end Next stageIdx - WoMatQaRec = WoMatQaStages - WoMatQaRec = WoMatQaProfiles - WoMatQaRec = WoMatQaSlots - WoMatQaRec = WoMatQaWfrQtys - WoMatQaRec = WoMatQaProps - WoMatQaRec = WoMatQaToolClasses - WoMatQaRec = WoMatQaRecipes - WoMatQaRec = WoMatQaRecipePatterns - WoMatQaRec = WoMatQaMin - WoMatQaRec = WoMatQaMax - WoMatQaRec = WoMatQaOOS - WoMatQaRec = '' - WoMatQaRec = '' - WoMatQaRec = '' + + If (StageIdxToDelete NE '') then + WoMatQaStages = Delete(WoMatQaStages, 0, StageIdxToDelete, 0) + WoMatQaProfiles = Delete(WoMatQaProfiles, 0, StageIdxToDelete, 0) + WoMatQaProps = Delete(WoMatQaProps, 0, StageIdxToDelete, 0) + WoMatQaToolClasses = Delete(WoMatQaToolClasses, 0, StageIdxToDelete, 0) + WoMatQaRecipes = Delete(WoMatQaRecipes, 0, StageIdxToDelete, 0) + WoMatQaRecipePatterns = Delete(WoMatQaRecipePatterns, 0, StageIdxToDelete, 0) + WoMatQaMin = Delete(WoMatQaMin, 0, StageIdxToDelete, 0) + WoMatQaMax = Delete(WoMatQaMax, 0, StageIdxToDelete, 0) + WoMatQaSlots = Delete(WoMatQaSlots, 0, StageIdxToDelete, 0) + WoMatQaSlotTests = Delete(WoMatQaSlotTests, 0, StageIdxToDelete, 0) + WoMatQaResults = Delete(WoMatQaResults, 0, StageIdxToDelete, 0) + 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 = WoMatQaStages + WoMatQaRec = WoMatQaProfiles + WoMatQaRec = WoMatQaProps + WoMatQaRec = WoMatQaToolClasses + WoMatQaRec = WoMatQaRecipes + WoMatQaRec = WoMatQaRecipePatterns + WoMatQaRec = WoMatQaMin + WoMatQaRec = WoMatQaMax + WoMatQaRec = WoMatQaSlots + WoMatQaRec = WoMatQaSlotTests + WoMatQaRec = WoMatQaResults + WoMatQaRec = WoMatQaSigs + WoMatQaRec = WoMatQaSigDtms + WoMatQaRec = WoMatQaStdMaxes + WoMatQaRec = WoMatQaStdResults + WoMatQaRec = WoMatQaWfrQtys + WoMatQaRec = WoMatQaWfrTypes + WoMatQaRec = WoMatQaReactScheds + WoMatQaRec = WoMatQaShipDocs + WoMatQaRec = WoMatQaDataPoints + WoMatQaRec = WoMatQaMinResults + WoMatQaRec = WoMatQaMaxResults + WoMatQaRec = WoMatQaRngResults + WoMatQaRec = WoMatQaEdgeResults + WoMatQaRec = WoMatQa5mmResults + WoMatQaRec = WoMatQaOOS + WoMatQaRec = WoMatQaPhaseMins + WoMatQaRec = WoMatQaFailReasons + Database_Services('WriteDataRow', 'WO_MAT_QA', WoMatQaKey, WoMatQaRec, True$, False$, False$) If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage') end else @@ -2506,4 +2571,3 @@ ClearCursors: return - diff --git a/LSL2/STPROC/WO_MAT_SERVICES.txt b/LSL2/STPROC/WO_MAT_SERVICES.txt index fdda4b2..c675383 100644 --- a/LSL2/STPROC/WO_MAT_SERVICES.txt +++ b/LSL2/STPROC/WO_MAT_SERVICES.txt @@ -547,34 +547,49 @@ Service SetWoMatVoidFlag(WoMatKey, Username) end service -Service MakeupFlagOn(RDSNo) +Service MakeupFlagOn(WOMatKey) - EpiCheck = Rds_Services('IsEpiPro', RDSNo) - BioRadDown = False$ - Bio4Down = False$ - Bio5Down = False$ - Bio4LogKey = Xlate('TOOL', 'BIORAD4', 'CURR_MODE_KEY', 'X') - Bio5LogKey = Xlate('TOOL', 'BIORAD5', 'CURR_MODE_KEY', 'X') - Bio4Mode = Xlate('TOOL_LOG', Bio4LogKey, 'TOOL_MODE', 'X') - Bio5Mode = Xlate('TOOL_LOG', Bio5LogKey, 'TOOL_MODE', 'X') - - If (Bio4Mode NE 'PROD') AND (Bio4Mode NE 'LIM') then Bio4Down = True$ - If (Bio5Mode NE 'PROD') AND (Bio5Mode NE 'LIM') then Bio5Down = True$ - - If (Bio4Down) AND (Bio5Down) then BioRadDown = True$ - - If EpiCheck EQ False$ then - WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X') - WOMatQARec = XLATE('WO_MAT_QA',WOMatKey,'','X') - PropRow = WOMatQARec<3> - If (Count(PropRow, 'THICK') NE 0) AND (BioRadDown EQ False$) then - CurrentStage = Rds_Services('GetCurrentStage', RDSNo) - If CurrentStage EQ 'COMP' then - Signature_Services('UnsignFQAStage', RDSNo) - end - Rds_Services('ApplyQA100PercentADE', RDSNo) - end - end + ErrorMsg = '' + If (WOMatKey NE '') then + If RowExists('WO_MAT', WOMatKey) then + RDSNo = Database_Services('ReadDataColumn', 'WO_MAT', WOMatKey, WO_MAT_RDS_NO$) + If Error_Services('NoError') then + EpiCheck = Rds_Services('IsEpiPro', RDSNo) + BioRadDown = False$ + Bio4Down = False$ + Bio5Down = False$ + Bio4LogKey = Xlate('TOOL', 'BIORAD4', 'CURR_MODE_KEY', 'X') + Bio5LogKey = Xlate('TOOL', 'BIORAD5', 'CURR_MODE_KEY', 'X') + Bio4Mode = Xlate('TOOL_LOG', Bio4LogKey, 'TOOL_MODE', 'X') + Bio5Mode = Xlate('TOOL_LOG', Bio5LogKey, 'TOOL_MODE', 'X') + + If (Bio4Mode NE 'PROD') AND (Bio4Mode NE 'LIM') then Bio4Down = True$ + If (Bio5Mode NE 'PROD') AND (Bio5Mode NE 'LIM') then Bio5Down = True$ + + If (Bio4Down) AND (Bio5Down) then BioRadDown = True$ + + If EpiCheck EQ False$ then + WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X') + WOMatQARec = XLATE('WO_MAT_QA',WOMatKey,'','X') + PropRow = WOMatQARec<3> + If (Count(PropRow, 'THICK') NE 0) AND (BioRadDown EQ False$) then + CurrentStage = Rds_Services('GetCurrentStage', RDSNo) + 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 @@ -697,6 +712,3 @@ Service VerifyWOLogWOMatKeyColumn(WOMatKey) end service - - -