Merged PR 12618: Moved TW Reqd check after check for RDS supplier lot no

Moved TW Reqd check after check for RDS supplier lot no
This commit is contained in:
Ouellette Jonathan (CSC FI SPS MESLEO) 2025-03-11 18:55:44 +01:00
parent 1996ea1919
commit 86595476d5

View File

@ -287,7 +287,14 @@ Service ProcessScanData(ScanID, ScanJSON)
If LotCurrentOperation NE 'TW_CREATE' AND LotCurrentOperation NE 'TW_CLOSE' then
LotCurrWfrQty = Database_Services('ReadDataColumn', 'LOT', LotId, LOT_WAFER_QTY$, True$, 0, False$)
If LotCurrWfrQty GT 0 then
If ScansRow<SCANS.TW_LOT_ID$> EQ '' AND ScansRow<SCANS.CASSETTE_IDS$> NE '' then
ScansRow<SCANS.TEST_RUN_TYPE_ID$> = 4;//Standard Sampling
end
ScansRow<SCANS.TW_LOT_ID$, -1> = LotID
ThisScanTWLots = ScansRow<SCANS.TW_LOT_ID$>
Locate LotID in ThisScanTWLots using @VM setting twPOS then
ScansRow<SCANS.TW_LOT_QTY$, twPos> = 1
end
end else
Error_Services('Add', LotID : ' does not have enough wafers to be used.')
end
@ -538,7 +545,6 @@ Service ProcessScanData(ScanID, ScanJSON)
Case ScanData[1, 17] EQ 'TESTRUNTYPEUPDATE'
TestRunTypeId = Field(ScanData, '|', 2)
ScansRow<SCANS.TEST_RUN_TYPE_ID$> = TestRunTypeId
//ScansRow<SCANS.TEST_RUN_TYPE_NAME$> = TestRunTypeName
Case Len(ScanData) GE 22 and ScanData[1, 22] EQ 'LAST_CASSETTE_TEST_ACK'
RDSNo = {CASSETTE_IDS}
@ -674,7 +680,7 @@ Service ProcessScanData(ScanID, ScanJSON)
end
end else
Abort = True$
Scan_Services('AddNotAcceptableReason', 'Lot ':TWLot:' must have a quantity associated with it.')
Scan_Services('AddNotAcceptableReason', 'Test Wafer Lot ':TWLot:' must have a quantity associated with it.')
end
Until Abort
Next TWLot
@ -923,14 +929,15 @@ Service ProcessScanData(ScanID, ScanJSON)
FirstParmsComp = LSParmsComp<1,1>
If (FirstParmsComp EQ False$) then RDS_Services('CopyRDSLayerParameters', RDSNo)
//Test Wafer logging verification
IsTWLoggingReqd = RDS_Services('IsTWLoggingReqd', RDSNo)
If IsTWLoggingReqd NE True$ OR TestWaferLotData NE '' then
// Supplier lot verification
ScannedSuppLot = ScansRow<SCANS.SUPPLIER_LOT$>
RDSSuppLot = RDSRec<RDS_LOT_NUM$>
If (ScannedSuppLot NE '') then
If (ScannedSuppLot _EQC RDSSuppLot) then
IsTWLoggingReqd = RDS_Services('IsTWLoggingReqd', RDSNo)
If IsTWLoggingReqd NE True$ OR TestWaferLotData NE '' then
WaferCountAckReq = Xlate('RDS', RDSNo, 'WAFER_COUNT_ACK_REQ', 'X')
If WaferCountAckReq EQ False$ then
PreStageReady = ''
@ -976,6 +983,9 @@ Service ProcessScanData(ScanID, ScanJSON)
end else
Scan_Services('AddNotAcceptableReason', 'The cassette wafer count must be verified against the scheduled wafer count to proceed.')
end
end else
Scan_Services('AddNotAcceptableReason', 'Test wafers are required to be logged with this run.')
end
end else
ScansRow<SCANS.SUPPLIER_LOT$> = ''
Error_Services('Add', '(':CassetteID:') Supplier lot mismatch.')
@ -983,9 +993,7 @@ Service ProcessScanData(ScanID, ScanJSON)
end else
Scan_Services('AddNotAcceptableReason', 'Supplier lot scan required in order to complete a tool scan.')
end
end else
Scan_Services('AddNotAcceptableReason', 'Test wafers are required to be logged with this run.')
end
end else
Error_Services('Add', '(':CassetteID:') The first run must be completed using the OpenInsight user interface.')
end
@ -994,12 +1002,12 @@ Service ProcessScanData(ScanID, ScanJSON)
end
Case CurrStage _EQC 'LOAD'
Action = 'LOAD'
IsTWLoggingReqd = RDS_Services('IsTWLoggingReqd', RDSNo)
If IsTWLoggingReqd NE True$ OR TestWaferLotData NE '' then
ScannedSuppLot = ScansRow<SCANS.SUPPLIER_LOT$>
RDSSuppLot = RDSRec<RDS_LOT_NUM$>
If (ScannedSuppLot NE '') then
If (ScannedSuppLot _EQC RDSSuppLot) then
IsTWLoggingReqd = RDS_Services('IsTWLoggingReqd', RDSNo)
If IsTWLoggingReqd NE True$ OR TestWaferLotData NE '' then
// Scheduled tool verification (only supports reactors at the moment)
ClearSelect
SchedTool = Xlate('RDS', RDSNo, 'SCHED_REACTOR', 'X')
@ -1053,15 +1061,16 @@ Service ProcessScanData(ScanID, ScanJSON)
Error_Services('Add', 'Scanned tool ':ScanTool:' does not match the scheduled tool ':SchedTool:'. (':RDSNo:')')
end
end else
Scan_Services('AddNotAcceptableReason', 'Test wafers are required to be logged with this run.')
end
end else
ScansRow<SCANS.SUPPLIER_LOT$> = ''
Error_Services('Add', '(':CassetteID:') Supplier lot mismatch.')
end
end else
Scan_Services('AddNotAcceptableReason', 'Supplier lot scan required in order to complete a tool scan.')
end
end else
Scan_Services('AddNotAcceptableReason', 'Test wafers are required to be logged with this run.')
end
Case CurrStage _EQC 'UNLOAD'
Action = 'UNLOAD'
@ -2342,3 +2351,4 @@ return