Merged PR 19430: Fix references to old supplement system.

This commit is contained in:
Mitchem Dakota (CSC FI SPS MESLEO External)
2025-06-24 21:20:40 +02:00
parent 1db89a3d3f
commit 52499b7616
5 changed files with 88 additions and 59 deletions

View File

@ -18,10 +18,10 @@ COMPILE FUNCTION obj_RDS(Method,Parms)
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey, obj_WO_Verify, obj_Prod_Spec, Send_Dyn, obj_RDS_Makeup DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey, obj_WO_Verify, obj_Prod_Spec, Send_Dyn, obj_RDS_Makeup
DECLARE FUNCTION obj_RDS2, obj_RDS_Test, obj_WO_Mat, obj_Clean_Insp, obj_PRS_Prop, Database_Services DECLARE FUNCTION obj_RDS2, obj_RDS_Test, obj_WO_Mat, obj_Clean_Insp, obj_PRS_Prop, Database_Services
DECLARE FUNCTION Logging_Services, Environment_Services, Error_Services, Signature_Services DECLARE FUNCTION Logging_Services, Environment_Services, Error_Services, Signature_Services, Supplement_Services
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, obj_WO_Step, obj_RDS_Layer, obj_RDS_Test, obj_WM_In DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, obj_WO_Step, obj_RDS_Layer, obj_RDS_Test, obj_WM_In
DECLARE SUBROUTINE Btree.Extract, RDS_React_Run, Environment_Services, Logging_Services, Error_Services, Send_Info DECLARE SUBROUTINE Btree.Extract, RDS_React_Run, Environment_Services, Logging_Services, Error_Services, Send_Info
DECLARE SUBROUTINE SRP_Stopwatch, Database_Services, Lot_Services DECLARE SUBROUTINE SRP_Stopwatch, Database_Services, Lot_Services, Supplement_Services
$INSERT MSG_EQUATES $INSERT MSG_EQUATES
$INSERT WO_VERIFY_EQU $INSERT WO_VERIFY_EQU
@ -464,32 +464,7 @@ Create:
NEXT I NEXT I
********************************
*Automatically Apply Supplement*
********************************
// If first cassette in work order, then there is no supplement in place, therefore skip this step.
If RDSRec<RDS_CASS_NO$> GT 1 then
WoStepKey = RDSRec<RDS_WO_STEP_KEY$>
WoStepRec = Database_Services('ReadDataRow', 'WO_STEP', WoStepKey)
If Error_Services('NoError') then
LastRDSKey = WoStepRec<WO_STEP_RDS_KEY$>[-1, 'B' : @VM]
LastRDSRec = Database_Services('ReadDataRow', 'RDS', LastRDSKey)
If Error_Services('NoError') then
HasSupplement = LastRDSRec<RDS_SUPPLEMENT$>
If HasSupplement then
RDSRec<RDS_SUPPLEMENT$> = True$
RDSRec<RDS_SUPPL_INST$> = LastRDSRec<RDS_SUPPL_INST$>
RDSRec<RDS_SUPPL_ENTRY_ID$> = LastRDSRec<RDS_SUPPL_ENTRY_ID$>
RDSRec<RDS_SUPPL_ENTRY_DATE$> = LastRDSRec<RDS_SUPPL_ENTRY_DATE$>
RDSRec<RDS_SUPPL_ENTRY_TIME$> = LastRDSRec<RDS_SUPPL_ENTRY_TIME$>
end
end else
Logging_Services('AppendLog', objLog, LoggingDTM : ',' : @USER4 : ',' : RDSNo : ',' : 'Error automatically applying supplement to new RDS.')
end
end else
Logging_Services('AppendLog', objLog, LoggingDTM : ',' : @USER4 : ',' : RDSNo : ',' : 'Error automatically applying supplement to new RDS.')
end
end
Send_Info('Saving RDS record...') Send_Info('Saving RDS record...')
@ -502,6 +477,29 @@ Create:
END ELSE END ELSE
Lot_Services('CreateNewLot', 'RDS', '', WaferQty, SubPartNo, LotNo, SubVendCd, @User4, '', RDSNo) Lot_Services('CreateNewLot', 'RDS', '', WaferQty, SubPartNo, LotNo, SubVendCd, @User4, '', RDSNo)
Result = RDSNo Result = RDSNo
********************************
*Automatically Apply Supplement*
********************************
// If first cassette in work order, then there is no supplement in place, therefore skip this step.
If RDSRec<RDS_CASS_NO$> GT 1 then
WoStepKey = RDSRec<RDS_WO_STEP_KEY$>
WoStepRec = Database_Services('ReadDataRow', 'WO_STEP', WoStepKey)
If Error_Services('NoError') then
RDSKeyCount = Dcount(WoStepRec<WO_STEP_RDS_KEY$>, @VM)
LastRDSKey = WoStepRec<WO_STEP_RDS_KEY$, RDSKeyCount - 1>
LastRDSRec = Database_Services('ReadDataRow', 'RDS', LastRDSKey)
If Error_Services('NoError') then
HasSupplement = Supplement_Services('HasSupplements', 'RDS', LastRDSKey, '')
If HasSupplement then
Supplement_Services('CopySupplementsToNewLot', 'RDS', LastRDSKey, RDSNo)
end
end else
Logging_Services('AppendLog', objLog, LoggingDTM : ',' : @USER4 : ',' : RDSNo : ',' : 'Error automatically applying supplement to new RDS.')
end
end else
Logging_Services('AppendLog', objLog, LoggingDTM : ',' : @USER4 : ',' : RDSNo : ',' : 'Error automatically applying supplement to new RDS.')
end
end
END END
* * * * * * * * * * * * * *
@ -1479,3 +1477,5 @@ CalcThickTarget:
RETURN RETURN

