ebase 8/22/2025
Modified RDS_Actions to fix RDSNo being unassigned when calling obj_wo_react -> RemRDS various bug fixes Re-initializaing branch Modified RDS_Actions to fix RDSNo being unassigned when calling obj_wo_react -> RemRDS Added a check prior to running Load logic to check that a reactor is assigned.
This commit is contained in:
@ -145,7 +145,7 @@ Declare subroutine RTI_Set_Debugger, Database_Services, Btree.Extract, Extract_
|
||||
Declare subroutine Set_Status, Sleepery, Winyield, Yield, SRP_COM, QA_Services, Logging_Services, Obj_RDS
|
||||
Declare subroutine Validate, obj_WO_Mat, obj_WO_Mat_Log, obj_React_Status, Record_Lock, obj_React_State, obj_Post_Log
|
||||
Declare subroutine RDS_Services, obj_WO_React, RDS_React_Run, Signature_Services, SQL_Services, SRP_Stopwatch
|
||||
Declare subroutine Override_Services, Reactor_Services, Lot_Services, Obj_Notes, Mona_Services, Service_Services
|
||||
Declare subroutine Override_Services, Reactor_Services, Lot_Services, Mona_Services, Service_Services, Obj_Notes
|
||||
Declare subroutine Transaction_Services
|
||||
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
|
||||
@ -1828,22 +1828,6 @@ Service SignPreEpiStage(RDSNo, Username, WaferQty, Reactor, ScanEntry)
|
||||
PSNo = RDSRec<RDS_PROD_SPEC_ID$>
|
||||
WOStep = Xlate('RDS', RDSNo, 'WO_STEP', 'X')
|
||||
|
||||
BEGIN CASE
|
||||
CASE OrgReactNo = '' AND Reactor NE ''
|
||||
obj_WO_React('AddRdsNo',WONo:@RM:WOStep:@RM:Reactor:@RM:RDSNo:@RM:CassNo:@RM:PSNo)
|
||||
|
||||
CASE OrgReactNo NE '' AND Reactor = ''
|
||||
obj_WO_React('RemRdsNo',WONo:@RM:WOStep:@RM:OrgReactNo:@RM:RDSNo:@RM:CassNo:@RM:PSNo)
|
||||
|
||||
CASE OrgReactNo NE Reactor
|
||||
obj_WO_React('RemRdsNo',WONo:@RM:WOStep:@RM:OrgReactNo:@RM:RDSNo:@RM:CassNo:@RM:PSNo)
|
||||
obj_WO_React('AddRdsNo',WONo:@RM:WOStep:@RM:Reactor:@RM:RDSNo:@RM:CassNo:@RM:PSNo)
|
||||
|
||||
CASE Otherwise$
|
||||
NULL
|
||||
|
||||
END CASE
|
||||
|
||||
// Need to update/save RDS record before calling RDS_React_Run
|
||||
RDSRec<RDS_REACTOR$> = Reactor
|
||||
RDSRec<RDS_VERIFY_QTY$> = WaferQty
|
||||
@ -2013,11 +1997,11 @@ end service
|
||||
Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOpt)
|
||||
StartTick = GetTickCount()
|
||||
MetricName = 'LoadSignatureReady'
|
||||
|
||||
ErrorMsg = ''
|
||||
Error_Services('Clear')
|
||||
If (RDSNo EQ '') or (Username EQ '') or (WaferQty EQ '') then
|
||||
ErrorMessage = 'Process Error: RDSNo, Username, or WaferQty not supplied in the ':Service:' service.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
ErrorMsg = 'Process Error: RDSNo, Username, or WaferQty not supplied in the ':Service:' service.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
@ -2055,15 +2039,15 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
|
||||
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)
|
||||
ErrorMsg = 'Process Error: Reactor ' : Reactor : ' does not have the capacity for this lot.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
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)
|
||||
ErrorMsg = 'Process Error: Verified wafer quantity does not match the scheduled quantity.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
@ -2083,8 +2067,8 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
|
||||
// the parameters. If they do not confirm them, then we need to stop the load signature.
|
||||
RDSLayerAckReq = Xlate('RDS', RDSNo, 'RDS_LAYER_ACK_REQ', 'X')
|
||||
If RDSLayerAckReq EQ True$ then
|
||||
ErrorMessage = 'RDS layer parameters must be reviewed for accuracy and acknowledged before the load operation can be signed.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
ErrorMsg = 'RDS layer parameters must be reviewed for accuracy and acknowledged before the load operation can be signed.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
@ -2167,9 +2151,9 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
|
||||
ROTRStatus = ReactorRec<REACTOR_ROTR_STATUS$>
|
||||
|
||||
If ROTRStatus EQ 'F' then
|
||||
ErrorMessage = 'Process Error: Unable to load reactor due to ROTR load block. ' |
|
||||
ErrorMsg = 'Process Error: Unable to load reactor due to ROTR load block. ' |
|
||||
: 'A lead or supervisor must clear the ROTR load block.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
@ -2252,20 +2236,180 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
|
||||
// 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)
|
||||
ErrorMsg = 'The LOAD stage supplements must be acknowledged before the load operation can be signed.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
|
||||
If Error_Services('NoError') then
|
||||
EndTick = GetTickCount()
|
||||
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
|
||||
|
||||
If ErrorMsg EQ '' then
|
||||
Response = True$
|
||||
end else
|
||||
Response = False$
|
||||
Error_Services('Add', ErrorMsg)
|
||||
end
|
||||
|
||||
EndTick = GetTickCount()
|
||||
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
|
||||
end service
|
||||
|
||||
Service UnsignLoadSignatureReady(RDSNo)
|
||||
|
||||
ErrorMessage = ''
|
||||
UnsignEligible = True$
|
||||
|
||||
If RowExists('RDS', RDSNo) then
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo, True$, 0, False$)
|
||||
If Error_Services('NoError') then
|
||||
WONo = RDSRec<RDS_WO$>
|
||||
CassNo = RDSRec<RDS_CASS_NO$>
|
||||
WoMatKey = WONo : '*' : CassNo
|
||||
If RowExists('WO_MAT', WoMatKey) then
|
||||
WOMatCurrStatus = obj_WO_Mat('CurrStatus',WOMatKey)
|
||||
|
||||
//Cases to check for various statuses that should block unsigning the unload.
|
||||
Begin Case
|
||||
Case WOMatCurrStatus EQ 'HOLD'
|
||||
ErrorMessage = 'Cassette is on HOLD and may not have the signature removed.'
|
||||
Case Otherwise$
|
||||
|
||||
End Case
|
||||
|
||||
If ErrorMessage EQ '' then
|
||||
//Check if any subsequent signature are set. If so RDS is not eligible.
|
||||
UnloadExtra1Sig = RDSRec<RDS_OP_OUT_EX1$>
|
||||
LoadExtra1Sig = RDSRec<RDS_OP_IN_EX2$>
|
||||
UnloadExtra2Sig = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Sig = RDSRec<RDS_OP_IN_EX3$>
|
||||
UnloadSig = RDSRec<RDS_OPERATOR_OUT$>Xlate('RDS', RDSNo, 'OPERATOR_OUT', 'X')
|
||||
CISigs = Xlate('RDS', RDSNo, 'LWI_CI_SIG', 'X')
|
||||
swap @VM with '' in CISigs
|
||||
ReactorType = XLATE('RDS', RDSNo, 'REACTOR_TYPE', 'X')
|
||||
If ReactorType NE 'EPP' Then
|
||||
FQASig = Xlate('RDS', RDSNo, 'SUP_VER_SIG', 'X')
|
||||
end else
|
||||
WMOutKey = Xlate('RDS', RDSNo, 'WM_OUT_KEY', 'X')
|
||||
FQASig = Xlate('WM_OUT', WMOutKey, 'SUP_VER_SIG', 'X')
|
||||
end
|
||||
|
||||
Begin Case
|
||||
Case FQASig NE ''
|
||||
ErrorMessage = 'FQA Signature is set.'
|
||||
Case CISigs NE ''
|
||||
ErrorMessage = 'Clean and Inspect Signatures are set.'
|
||||
Case UnloadSig NE ''
|
||||
ErrorMessage = 'Unload signature is set.'
|
||||
Case LoadExtra2Sig NE ''
|
||||
ErrorMessage = 'Load extra 2 signature is set.'
|
||||
Case UnloadExtra2Sig NE ''
|
||||
ErrorMessage = 'Unload extra 2 signature is set.'
|
||||
Case LoadExtra1Sig NE ''
|
||||
ErrorMessage = 'Load extra 1 signature is set.'
|
||||
Case UnloadExtra1Sig NE ''
|
||||
ErrorMessage = 'Unload extra 1 signature is set.'
|
||||
End Case
|
||||
|
||||
|
||||
end
|
||||
end else
|
||||
ErrorMessage = 'Unable to locate the WO_MAT record for this RDS in the WO_MAT table.'
|
||||
end
|
||||
end else
|
||||
ErrorMessage = 'Error reading RDS Record. ' : Error_Services('GetMessage')
|
||||
end
|
||||
|
||||
end else
|
||||
ErrorMessage = 'Unable to locate RDS in the RDS Table.'
|
||||
end
|
||||
|
||||
If ErrorMessage NE '' then
|
||||
UnsignEligible = False$
|
||||
ErrorMessage = 'Process Error: Unable to verify the load signature is Eligible to be unsigned: ' : ErrorMessage
|
||||
Error_Services('Add', ErrorMessage)
|
||||
end
|
||||
|
||||
Response = UnsignEligible
|
||||
|
||||
end service
|
||||
|
||||
Service UnsignLoadSignatureReady(RDSNo)
|
||||
|
||||
ErrorMessage = ''
|
||||
UnsignEligible = True$
|
||||
|
||||
If RowExists('RDS', RDSNo) then
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo, True$, 0, False$)
|
||||
If Error_Services('NoError') then
|
||||
WONo = RDSRec<RDS_WO$>
|
||||
CassNo = RDSRec<RDS_CASS_NO$>
|
||||
WoMatKey = WONo : '*' : CassNo
|
||||
If RowExists('WO_MAT', WoMatKey) then
|
||||
WOMatCurrStatus = obj_WO_Mat('CurrStatus',WOMatKey)
|
||||
|
||||
//Cases to check for various statuses that should block unsigning the unload.
|
||||
Begin Case
|
||||
Case WOMatCurrStatus EQ 'HOLD'
|
||||
ErrorMessage = 'Cassette is on HOLD and may not have the signature removed.'
|
||||
Case Otherwise$
|
||||
|
||||
End Case
|
||||
|
||||
If ErrorMessage EQ '' then
|
||||
//Check if any subsequent signature are set. If so RDS is not eligible.
|
||||
UnloadExtra1Sig = RDSRec<RDS_OP_OUT_EX1$>
|
||||
LoadExtra1Sig = RDSRec<RDS_OP_IN_EX2$>
|
||||
UnloadExtra2Sig = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Sig = RDSRec<RDS_OP_IN_EX3$>
|
||||
UnloadSig = RDSRec<RDS_OPERATOR_OUT$>Xlate('RDS', RDSNo, 'OPERATOR_OUT', 'X')
|
||||
CISigs = Xlate('RDS', RDSNo, 'LWI_CI_SIG', 'X')
|
||||
swap @VM with '' in CISigs
|
||||
ReactorType = XLATE('RDS', RDSNo, 'REACTOR_TYPE', 'X')
|
||||
If ReactorType NE 'EPP' Then
|
||||
FQASig = Xlate('RDS', RDSNo, 'SUP_VER_SIG', 'X')
|
||||
end else
|
||||
WMOutKey = Xlate('RDS', RDSNo, 'WM_OUT_KEY', 'X')
|
||||
FQASig = Xlate('WM_OUT', WMOutKey, 'SUP_VER_SIG', 'X')
|
||||
end
|
||||
|
||||
Begin Case
|
||||
Case FQASig NE ''
|
||||
ErrorMessage = 'FQA Signature is set.'
|
||||
Case CISigs NE ''
|
||||
ErrorMessage = 'Clean and Inspect Signatures are set.'
|
||||
Case UnloadSig NE ''
|
||||
ErrorMessage = 'Unload signature is set.'
|
||||
Case LoadExtra2Sig NE ''
|
||||
ErrorMessage = 'Load extra 2 signature is set.'
|
||||
Case UnloadExtra2Sig NE ''
|
||||
ErrorMessage = 'Unload extra 2 signature is set.'
|
||||
Case LoadExtra1Sig NE ''
|
||||
ErrorMessage = 'Load extra 1 signature is set.'
|
||||
Case UnloadExtra1Sig NE ''
|
||||
ErrorMessage = 'Unload extra 1 signature is set.'
|
||||
End Case
|
||||
|
||||
|
||||
end
|
||||
end else
|
||||
ErrorMessage = 'Unable to locate the WO_MAT record for this RDS in the WO_MAT table.'
|
||||
end
|
||||
end else
|
||||
ErrorMessage = 'Error reading RDS Record. ' : Error_Services('GetMessage')
|
||||
end
|
||||
|
||||
end else
|
||||
ErrorMessage = 'Unable to locate RDS in the RDS Table.'
|
||||
end
|
||||
|
||||
If ErrorMessage NE '' then
|
||||
UnsignEligible = False$
|
||||
ErrorMessage = 'Process Error: Unable to verify the load signature is Eligible to be unsigned: ' : ErrorMessage
|
||||
Error_Services('Add', ErrorMessage)
|
||||
end
|
||||
|
||||
Response = UnsignEligible
|
||||
|
||||
end service
|
||||
|
||||
|
||||
@ -2279,6 +2423,31 @@ Service LoadExtra1stReady(RDSNo)
|
||||
UnloadExtra2Signature = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Signature = RDSRec<RDS_OP_IN_EX3$>
|
||||
StandardUnloadSignature = RDSRec<RDS_OPERATOR_OUT$>
|
||||
Reactor = RDSRec<RDS_REACTOR$>
|
||||
|
||||
If Reactor NE '' then
|
||||
WONo = RDSRec<RDS_WO$>
|
||||
Query = 'SELECT REACT_STATE WITH SCHED_WO CONTAINING ':WONo
|
||||
ClearSelect
|
||||
Set_Status(0)
|
||||
RList(Query, TARGET_ACTIVELIST$, '', '' '')
|
||||
SchedReactors = ''
|
||||
EOF = False$
|
||||
Loop
|
||||
ReadNext SchedReactor else EOF = True$
|
||||
Until EOF
|
||||
SchedReactors<0, -1> = SchedReactor
|
||||
Repeat
|
||||
|
||||
Locate Reactor in SchedReactors using @VM setting vPos else
|
||||
Swap @VM with ',' in SchedReactors
|
||||
ErrorMessage = 'Assigned reactor, ':Reactor:', does not equal any scheduled reactor(s), ':SchedReactors:'.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature EQ '' And LoadExtra2Signature EQ ''AND UnloadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
|
||||
Response = True$
|
||||
end
|
||||
@ -2315,6 +2484,31 @@ Service LoadExtra2ndReady(RDSNo)
|
||||
UnloadExtra2Signature = RDSRec<RDS_OP_OUT_EX2$>
|
||||
LoadExtra2Signature = RDSRec<RDS_OP_IN_EX3$>
|
||||
StandardUnloadSignature = RDSRec<RDS_OPERATOR_OUT$>
|
||||
Reactor = RDSRec<RDS_REACTOR$>
|
||||
|
||||
If Reactor NE '' then
|
||||
WONo = RDSRec<RDS_WO$>
|
||||
Query = 'SELECT REACT_STATE WITH SCHED_WO CONTAINING ':WONo
|
||||
ClearSelect
|
||||
Set_Status(0)
|
||||
RList(Query, TARGET_ACTIVELIST$, '', '' '')
|
||||
SchedReactors = ''
|
||||
EOF = False$
|
||||
Loop
|
||||
ReadNext SchedReactor else EOF = True$
|
||||
Until EOF
|
||||
SchedReactors<0, -1> = SchedReactor
|
||||
Repeat
|
||||
|
||||
Locate Reactor in SchedReactors using @VM setting vPos else
|
||||
Swap @VM with ',' in SchedReactors
|
||||
ErrorMessage = 'Assigned reactor, ':Reactor:', does not equal any scheduled reactor(s), ':SchedReactors:'.'
|
||||
Error_Services('Set', ErrorMessage)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature NE '' AND UnloadExtra2Signature NE '' And LoadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
|
||||
Response = True$
|
||||
end
|
||||
@ -2400,62 +2594,6 @@ Service SignLoadStage(RDSNo, Username, WaferQty, LLSide, ScanEntry)
|
||||
Response = False$
|
||||
return
|
||||
end
|
||||
|
||||
IF ReactorType NE 'EPP' THEN
|
||||
|
||||
WOMatRec = XLATE('WO_MAT',WONo:'*':CassNo,'','X')
|
||||
WOMatSigProfile = WOMatRec<WO_MAT_SIG_PROFILE$>
|
||||
SigAction = WOStep:'LOAD'
|
||||
|
||||
LOCATE SigAction IN WOMatSigProfile USING @VM SETTING Pos THEN
|
||||
WOMatSig = WOMatRec<WO_MAT_SIGNATURE$,Pos>
|
||||
CurrDTM = OCONV(WOMatRec<WO_MAT_SIG_DTM$,Pos>,'DT/4^HS')
|
||||
END ELSE
|
||||
WOMatSig = ''
|
||||
END
|
||||
RDSSig = Xlate('RDS', RDSNo, 'OPERATOR_IN', 'X')
|
||||
|
||||
BEGIN CASE
|
||||
CASE WOMatSig = '' AND RDSSig NE ''
|
||||
|
||||
* Signature missing on WO_MAT
|
||||
SigDate = RDSRec<RDS_DATE_IN$>
|
||||
SigTime = RDSRec<RDS_TIME_IN$>
|
||||
owmParms = WONo:@RM:CassNo:@RM:WOStep:@RM:'LOAD':@RM:RDSSig:@RM:SigDate:' ':SigTime
|
||||
* Sets LOAD signature
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrorMsg = 'Process Error: Error calling obj_WO_Mat("SetSignature"). Error code: ':errCode
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
END else
|
||||
Response = True$
|
||||
end
|
||||
return
|
||||
|
||||
CASE RDSSig = '' AND WOMatSig NE ''
|
||||
|
||||
* Signature missing on RDS
|
||||
CurrDate = CurrDTM[1,' ']
|
||||
CurrTime = CurrDTM[COL2()+1,' ']
|
||||
RDSRec<RDS_OPERATOR_IN$> = WOMatSig
|
||||
RDSRec<RDS_DATE_IN$> = IConv(CurrDate, 'D')
|
||||
RDSRec<RDS_TIME_IN$> = IConv(CurrTime, 'MT')
|
||||
Database_Services('WriteDataRow', 'RDS', RDSNo, RDSRec, True$, False$, True$)
|
||||
Response = True$
|
||||
return
|
||||
|
||||
CASE RDSSig NE '' AND WOMatSig NE ''
|
||||
ErrorMsg = 'Process Error: Load stage has already been signed.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
RETURN
|
||||
|
||||
CASE Otherwise$
|
||||
Null
|
||||
// Continue
|
||||
END CASE
|
||||
|
||||
END
|
||||
|
||||
SigDt = OCONV( Date(), 'D2/' )
|
||||
SigTm = OCONV( Time(), 'MTS' )
|
||||
@ -3682,6 +3820,48 @@ Service SignFQAStage(RDSNo, Username)
|
||||
|
||||
end service
|
||||
|
||||
Service UnsignPreEpiReady(RDSNo)
|
||||
|
||||
ErrorMsg = ''
|
||||
UnsignPreEpiReady = False$
|
||||
|
||||
If RDSNo NE '' then
|
||||
If RowExists('RDS', RDSNo) then
|
||||
If Error_Services('NoError') then
|
||||
//Call on the same logic to determine if the unsign LOAD signature is ready
|
||||
UnsignLoadReady = QA_Services('UnsignLoadSignatureReady', RDSNo)
|
||||
if Error_Services('NoError') then
|
||||
If UnsignLoadReady then
|
||||
//Check if LOAD signature is present
|
||||
LoadSig = Database_Services('ReadDataColumn', 'RDS', RDSNo, RDS_OPERATOR_IN$, True$, 0, False$)
|
||||
If LoadSig EQ '' then
|
||||
UnsignPreEpiReady = True$
|
||||
end else
|
||||
ErrorMsg = 'Load signature is set.'
|
||||
end
|
||||
end else
|
||||
ErrorMsg = 'A signature beyond pre-epi exists. Please check later stages of this RDS.'
|
||||
end
|
||||
end else
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrorMsg = 'RDS ' : RDSNo : ' was not found in database.'
|
||||
end
|
||||
end else
|
||||
ErrorMsg = 'RDS No was null'
|
||||
end
|
||||
|
||||
If ErrorMsg NE '' then
|
||||
Error_Services('Add', ErrorMsg)
|
||||
end
|
||||
|
||||
Response = UnsignPreEpiReady
|
||||
|
||||
end service
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Internal GoSubs
|
||||
@ -3695,3 +3875,11 @@ ClearCursors:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user