COMPILE SUBROUTINE RDS_REACT_RUN(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, NextKey, MemberOf $INSERT RDS_EQU $INSERT PROD_SPEC_EQUATES $INSERT PRS_STAGE_EQUATES $INSERT REACT_RUN_EQUATES $INSERT SURFACE_SCAN_EQUATES $INSERT CLEAN_INSP_EQUATES $INSERT QUOTE_SPEC_EQU $INSERT WO_MAT_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 OPEN 'CLEAN_INSP' TO CITable ELSE GOTO Bail END READ RDSRec FROM RDSTable,RDSNo THEN WOStepKey = RDSRec 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') READ RunRec FROM RRTable,RDSNo ELSE RunRec = '' ;* Added 8/14/2009 JCH RunRec = WOStepKey[1,'*'] RunRec = WOStepKey[COL2()+1,'*'] RunRec = CassNo RunRec = RDSRec RunRec = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'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 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 RunRec = RDSRec RunRec = RDSRec RunRec = '' ;* Not in current RDS's RunRec = RDSRec * Signatures PreEpiSigs = RDSRec IF INDEX(PreEpiSigs,@VM, 1) THEN SigCnt = COUNT(PreEpiSigs,@VM) + (PreEpiSigs NE '') PreSig = '' PreSigDTM = '' VerSig = '' VerSigDTM = '' FOR I = 1 TO SigCnt IF I = 1 THEN VerSig = RDSRec VerSigDTM = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') END ELSE PreSig = RDSRec PreSigDTM = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') END NEXT I IF PreSig = '' THEN PreSig = VerSig IF PreSigDTM = '' THEN PreSigDTM = VerSigDTM END ELSE VerSig = RDSRec VerSigDTM = ICONV(OCONV(RDSRec,'D4/'):' ':OCONV(RDSRec,'MTS'),'DT') PreSig = VerSig PreSigDTM = VerSigDTM END RunRec = VerSig RunRec = VerSigDTM RunRec = PreSig RunRec = PreSigDTM 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') PSRec = XLATE('PROD_SPEC',PSNo,'','X') ReactorType = PSRec StageKeys = PSRec StageCnt = COUNT(StageKeys,@VM) + (StageKeys NE '') CIStages = 'PRE':@VM:'FWI':@VM:'LWI':@VM:'POST' FOR I = 1 TO StageCnt StageKey = StageKeys<1,I> Stage = StageKey[-1,'B*'] LOCATE Stage IN CIStages USING @VM SETTING DUMMY THEN StageRec = XLATE('PRS_STAGE',StageKey,'','X') LOCATE Stage IN RunRec USING @VM SETTING Pos THEN CINo = RunRec END ELSE IF ReactorType = 'EPP' THEN IF Stage = 'LWI' THEN CINo = NextKey('CLEAN_INSP') ;* This is a new CLEAN_INSP record RunRec = INSERT(RunRec,REACT_RUN_CI_NO$,Pos,0,CINo) RunRec = INSERT(RunRec,REACT_RUN_CI_STAGE$,Pos,0,Stage) CIRec = '' CIRec = WONo CIRec = StepNo CIRec = '' ;* Null Cass No for EpiPro RDS runs CIRec = Stage CIRec = RDSNo CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec = StageRec = StageRec ;* Visual Inspection CIRec = StageRec ;* Visual Inspection CIRec = StageRec ;* Visual Inspection CIRec = StageRec ;* Visual Inspection CIRec = StageRec ;* Visual Inspection WRITE CIRec ON CITable,CINo ELSE NULL END ; * End of check for LWI stage END ELSE CINo = NextKey('CLEAN_INSP') ;* This is a new CLEAN_INSP record RunRec = INSERT(RunRec,REACT_RUN_CI_NO$,Pos,0,CINo) RunRec = INSERT(RunRec,REACT_RUN_CI_STAGE$,Pos,0,Stage) CIRec = '' CIRec = WONo CIRec = StepNo CIRec = CassNo CIRec = Stage CIRec = RDSNo // Use PRS_STAGE to set CLEAN_INSP WOQty = Xlate('WO_LOG', WONo, 'QTY', 'X') RunNo = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X')<0, 1> InspInterval = Xlate('PRS_STAGE', StageKey, 'INSP_INTERVAL', 'X') LastRun = ( (RunNo * 25) EQ WOQty ) InspReq = ( (Mod((RunNo - 1), InspInterval) EQ 0) or LastRun ) CIRec = InspReq CIRec = InspInterval * CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec CIRec = StageRec = StageRec = StageRec ;* Visual Inspection CIRec = StageRec ;* Visual Inspection CIRec = StageRec ;* Visual Inspection CIRec = StageRec ;* Visual Inspection CIRec = StageRec ;* Visual Inspection WRITE CIRec ON CITable,CINo ELSE NULL END ;* End of check for EpiPro reactor type END ;* End of Stage Locate RunRec END ;* End of check for valid CIStage NEXT I WRITE RunRec ON RRTable,RDSNo ELSE NULL /* * Dead on 5/19/2010 JCH - causing problems 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 * * * * * * * CleanInsp: * * * * * * * RETURN