View File

@ -2030,7 +2030,8 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
RunOrderNo = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X') RunOrderNo = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X')
SchedQty = RDSRec<RDS_CASS_WAFER_QTY$> SchedQty = RDSRec<RDS_CASS_WAFER_QTY$>
ParamOutOfSpec = Xlate('RDS', RDSNo, 'PARAM_OUT_OF_SPEC', 'X') ParamOutOfSpec = Xlate('RDS', RDSNo, 'PARAM_OUT_OF_SPEC', 'X')
Supplement = RDSRec<RDS_SUPPLEMENT$> * Supplement = RDSRec<RDS_SUPPLEMENT$>
Supplement = Supplement_Services('HasSupplements', 'RDS', RDSNo, 'LOAD')
ReactorCapacity = Reactor_Services('GetReactorAvailChamberCount', Reactor) ReactorCapacity = Reactor_Services('GetReactorAvailChamberCount', Reactor)
If ReactorCapacity LE 0 then If ReactorCapacity LE 0 then
@ -2092,8 +2093,7 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
end end
Locate True$ in ParamOutOfSpec using @VM setting oPos then Locate True$ in ParamOutOfSpec using @VM setting oPos then
IF Supplement EQ False$ then
IF Supplement NE True$ then
ErrorMsg = 'Process Error: Recipe parameters are out of spec and no supplement has been set.' ErrorMsg = 'Process Error: Recipe parameters are out of spec and no supplement has been set.'
Error_Services('Set', ErrorMsg) Error_Services('Set', ErrorMsg)
Response = False$ Response = False$
@ -2601,9 +2601,9 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
return return
END END
ParamOutOfSpec = Xlate('RDS', RDSNo, 'PARAM_OUT_OF_SPEC', 'X') ParamOutOfSpec = Xlate('RDS', RDSNo, 'PARAM_OUT_OF_SPEC', 'X')
Supplement = RDSRec<RDS_SUPPLEMENT$> Supplement = Supplement_Services('HasSupplements', 'RDS', RDSNo, '')
Locate True$ in ParamOutOfSpec using @VM setting oPos then Locate True$ in ParamOutOfSpec using @VM setting oPos then
IF Supplement NE True$ then IF Supplement EQ False$ then
ErrorMsg = 'Process Error: Recipe parameters are out of spec and no supplement has been set.' ErrorMsg = 'Process Error: Recipe parameters are out of spec and no supplement has been set.'
Error_Services('Set', ErrorMsg) Error_Services('Set', ErrorMsg)
Response = False$ Response = False$
@ -3645,3 +3645,5 @@ ClearCursors:
return return

