Created temporary workarounds to QA Metrology not getting set correctly.
This commit is contained in:
@ -85,6 +85,7 @@ $Insert DICT_EQUATES
|
||||
$Insert COMPANY_EQUATES
|
||||
$Insert RETURN_TO_FAB_LOTS_EQUATES
|
||||
$Insert TEST_RUN_EQUATES
|
||||
$Insert QA_MET_EQUATES
|
||||
|
||||
EQU COL$LSID TO 1
|
||||
EQU COL$RECIPE TO 2
|
||||
@ -119,7 +120,7 @@ AutoDisplayErrors = FALSE$ ; // Set this to True$ when debugging so all erro
|
||||
Declare subroutine SRP_Stopwatch, Error_Services, obj_Tables, Metrology_Services, obj_RDS_Test, SRP_JSON, Logging_Services
|
||||
Declare subroutine RTI_Set_Debugger, Database_Services, Btree.Extract, Extract_SI_Keys, Obj_WO_Mat, Obj_WO_Mat_Log
|
||||
Declare subroutine Dialog_Box, Obj_Notes, RList, Set_Status, Errmsg, Obj_React_Status , Reactor_Services
|
||||
Declare subroutine Rds_Services, Obj_Post_Log, Mona_Services, Transaction_Services, Reduce
|
||||
Declare subroutine Rds_Services, Obj_Post_Log, Mona_Services, Transaction_Services, Reduce, obj_wo_mat_qa
|
||||
Declare function SRP_Sort_Array, Metrology_Services, obj_RDS_Test, obj_Test_Point_Map, Database_Services
|
||||
Declare function Work_Order_Services, SRP_JSON, Logging_Services, Environment_Services, SRP_Trim, Error_Services
|
||||
Declare function Memberof, Obj_WO_Mat, Obj_WO_Mat_Log, SRP_Array, DateTime, Dialog_Box, obj_Prod_Spec
|
||||
@ -809,6 +810,104 @@ Service GetRDSRunHistoryByReactorAndWO(ReactorNo, WO)
|
||||
|
||||
end service
|
||||
|
||||
Service ProcessMetQA(RDSNo)
|
||||
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
WONo = RDSRec<RDS_WO$>
|
||||
CassNo = RDSRec<RDS_CASS_NO$>
|
||||
StepNo = 1
|
||||
PSNos = XLATE('WO_LOG',WoNo,'PROD_VER_STEP_PSN','X')
|
||||
PSNo = PSNos<1,StepNo>
|
||||
|
||||
QAMetData = obj_Prod_Spec('GetQAMet',PSNo:@RM:@RM:1) ;* * * Get Reactor Scheduled QA Metrology * * *
|
||||
If QAMetData NE '' then
|
||||
for each Stage in QAMetData<COL$QA_MET_STAGE> using @VM setting StagePos
|
||||
Start = QAMetData<COL$QA_MET_START, StagePos>
|
||||
Interval = QAMetData<COL$QA_MET_INTERVAL, StagePos>
|
||||
Stage = QAMetData<COL$QA_MET_STAGE, StagePos>
|
||||
MetPropCd = QAMetData<COL$QA_MET_PROP, StagePos>
|
||||
|
||||
IsProdTestReqd = RDS_Services('IsProdTestReqd', RDSNo, MetPropCd)
|
||||
|
||||
If IsProdTestReqd then
|
||||
|
||||
owmParms = WONo:@RM
|
||||
owmParms := StepNo:@RM
|
||||
owmParms := CassNo:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_STAGE, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_TEST, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_PROP, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_TOOL_CLASS, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_MIN, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_MAX, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_SLOT, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_RECIPE, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_RECIPE_PATTERN, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_WFR_QTY, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_WFR_TYPE, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_REACT_SCHED, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_SHIP_DOC, StagePos>:@RM
|
||||
owmParms := QAMetData<COL$QA_MET_PHASE_MIN, StagePos> ; // 10/15/18 - djs - Added Phase Min Spec for HgCV
|
||||
|
||||
|
||||
obj_WO_Mat_QA('AddQAMet', owmParms) ;* Schedule test boxes after list change
|
||||
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrMsg(errCode)
|
||||
END
|
||||
end
|
||||
Next Stage
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
Service IsProdTestReqd(RDSNo, PropCd)
|
||||
|
||||
ProdTestReqd = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
WONo = RDSRec<RDS_WO$>
|
||||
ReactNo = RDSRec<RDS_REACTOR$>
|
||||
ReactorType = Database_Services('ReadDataColumn', 'REACTOR', ReactNo, REACTOR_REACT_TYPE$, True$, 0, False$)
|
||||
ThisReactorRunOrder = 0
|
||||
ReactRDSNos = RDS_Services('GetRDSRunHistoryByReactorAndWO', ReactNo, WONo)
|
||||
LOCATE RDSNo IN ReactRDSNos USING @VM SETTING ThisReactorRunOrder else
|
||||
//Add it to the end of the RDS List assuming that it's next to run.
|
||||
LastIndex = DCount(ReactRDSNos, @VM)
|
||||
ThisReactorRunOrder = LastIndex + 1
|
||||
ReactRDSNos<1, ThisReactorRunOrder> = RDSNo
|
||||
end
|
||||
PSNo = RDSRec<RDS_PROD_SPEC_ID$>
|
||||
PSRec = Database_Services('ReadDataRow', 'PROD_SPEC', PSNo)
|
||||
PRSLayerKeys = PSRec<PROD_SPEC_PRS_LAYER_KEY$>
|
||||
for each PRSLayerKey in PRSLayerKeys using @VM
|
||||
PRSPropKeys = Database_Services('ReadDataColumn', 'PRS_LAYER', PRSLayerKey, 5)
|
||||
for each PRSPropKey in PRSPropKeys using @VM
|
||||
PRSPropRec = Database_Services('ReadDataRow', 'PRS_PROP', PRSPropKey)
|
||||
ReqdPropCd = Field(PRSPropKey, '*', 3)
|
||||
If PropCd EQ ReqdPropCd then
|
||||
WaferType = PRSPropRec<6>
|
||||
TestType = Field(PRSPropKey, '*', 3)
|
||||
Layer = Field(PRSPropKey, '*', 2)
|
||||
MeasureFreq = PRSPropRec<PRS_PROP_FREQ$>
|
||||
Start = PRSPropRec<PRS_PROP_MET_START$>
|
||||
If WaferType EQ 'Product' OR WaferType EQ 'Prod' then
|
||||
BEGIN CASE
|
||||
CASE MeasureFreq = 'F' AND ThisReactorRunOrder = 1 ; ProdTestReqd = 1
|
||||
CASE ThisReactorRunOrder = Start ; ProdTestReqd = 1
|
||||
CASE NUM(MeasureFreq)
|
||||
If MOD(ThisReactorRunOrder,MeasureFreq) - Start = 0 then
|
||||
ProdTestReqd = 1
|
||||
end
|
||||
END CASE
|
||||
end
|
||||
end
|
||||
Until ProdTestReqd EQ True$
|
||||
Next PRSPropKey
|
||||
Until ProdTestReqd EQ True$
|
||||
Next PRSLayerKey
|
||||
Response = ProdTestReqd
|
||||
|
||||
end service
|
||||
|
||||
Service IsTWLoggingReqd(RDSNo)
|
||||
|
||||
@ -2298,3 +2397,4 @@ ClearCursors:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user