COMPILE SUBROUTINE REACT_RUN_RDS(RDSNo) DECLARE SUBROUTINE obj_Schedule,Send_Dyn,Send_Info, Send_Dyn, obj_WO_Step, Set_Status DECLARE FUNCTION Get_Status, Set_Printer, obj_RDS, obj_Prod_Spec $INSERT RDS_EQU $INSERT PROD_SPEC_EQU $INSERT REACT_RUN_EQUATES $INSERT SURFACE_SCAN_EQUATES $INSERT QUOTE_SPEC_EQU $INSERT WO_MAT_EQUATES $INSERT WO_LOG_EQUATES IF NOT(ASSIGNED(RDSNo)) THEN RETURN OPEN 'RDS' TO RDSTable ELSE GOTO Bail END OPEN 'REACT_RUN' TO RRTable ELSE GOTO Bail END OPEN 'WO_MAT' TO WOMatTable ELSE GOTO Bail END READ RunRec FROM RRTable,RDSNo THEN WONo = RunRec WOStep = RunRec CassNo = RunRec WORec = XLATE('WO_LOG',WONo,'','X') WOMatRec = XLATE('WO_MAT',WONo:'*':CassNo,'','X') RDSRec = XLATE('RDS',RDSNo,'','X') RDSRec = WONo RDSRec = WONo:'*':WOStep RDSRec = CassNo RDSRec = WORec RDSRec = WORec RDSRec = WOMatRec RDSRec = XLATE('WO_LOG',WONo,'CUST_NO','X') RDSRec = WORec RDSRec = XLATE('WO_STEP',WONo:'*':WOStep,1,'X') RDSRec = XLATE('WO_LOG',WONo,'COMMIT_DATE','X') RDSRec = WOMatRec RDSRec = WOMatRec RDSRec = WOMatRec *RDSRec = QXJFlag RDSRec = WOMatRec RDSRec = XLATE('WO_LOG',WONo,WO_LOG_WO_STEP_KEY$,'X')[-1,'B':@VM] PSN = RDSRec SubstrateSpec = XLATE('PROD_SPEC',PSN,PROD_SPEC_SPEC_SUBSTRATE$,'X') RDSRec = SubstrateSpec<1,QSSubWafersSupBy$> RDSRec = SubstrateSpec<1,QSSubPreClean$> RDSRec = SubstrateSpec<1,QSSubPostClean$> RDSRec = RunRec EntryDTM = OCONV(RunRec,'DT/4^HS') RDSRec = ICONV(FIELD(EntryDTM,' ',1),'D') RDSRec = ICONV(FIELD(EntryDTM,' ',2),'MTS') RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec RDSRec = RunRec IF RunRec NE '' THEN RDSRec = 1 RDSRec = RunRec RDSRec = RunRec SuppEntryDTM = OCONV(RunRec,'DT/4^HS') RDSRec = ICONV(FIELD(SuppEntryDTM,' ',1),'D') RDSRec = ICONV(FIELD(SuppEntryDTM,' ',2),'MTS') RDSRec = RunRec SuppSigDTM = RunRec RDSRec = ICONV(FIELD(SuppSigDTM,' ',1),'D') RDSRec = ICONV(FIELD(SuppSigDTM,' ',2),'MTS') END RDSRec = RunRec OpOut1DTM = RunRec RDSRec = ICONV(FIELD(OpOut1DTM,' ',1),'D') RDSRec = ICONV(FIELD(OpOut1DTM,' ',2),'MTS') RDSRec = RunRec OpIn2DTM = RunRec RDSRec = ICONV(FIELD(OpIn2DTM,' ',1),'D') RDSRec = ICONV(FIELD(OpIn2DTM,' ',2),'MTS') IF RunRec NE '' THEN RDSRec = RunRec OpOut2DTM = RunRec RDSRec = ICONV(FIELD(OpOut2DTM,' ',1),'D') RDSRec = ICONV(FIELD(OpOut2DTM,' ',2),'MTS') RDSRec = RunRec OpIn3DTM = RunRec RDSRec = ICONV(FIELD(OpIn3DTM,' ',1),'D') RDSRec = ICONV(FIELD(OpIn3DTM,' ',2),'MTS') END PSRec = XLATE('PROD_SPEC',PSN,'','X') ReactorType = PSRec RDSRec = PSRec RDSRec = XLATE('PROD_SPEC',PSN,'SPEC_TYPE','X') *RDSRec = LayerSpec ;* JCH 2/27/2006 WRITE RDSRec ON RDSTable,RDSNo THEN Null END END /* * * * * Original Program * * * * * * VVVVV IF WOStepKey = '' THEN GOTO Bail PSNo = XLATE('WO_STEP',WOStepKey,1,'X') WONo = WOStepKey[1,'*'] StepNo = WOStepKey[COL2()+1,'*'] CassNo = XLATE('RDS',RDSNo,'RUN_ORDER_NUM','X') PSRec = XLATE('PROD_SPEC',PSNo,'','X') RunRec = '' *RunRec = WOStepKey[1,'*'] *RunRec = WOStepKey[COL2()+1,'*'] *RunRec = CassNo *RunRec = RDSRec *RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MT'),'DT') *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec IF RDSRec = 1 THEN RunRec = RDSRec RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') END RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') RunRec = '' RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') IF RDSRec NE '' THEN RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') RunRec = '' RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') END *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec *RunRec = RDSRec PSRec = XLATE('PROD_SPEC',PSNo,'','X') ReactorType = PSRec * PreEPI PreStageRec = '' PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = PSRec PreStageRec = RDSNo PreStageRec = RDSRec PreStageRec = RDSRec PreStageRec = RDSRec IF RDSRec NE '' OR RDSRec NE '' OR RDSRec NE '' THEN PreStageRec = RDSRec PreStageRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') END PreStageRec = RDSRec PreStageRec = RDSRec PreStageRec = RDSRec PreStageRec = RDSRec PreStageRec = RDSRec PreStageRec = RDSRec PreStageRec = RDSRec PreStageRec = RDSRec PreStageRec = RDSRec PreStageRec = RDSRec SurfaceScanRec = XLATE('SURFACE_SCAN',WOStepKey:'*':CassNo:'*':'PR','','X') PreStageRec = SurfaceScanRec PreStageRec = SurfaceScanRec PreStageRec = SurfaceScanRec PreStageRec = SurfaceScanRec PreStageRec = SurfaceScanRec PreStageRec = SurfaceScanRec PreStageRec = SurfaceScanRec PreStageRec = SurfaceScanRec IF PreStageRec NE '' THEN WRITE PreStageRec ON FileOut,WOStepKey:'*':CassNo:'*':'PRE' THEN RunRec = WOStepKey:'*':CassNo:'*':'PRE' END END * First Wafer FirstStageRec = '' FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = '' FirstStageRec = '' FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = PSRec FirstStageRec = RDSNo FirstStageRec = '' ;*RDSRec FirstStageRec = '' ;*RDSRec FirstStageRec = '' ;*RDSRec FirstStageRec = RDSRec FirstStageRec = RDSRec FirstStageRec = RDSRec FirstStageRec = '' FirstStageRec = RDSRec FirstStageRec = RDSRec FirstStageRec = RDSRec FirstStageRec = RDSRec FirstStageRec = RDSRec FirstStageRec = RDSRec FirstStageRec = RDSRec FirstStageRec = RDSRec SurfaceScanRec = XLATE('SURFACE_SCAN',WOStepKey:'*':CassNo:'*':'FW','','X') FirstStageRec = SurfaceScanRec FirstStageRec = SurfaceScanRec FirstStageRec = SurfaceScanRec FirstStageRec = SurfaceScanRec FirstStageRec = SurfaceScanRec FirstStageRec = SurfaceScanRec FirstStageRec = SurfaceScanRec FirstStageRec = SurfaceScanRec IF FirstStageRec NE '' THEN WRITE FirstStageRec ON FileOut,WOStepKey:'*':CassNo:'*':'WFR' THEN RunRec = WOStepKey:'*':CassNo:'*':'WFR' END END * Post Clean PostStageRec = '' PostStageRec = PSRec PostStageRec = PSRec PostStageRec = PSRec PostStageRec = PSRec PostStageRec = PSRec PostStageRec = PSRec PostStageRec = PSRec PostStageRec = PSRec PostStageRec = RDSNo PostStageRec = RDSRec PostStageRec = RDSRec PostStageRec = RDSRec IF RDSRec NE '' OR RDSRec NE '' OR RDSRec NE '' THEN PostStageRec = RDSRec PostStageRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') END PostStageRec = RDSRec SurfaceScanRec = XLATE('SURFACE_SCAN',WOStepKey:'*':CassNo:'*':'PC','','X') PostStageRec = SurfaceScanRec PostStageRec = SurfaceScanRec PostStageRec = SurfaceScanRec PostStageRec = SurfaceScanRec PostStageRec = SurfaceScanRec PostStageRec = SurfaceScanRec PostStageRec = SurfaceScanRec PostStageRec = SurfaceScanRec IF PostStageRec NE '' THEN WRITE PostStageRec ON FileOut,WOStepKey:'*':CassNo:'*':'POST' THEN RunRec = WOStepKey:'*':CassNo:'*':'POST' END END RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') WRITE RunRec ON RRTable,RDSNo ELSE NULL READ WOMatRec FROM WOMatTable,WONo:'*':CassNo THEN LOCATE RDSNo IN WOMatRec USING @VM SETTING Pos THEN WOMatRec = RunRec WOMatRec = RunRec END WRITE WOMatRec ON WOMatTable,WONo:'*':CassNo ELSE NULL END END END ;* End of RDSRec READ */ * * * * * * * Bail: * * * * * * * RETURN