View File

@ -80,14 +80,6 @@ READ RDSRec FROM RDSTable,RDSNo THEN
RunRec<REACT_RUN_SUSCEPTOR_ID$> = RDSRec<RDS_SUSCEPTOR_ID$> RunRec<REACT_RUN_SUSCEPTOR_ID$> = RDSRec<RDS_SUSCEPTOR_ID$>
RunRec<REACT_RUN_REACT_IDLE_TIME$> = RDSRec<RDS_REACT_IDLE_TIME$> RunRec<REACT_RUN_REACT_IDLE_TIME$> = RDSRec<RDS_REACT_IDLE_TIME$>
IF RDSRec<RDS_SUPPLEMENT$> = 1 THEN
RunRec<REACT_RUN_SUPP_INST$> = RDSRec<RDS_SUPPL_INST$>
RunRec<REACT_RUN_SUPP_ENTRY_ID$> = RDSRec<RDS_SUPPL_ENTRY_ID$>
RunRec<REACT_RUN_SUPP_ENTRY_DTM$> = ICONV(OCONV(RDSRec<RDS_SUPPL_ENTRY_DATE$>,'D4/'):' ':OCONV(RDSRec<RDS_SUPPL_ENTRY_TIME$>,'MTS'),'DT')
RunRec<REACT_RUN_SUPP_SIG$> = RDSRec<RDS_SUPPL_SIG$>
RunRec<REACT_RUN_SUPP_SIG_DTM$> = ICONV(OCONV(RDSRec<RDS_SUPPL_SIG_DATE$>,'D4/'):' ':OCONV(RDSRec<RDS_SUPPL_SIG_TIME$>,'MTS'),'DT')
END
RunRec<REACT_RUN_EX_UNLOAD$> = RDSRec<RDS_OP_OUT_EX1$> RunRec<REACT_RUN_EX_UNLOAD$> = RDSRec<RDS_OP_OUT_EX1$>
RunRec<REACT_RUN_EX_UNLOAD_DTM$> = ICONV(OCONV(RDSRec<RDS_OP_OUT_EX1_DATE$>,'D4/'):' ':OCONV(RDSRec<RDS_OP_OUT_EX1_TIME$>,'MTS'),'DT') RunRec<REACT_RUN_EX_UNLOAD_DTM$> = ICONV(OCONV(RDSRec<RDS_OP_OUT_EX1_DATE$>,'D4/'):' ':OCONV(RDSRec<RDS_OP_OUT_EX1_TIME$>,'MTS'),'DT')
RunRec<REACT_RUN_EX_UNLOAD_REASON$> = '' RunRec<REACT_RUN_EX_UNLOAD_REASON$> = ''

View File

