pre cutover push
This commit is contained in:
@ -83,6 +83,7 @@ Function QA_Services(@Service, @Params)
|
||||
Updated wafer image related services to require a tencor recipe to be specified. This allows
|
||||
the application to store and view wafer images for separate tencor recipes
|
||||
(e.g. 8IN_THIN ROTR vs. 8IN100_ROTR).
|
||||
06/13/24 djm Add new stage-specific supplement system.
|
||||
|
||||
***********************************************************************************************************************/
|
||||
#pragma precomp SRP_PreCompiler
|
||||
@ -149,6 +150,7 @@ Declare function Min, Max, SRPSendMail, Btree.Extract, GetTickCount, HTTPClie
|
||||
Declare function SRP_Encode, SRP_Decode, SRP_COM, QA_Services, RDS_Services, Obj_NCR, Logging_Services, Obj_Reactor
|
||||
Declare function Get_Status, Set_Status, obj_WO_Mat, NextKey, MemberOf, FieldCount, obj_React_Status, Obj_Clean_Insp
|
||||
Declare function Schedule_Services, Signature_Services, Date, Time, Datetime, Date_Services, SRP_Array, Math_Services
|
||||
Declare function Supplement_Services, Reactor_Services
|
||||
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
LogTime = Oconv(Time(), 'MTS')
|
||||
@ -1866,6 +1868,7 @@ Service PreEpiSignatureReady(RDSNo, Username, WaferQty, Reactor)
|
||||
END
|
||||
|
||||
Query = 'SELECT REACT_STATE WITH SCHED_WO CONTAINING ':WONo
|
||||
ClearSelect
|
||||
Set_Status(0)
|
||||
RList(Query, TARGET_ACTIVELIST$, '', '' '')
|
||||
SchedReactors = ''
|
||||
@ -1884,6 +1887,15 @@ Service PreEpiSignatureReady(RDSNo, Username, WaferQty, Reactor)
|
||||
return
|
||||
end
|
||||
|
||||
// Add check for supplement signatures
|
||||
UnacknowledgedSupp = Supplement_Services('UnacknowledgedSupplementCheck', 'RDS', RDSNo, 'VER')
|
||||
If UnacknowledgedSupp NE FALSE$ then
|
||||
ErrorMessage = 'The pre epi stage supplements must be acknowledged before the load operation can be signed.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
|
||||
If Error_Services('NoError') then
|
||||
Response = True$
|
||||
end else
|
||||
@ -2100,12 +2112,14 @@ end service
|
||||
// Username - LSL Username of the operator signing the stage.
|
||||
// WaferQty - User supplied wafer quantity to verify against the schedule.
|
||||
// LLSide - Load lock side to be saved within the RDS record.
|
||||
// PreFlag - Optional parameter. Skip pre-stage check(Used in Scanner)
|
||||
// ReactNoOpt - Used in conjunction with above Pre-Flag. If skipping pre-stage check ReactorNo not saved to RDS record so need to pass it through
|
||||
//
|
||||
// Output:
|
||||
// Response - True$ if LOAD stage is ready to be signed (all preconditions met and no errors encountered),
|
||||
// False$ otherwise.
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag)
|
||||
Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOpt)
|
||||
|
||||
Error_Services('Clear')
|
||||
If (RDSNo EQ '') or (Username EQ '') or (WaferQty EQ '') then
|
||||
@ -2125,6 +2139,9 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag)
|
||||
WONo = RDSRec<RDS_WO$>
|
||||
CassNo = RDSRec<RDS_CASS_NO$>
|
||||
Reactor = RDSRec<RDS_REACTOR$>
|
||||
If Reactor EQ '' AND Assigned(ReactNoOpt) AND PreFlag EQ True$ then
|
||||
Reactor = ReactNoOpt
|
||||
end
|
||||
PSN = RDSRec<RDS_PROD_SPEC_ID$>
|
||||
LoadSig = RDSRec<RDS_OPERATOR_IN$>
|
||||
WOStep = Xlate('RDS', RDSNo, 'WO_STEP', 'X')
|
||||
@ -2135,7 +2152,16 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag)
|
||||
SchedQty = RDSRec<RDS_CASS_WAFER_QTY$>
|
||||
ParamOutOfSpec = Xlate('RDS', RDSNo, 'PARAM_OUT_OF_SPEC', 'X')
|
||||
Supplement = RDSRec<RDS_SUPPLEMENT$>
|
||||
|
||||
|
||||
ReactorCapacity = Reactor_Services('GetReactorAvailChamberCount', Reactor)
|
||||
If ReactorCapacity LE 0 then
|
||||
|
||||
ErrorMessage = 'Process Error: Reactor ' : Reactor : ' does not have the capacity for this lot.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
|
||||
If WaferQty NE SchedQty then
|
||||
ErrorMessage = 'Process Error: Verified wafer quantity does not match the scheduled quantity.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
@ -2163,16 +2189,29 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
// Ensure recipe parameters (RDS Layer parameters) have been manually entered or automatically applied.
|
||||
LSParmsComp = Xlate('RDS', RDSNo, 'LS_PARMS_COMP', 'X')
|
||||
FirstParmsComp = LSParmsComp<1,1>
|
||||
IF (FirstParmsComp EQ False$) THEN
|
||||
ErrorMsg = 'Process Error: Recipe parameters have not been entered.'
|
||||
LSParmsComp = Xlate('RDS', RDSNo, 'LS_PARMS_COMP', 'X')
|
||||
Buf1 = DCount(LSParmsComp, @VM)
|
||||
Buf2 = Sum(LSParmsComp)
|
||||
If DCount(LSParmsComp, @VM) NE Sum(LSParmsComp) then
|
||||
ErrorMsg = 'Process Error: Recipe parameters for layer(s) '
|
||||
RDSLSKeys = Xlate('RDS', RDSNo, 'RDS_LS_SORTED', 'X')
|
||||
For each LSParmFlag in LSParmsComp using @VM setting vPos
|
||||
If Not(LSParmFlag) then
|
||||
LayerNo = RDSLSKeys<0, vPos>
|
||||
LayerNo = LayerNo[-1, 'B*']
|
||||
ErrorMsg := LayerNo : ','
|
||||
end
|
||||
Next LSParmsComp
|
||||
ErrorMsg[-1, 1] = ''
|
||||
ErrorMsg := ' have not been entered.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
|
||||
//Added 8/18/2021 JRO - checks to make sure recipe limits aren't oos
|
||||
* IF ParamOutOfSpec then
|
||||
* IF Supplement NE True$ then
|
||||
@ -2277,7 +2316,7 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag)
|
||||
Return
|
||||
END
|
||||
|
||||
IF ReactorType NE 'EPP' THEN
|
||||
* IF ReactorType NE 'EPP' THEN
|
||||
|
||||
If PreFlag EQ True$ then
|
||||
// PRE and LOAD stages are being signed together. This is usually because the operator is loading a reactor
|
||||
@ -2287,8 +2326,14 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag)
|
||||
Stage = 'LOAD'
|
||||
end
|
||||
|
||||
WOMatKey = WONo:'*':CassNo
|
||||
Signature_Services('CheckSigOrder', WOMatKey, Stage)
|
||||
If ReactorType EQ 'EPP' then
|
||||
WOMatKey = ''
|
||||
end else
|
||||
WOMatKey = WONo:'*':CassNo
|
||||
end
|
||||
|
||||
Signature_Services('CheckSigOrder', WOMatKey, Stage, False$, RDSNo)
|
||||
|
||||
If Error_Services('HasError') then
|
||||
Response = False$
|
||||
Return
|
||||
@ -2304,15 +2349,16 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag)
|
||||
* RETURN
|
||||
* END
|
||||
|
||||
END ;* End of check for Epi Pro
|
||||
* END ;* End of check for Epi Pro
|
||||
|
||||
SupplAckReq = Xlate('RDS', RDSNo, 'SUPPL_ACK_REQ', 'X')
|
||||
IF (SupplAckReq EQ True$) then
|
||||
ErrorMsg = 'The RDS Supplement must be acknowledged before the load operation can be signed.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
Return
|
||||
END
|
||||
// Deprecated in favor of stage specific supplements
|
||||
* SupplAckReq = Xlate('RDS', RDSNo, 'SUPPL_ACK_REQ', 'X')
|
||||
* IF (SupplAckReq EQ True$) then
|
||||
* ErrorMsg = 'The RDS Supplement must be acknowledged before the load operation can be signed.'
|
||||
* Error_Services('Set', ErrorMsg)
|
||||
* Response = False$
|
||||
* Return
|
||||
* END
|
||||
|
||||
SigDate = RDSRec<RDS_PRE_EPI_SIG_DATE$>
|
||||
SigTime = RDSrec<RDS_PRE_EPI_SIG_TIME$>
|
||||
@ -2341,7 +2387,16 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag)
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
Return
|
||||
END
|
||||
END
|
||||
|
||||
// Add check for supplement signatures
|
||||
UnacknowledgedSupp = Supplement_Services('UnacknowledgedSupplementCheck', 'RDS', RDSNo, 'LOAD')
|
||||
If UnacknowledgedSupp NE FALSE$ then
|
||||
ErrorMessage = 'The LOAD stage supplements must be acknowledged before the load operation can be signed.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
|
||||
If Error_Services('NoError') then
|
||||
Response = True$
|
||||
@ -2351,6 +2406,66 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag)
|
||||
|
||||
end service
|
||||
|
||||
Service LoadExtra1stReady(RDSNo)
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
UnloadExtra1Signature = RDSRec<RDS_OP_OUT_EX1$>
|
||||
LoadExtra1Signature = RDSRec<RDS_OP_IN_EX2$>
|
||||
UnloadExtra2Signature = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Signature = RDSRec<RDS_OP_IN_EX3$>
|
||||
StandardUnloadSignature = RDSRec<RDS_OPERATOR_OUT$>
|
||||
If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature EQ '' And LoadExtra2Signature EQ ''AND UnloadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
|
||||
Response = True$
|
||||
end
|
||||
end service
|
||||
|
||||
Service UnsignLoadExtra1stReady(RDSNo)
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
UnloadExtra1Signature = RDSRec<RDS_OP_OUT_EX1$>
|
||||
LoadExtra1Signature = RDSRec<RDS_OP_IN_EX2$>
|
||||
UnloadExtra2Signature = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Signature = RDSRec<RDS_OP_IN_EX3$>
|
||||
StandardUnloadSignature = RDSRec<RDS_OPERATOR_OUT$>
|
||||
If LoadExtra1Signature NE '' then
|
||||
If UnloadExtra2Signature EQ '' AND LoadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
|
||||
Response = True$
|
||||
end
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
Service LoadExtra2ndReady(RDSNo)
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
UnloadExtra1Signature = RDSRec<RDS_OP_OUT_EX1$>
|
||||
LoadExtra1Signature = RDSRec<RDS_OP_IN_EX2$>
|
||||
UnloadExtra2Signature = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Signature = RDSRec<RDS_OP_IN_EX3$>
|
||||
StandardUnloadSignature = RDSRec<RDS_OPERATOR_OUT$>
|
||||
If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature NE '' AND UnloadExtra2Signature NE '' And LoadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
|
||||
Response = True$
|
||||
end
|
||||
end service
|
||||
|
||||
Service UnsignLoadExtra2ndReady(RDSNo)
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
UnloadExtra1Signature = RDSRec<RDS_OP_OUT_EX1$>
|
||||
LoadExtra1Signature = RDSRec<RDS_OP_IN_EX2$>
|
||||
UnloadExtra2Signature = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Signature = RDSRec<RDS_OP_IN_EX3$>
|
||||
StandardUnloadSignature = RDSRec<RDS_OPERATOR_OUT$>
|
||||
If LoadExtra2Signature NE '' then
|
||||
If StandardUnloadSignature EQ '' then
|
||||
Response = True$
|
||||
end
|
||||
end
|
||||
end service
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// SignLoadStage
|
||||
@ -2395,7 +2510,15 @@ Service SignLoadStage(RDSNo, Username, WaferQty, LLSide, ScanEntry)
|
||||
TWAllSigned = Xlate('RDS', RDSNo, 'TW_ALL_SIGNED', 'X')
|
||||
RunOrderNo = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X')
|
||||
SchedQty = RDSRec<RDS_CASS_WAFER_QTY$>
|
||||
|
||||
|
||||
CurrReactorLoadCapacity = Reactor_Services('GetReactorAvailChamberCount', Reactor)
|
||||
If CurrReactorLoadCapacity LE 0 then
|
||||
ErrorMsg = 'Error: Reactor load limit has been reached.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
|
||||
IF ReactorType NE 'EPP' THEN
|
||||
|
||||
WOMatRec = XLATE('WO_MAT',WONo:'*':CassNo,'','X')
|
||||
@ -2560,6 +2683,7 @@ Service SignLoadStage(RDSNo, Username, WaferQty, LLSide, ScanEntry)
|
||||
Database_Services('WriteDataRow', 'RDS', RDSNo, RDSRec, True$, False$, True$)
|
||||
|
||||
If Error_Services('NoError') then
|
||||
Rds_Services('AddComment', RDSNo, 'Load Stage signed onto Reactor ' : Reactor, Username)
|
||||
If ReactorType EQ 'EPP' then
|
||||
Reactor_Services('IncrementWfrMetrics', RDSNo)
|
||||
end
|
||||
@ -2632,41 +2756,39 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
|
||||
end
|
||||
ReactorType = XLATE('RDS',RDSNo,'REACTOR_TYPE','X')
|
||||
|
||||
IF ReactorType NE 'EPP' THEN
|
||||
WOMatKey = WONo:'*':CassNo
|
||||
Signature_Services('CheckSigOrder', WOMatKey, 'UNLOAD')
|
||||
|
||||
* IF ReactorType NE 'EPP' THEN
|
||||
|
||||
|
||||
If ReactorType EQ 'EPP' then
|
||||
WOMatKey = ''
|
||||
end else
|
||||
WOMatKey = WONo:'*':CassNo
|
||||
end
|
||||
|
||||
Signature_Services('CheckSigOrder', WOMatKey, 'UNLOAD', RDSNo)
|
||||
If Error_Services('HasError') then
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
|
||||
! Deprecated 11/20/2019
|
||||
* Set_Status(0)
|
||||
* obj_WO_Mat('CheckSigOrder',WONo:'*':CassNo:@RM:WOStep:'UNLOAD')
|
||||
*
|
||||
* IF Get_Status(errCode) THEN
|
||||
* ErrorMsg = 'Process Error: Error calling Obj_WO_Mat("CheckSigOrder") within the ':Service:' service'
|
||||
* Response = False$
|
||||
* Error_Services('Set', ErrorMsg)
|
||||
* return
|
||||
* END ELSE
|
||||
*
|
||||
* ReactRunRec = XLATE('REACT_RUN',RDSNo,'','X')
|
||||
* LOCATE 'LWI' IN ReactRunRec<REACT_RUN_CI_STAGE$> USING @VM SETTING Pos THEN
|
||||
* CINo = ReactRunRec<REACT_RUN_CI_NO$>
|
||||
* Actions = obj_Clean_Insp('GetActions',CINo)
|
||||
* LOCATE 'Inspection' IN Actions<ACTION$ACTIONS> USING @FM SETTING Pos THEN
|
||||
* IF Actions<ACTION$SIGS,1> = '' THEN
|
||||
* ErrorMsg = 'Process Error: A Wafer Inspection is required and has not been completed.'
|
||||
* Error_Services('Set', ErrorMsg)
|
||||
* Response = False$
|
||||
* return
|
||||
* END
|
||||
* END
|
||||
* END
|
||||
END ELSE
|
||||
|
||||
ReactRunRec = XLATE('REACT_RUN',RDSNo,'','X')
|
||||
LOCATE 'LWI' IN ReactRunRec<REACT_RUN_CI_STAGE$> USING @VM SETTING Pos THEN
|
||||
CINo = ReactRunRec<REACT_RUN_CI_NO$>
|
||||
Actions = obj_Clean_Insp('GetActions',CINo)
|
||||
LOCATE 'Inspection' IN Actions<ACTION$ACTIONS> USING @FM SETTING Pos THEN
|
||||
IF Actions<ACTION$SIGS,1> = '' THEN
|
||||
ErrorMsg = 'Process Error: A Wafer Inspection is required and has not been completed.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
return
|
||||
END
|
||||
END
|
||||
END
|
||||
|
||||
END ;* End of check for EpiPRO (EPP) reactor type
|
||||
*
|
||||
* END ;* End of check for EpiPRO (EPP) reactor type
|
||||
|
||||
LWIInstAckReq = Xlate('RDS', RDSNo, 'LWI_INST_ACK_REQ', 'X')
|
||||
If LWIInstAckReq EQ True$ then
|
||||
@ -2739,6 +2861,15 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
|
||||
Override_Services('SetOverride', 'RDS', RDSNo, 'UNLOAD_DTM', @User4)
|
||||
end
|
||||
|
||||
// Add check for supplement signatures
|
||||
UnacknowledgedSupp = Supplement_Services('UnacknowledgedSupplementCheck', 'RDS', RDSNo, 'UNLOAD')
|
||||
If UnacknowledgedSupp NE FALSE$ then
|
||||
ErrorMessage = 'The UNLOAD stage supplements must be acknowledged before the unload operation can be signed.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
|
||||
If Error_Services('NoError') then
|
||||
Response = True$
|
||||
end else
|
||||
@ -2747,6 +2878,67 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
|
||||
|
||||
end service
|
||||
|
||||
Service UnloadExtra1stReady(RDSNo)
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
UnloadExtra1Signature = RDSRec<RDS_OP_OUT_EX1$>
|
||||
LoadExtra1Signature = RDSRec<RDS_OP_IN_EX2$>
|
||||
UnloadExtra2Signature = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Signature = RDSRec<RDS_OP_IN_EX3$>
|
||||
StandardUnloadSignature = RDSRec<RDS_OPERATOR_OUT$>
|
||||
If StandardLoadSignature NE '' AND UnloadExtra1Signature EQ '' AND LoadExtra1Signature EQ '' AND UnloadExtra2Signature EQ '' And LoadExtra2Signature eq '' and StandardUnloadSignature EQ '' then
|
||||
Response = True$
|
||||
end
|
||||
end service
|
||||
|
||||
Service UnloadExtra2ndReady(RDSNo)
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
UnloadExtra1Signature = RDSRec<RDS_OP_OUT_EX1$>
|
||||
LoadExtra1Signature = RDSRec<RDS_OP_IN_EX2$>
|
||||
UnloadExtra2Signature = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Signature = RDSRec<RDS_OP_IN_EX3$>
|
||||
StandardUnloadSignature = RDSRec<RDS_OPERATOR_OUT$>
|
||||
If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature NE '' And LoadExtra2Signature EQ ''AND UnloadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
|
||||
Response = True$
|
||||
end
|
||||
end service
|
||||
|
||||
Service UnsignUnloadExtra1stReady(RDSNo)
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
UnloadExtra1Signature = RDSRec<RDS_OP_OUT_EX1$>
|
||||
LoadExtra1Signature = RDSRec<RDS_OP_IN_EX2$>
|
||||
UnloadExtra2Signature = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Signature = RDSRec<RDS_OP_IN_EX3$>
|
||||
StandardUnloadSignature = RDSRec<RDS_OPERATOR_OUT$>
|
||||
If UnloadExtra1Signature NE '' then
|
||||
If LoadExtra1Signature EQ '' AND UnloadExtra2Signature EQ '' AND LoadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
|
||||
Response = True$
|
||||
end
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
Service UnsignUnloadExtra2ndReady(RDSNo)
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
UnloadExtra1Signature = RDSRec<RDS_OP_OUT_EX1$>
|
||||
LoadExtra1Signature = RDSRec<RDS_OP_IN_EX2$>
|
||||
UnloadExtra2Signature = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Signature = RDSRec<RDS_OP_IN_EX3$>
|
||||
StandardUnloadSignature = RDSRec<RDS_OPERATOR_OUT$>
|
||||
If UnloadExtra2Signature NE '' then
|
||||
If LoadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
|
||||
Response = True$
|
||||
end
|
||||
end
|
||||
end service
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// SignUnloadStage
|
||||
@ -2950,6 +3142,7 @@ Service SignUnloadStage(RDSNo, Username, ScanEntry)
|
||||
end
|
||||
|
||||
If Error_Services('NoError') then
|
||||
Rds_Services('AddComment', RDSNo, 'Unload Stage signed onto Reactor ' : Reactor, Username)
|
||||
Response = True$
|
||||
end else
|
||||
Response = False$
|
||||
@ -2976,14 +3169,6 @@ Service PostEpiSignatureReady(RDSNo, User)
|
||||
return
|
||||
end
|
||||
|
||||
PostEpiSig = RDSRec<RDS_POST_EPI_SIG$>
|
||||
IF PostEpiSig NE '' then
|
||||
ErrorMsg = 'Error in ':Service:' service. POST stage has already been signed.'
|
||||
Error_Services('Add', ErrorMsg)
|
||||
Response = False$
|
||||
return
|
||||
END
|
||||
|
||||
WONo = RDSRec<RDS_WO$>
|
||||
CassNo = RDSRec<RDS_CASS_NO$>
|
||||
Reactor = RDSRec<RDS_REACTOR$>
|
||||
@ -3028,6 +3213,15 @@ Service PostEpiSignatureReady(RDSNo, User)
|
||||
return
|
||||
end
|
||||
|
||||
// Add check for supplement signatures
|
||||
UnacknowledgedSupp = Supplement_Services('UnacknowledgedSupplementCheck', 'RDS', RDSNo, 'POST')
|
||||
If UnacknowledgedSupp NE FALSE$ then
|
||||
ErrorMessage = 'The post epi stage supplements must be acknowledged before the post epi operation can be signed.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
@ -3261,20 +3455,13 @@ Service SignFQAStage(RDSNo, Username)
|
||||
Response = False$
|
||||
Return
|
||||
end
|
||||
! Deprecated 11/20/2019
|
||||
* Set_Status(0)
|
||||
* obj_WO_Mat('CheckSigOrder',WONo:'*':CassNo:@RM:WOStep:'QA')
|
||||
* IF Get_Status(errCode) THEN
|
||||
* ErrorMsg = 'Error calling Obj_WO_Mat("CheckSigOrder") within ':Service:'. Error code: ':errCode
|
||||
* Error_Services('Add', ErrorMsg)
|
||||
* END
|
||||
|
||||
Signature_Services('FQAReady', WOMatKey)
|
||||
If Error_Services('HasError') then
|
||||
Response = False$
|
||||
Return
|
||||
end
|
||||
! Deprecated 11/20/2019
|
||||
|
||||
WOMatRec = ''
|
||||
WOMatKey = WONo:'*':CassNo:@RM:WOStep
|
||||
WOMatRec = XLATE('WO_MAT', WOMatKey, '', 'X')
|
||||
@ -3701,9 +3888,11 @@ end service
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ClearCursors:
|
||||
|
||||
For counter = 0 to 8
|
||||
ClearSelect counter
|
||||
Next counter
|
||||
|
||||
return
|
||||
|
||||
|
||||
@ -3712,3 +3901,6 @@ return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user