@ -102,24 +102,6 @@ READ RunRec FROM RRTable,RDSNo THEN
RDSRec<RDS_OUT_CASS_NO$> = RunRec<REACT_RUN_OUT_CASS_NO$> RDSRec<RDS_OUT_CASS_NO$> = RunRec<REACT_RUN_OUT_CASS_NO$>
RDSRec<RDS_OUT_CASS_SLOT$> = RunRec<REACT_RUN_OUT_SLOT_NO$> RDSRec<RDS_OUT_CASS_SLOT$> = RunRec<REACT_RUN_OUT_SLOT_NO$>
RDSRec<RDS_WAFER_CHAR$> = RunRec<REACT_RUN_WAFER_CHAR$> RDSRec<RDS_WAFER_CHAR$> = RunRec<REACT_RUN_WAFER_CHAR$>
IF RunRec<REACT_RUN_SUPP_ENTRY_ID$> NE '' THEN
RDSRec<RDS_SUPPLEMENT$> = 1
RDSRec<RDS_SUPPL_INST$> = RunRec<REACT_RUN_SUPP_INST$>
RDSRec<RDS_SUPPL_ENTRY_ID$> = RunRec<REACT_RUN_SUPP_ENTRY_ID$>
SuppEntryDTM = OCONV(RunRec<REACT_RUN_SUPP_ENTRY_DTM$>,'DT/4^HS')
RDSRec<RDS_SUPPL_ENTRY_DATE$> = ICONV(FIELD(SuppEntryDTM,' ',1),'D')
RDSRec<RDS_SUPPL_ENTRY_TIME$> = ICONV(FIELD(SuppEntryDTM,' ',2),'MTS')
RDSRec<RDS_SUPPL_SIG$> = RunRec<REACT_RUN_SUPP_SIG$>
SuppSigDTM = RunRec<REACT_RUN_SUPP_SIG_DTM$>
RDSRec<RDS_SUPPL_SIG_DATE$> = ICONV(FIELD(SuppSigDTM,' ',1),'D')
RDSRec<RDS_SUPPL_SIG_TIME$> = ICONV(FIELD(SuppSigDTM,' ',2),'MTS')
END
RDSRec<RDS_OP_OUT_EX1$> = RunRec<REACT_RUN_EX_UNLOAD$> RDSRec<RDS_OP_OUT_EX1$> = RunRec<REACT_RUN_EX_UNLOAD$>

View File

@ -239,6 +239,57 @@ Service GetLotsWithSupplements(LotType)
end service end service
//----------------------------------------------------------------------------------------------------------------------
// HasSupplements
//
// LotType - [Required]
// LotID - [Required]
// Stage = [Optional]
//
// Returns a boolean response for whether or not a lot has any supplements assigned.
//
//----------------------------------------------------------------------------------------------------------------------
Service HasSupplements(LotType=LOTTYPES, LotID, Stage=STAGES)
Response = ''
Supplements = Supplement_Services('GetSupplementsForLot', LotType, LotID, Stage)
If Supplements EQ False$ then
Response = Supplements
end else
Response = True$
end
end service
//----------------------------------------------------------------------------------------------------------------------
// CopySupplementsToNewLot
//
// LotType - [Required]
// OldLotID - [Required]
// NewLotID - [Required]
//
// Returns a boolean response for whether or not a lot has any supplements assigned.
//
//----------------------------------------------------------------------------------------------------------------------
Service CopySupplementsToNewLot(LotType=LOTTYPES, OldLotID, NewLotID)
If Supplement_Services('HasSupplements', LotType, OldLotID, '') then
SupplementKeys = Supplement_Services('GetSupplementsForLot', LotType, OldLotID, '')
SuppCount = Dcount(SupplementKeys, @FM)
For I = 1 to SuppCount
OldSuppRec = Xlate('SUPPLEMENTS', SupplementKeys<I>, '', 'X')
SupplText = OldSuppRec<SUPPLEMENTS_SUPPL_TEXT$>
EntryUser = OldSuppRec<SUPPLEMENTS_ENTRY_USER$>
Stage = OldSuppRec<SUPPLEMENTS_STAGE$>
Supplement_Services('CreateSupplement', LotType, NewLotID, Stage, SupplText, EntryUser)
Next I
end else
Error_Services('Add', 'The lot associatied with this OldLotID does not contain any supplements.')
end
end service
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
// GetSupplementsForLot // GetSupplementsForLot
@ -633,3 +684,5 @@ Service SendNotifications(RDSList, EditEvent, Instructions, EntryUser)
end service end service