fixed bugs related to scan app usage

This commit is contained in:
Infineon\Ouellette 2024-11-25 10:41:59 -07:00 committed by Ouellette Jonathan (CSC FI SPS MESLEO)
parent a8a88f83cc
commit 33ef776fdf

View File

@ -279,6 +279,9 @@ Service ProcessScanData(ScanID, ScanJSON)
Case ScanData[1, 4] EQ '1TTW'
ValidTWLot = False$
If RowExists('LOT', LotId) then
Locate LotId in ScansRow<SCANS.TW_LOT_ID$> using @VM setting twPos then
Error_Services('Add', LotID : ' has already been added as a test wafer lot being used.')
end else
LotCurrentOperation = Lot_Services('GetLotCurrOperationName', LotId)
If LotCurrentOperation NE 'TW_CREATE' AND LotCurrentOperation NE 'TW_CLOSE' then
LotCurrWfrQty = Database_Services('ReadDataColumn', 'LOT', LotId, LOT_WAFER_QTY$, True$, 0, False$)
@ -290,7 +293,7 @@ Service ProcessScanData(ScanID, ScanJSON)
end else
Error_Services('Add', LotID : ' is not at a valid operation for use.')
end
end
end else
Error_Services('Add', LotID : ' is not a valid test wafer lot ID.')
end
@ -617,7 +620,6 @@ Service ProcessScanData(ScanID, ScanJSON)
// determine what the next action will be (i.e. Pre-Epi+Load, Unload, etc.). Ensure we are
// working with an RDS and not a WM_IN or WM_OUT cassette ID. They are not used during the
// "RDS" process.
If (CassetteIDs NE '') then
TestWaferLotData = ScansRow<SCANS.TW_LOT_ID$>
Abort = False$
@ -643,12 +645,13 @@ Service ProcessScanData(ScanID, ScanJSON)
end
Until Abort
Next TWLot
end
end else
Scan_Services('AddNotAcceptableReason', 'A test run type is required to log test wafer usage.')
end
end
// Ensure only one cassette is scanned
If (NumCass EQ 1) AND Not(Abort) then
If Not(Abort) then
If (NumCass EQ 1) then
CassetteID = CassetteIDs<0, NumCass>
// Ensure we are working with an RDS and not a WM_OUT/WM_IN cassette
If (Count(CassetteID, '.') EQ 0) then
@ -1067,6 +1070,8 @@ Service ProcessScanData(ScanID, ScanJSON)
// Currently we are only supporting loading one cassette onto a tool at a time.
Error_Services('Add', '(':CassetteID:') Only one cassette can be loaded onto a tool at a time.')
end
end
end else
If ScansRow<SCANS.TW_LOT_ID$> NE '' then
ThisTestRunType = ScansRow<SCANS.TEST_RUN_TYPE_ID$>
@ -1154,7 +1159,6 @@ end service
//
//----------------------------------------------------------------------------------------------------------------------
Service AcceptScan(ScanID, ScanJSON)
If ( (ScanID NE '') and (ScanJSON NE '') ) then
hBody = ''
ParseResponse = SRP_JSON(hBody, 'PARSE', ScanJSON)
@ -1385,7 +1389,22 @@ Service AcceptScan(ScanID, ScanJSON)
Case CurrStage _EQC 'LOAD'
Action = 'LOAD'
// Check if LOAD stage is ready to sign
If TestWaferLots NE '' then
Continue = False$
ToolID = ScansRow<SCANS.TOOL_ID$>
Reactor = ToolID[-1, 'BR']
Username = ScansRow<SCANS.EMPLOYEE_ID$>
TestWaferLotQtys = ScansRow<SCANS.TW_LOT_QTY$>
PSNo = Database_Services('ReadDataColumn', 'RDS', RDSNo, RDS_PROD_SPEC_ID$, True$, 0, False$)
NewTestRunId = Test_Run_Services('CreateTestRunRecord', 3, 'R', Reactor, PSNo, RDSNo,Username , TestWaferLots, TestWaferLotQtys)
If Error_Services('NoError') then
Continue = True$
end else
ErrorMessage = Error_Services('GetMessage')
Error_Services('Set', ErrorMessage)
Continue = False$
end
If Continue then
LoadStageSigned = QA_Services('SignLoadStage', RDSNo, Username, WaferQty, LLSide, 1)
If LoadStageSigned EQ True$ then
Result = '(':CassetteID:') Load stage signed.'
@ -1393,6 +1412,19 @@ Service AcceptScan(ScanID, ScanJSON)
LogData<6> = Action
LogData<7> = Result
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
end
end else
LoadStageSigned = QA_Services('SignLoadStage', RDSNo, Username, WaferQty, LLSide, 1)
If LoadStageSigned EQ True$ then
Result = '(':CassetteID:') Load stage signed.'
end
LogData<6> = Action
LogData<7> = Result
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
end
// Check if LOAD stage is ready to sign
Case CurrStage _EQC 'UNLOAD'
Action = 'UNLOAD'
// Check if UNLOAD stage is ready to sign
@ -1417,7 +1449,14 @@ Service AcceptScan(ScanID, ScanJSON)
Username = ScansRow<SCANS.EMPLOYEE_ID$>
TestWaferLotQtys = ScansRow<SCANS.TW_LOT_QTY$>
NewTestRunId = Test_Run_Services('CreateTestRunRecord', 3, 'R', Reactor, '', '',Username , TestWaferLots, TestWaferLotQtys)
If Error_Services('HasError') then
If Error_Services('NoError') then
If NewTestRunId NE '' then
Result = 'Test run logged successfully'
end else
ErrorMessage = 'Error while logging creating test run.'
Error_Services('Set', ErrorMessage)
end
end else
ErrorMessage = Error_Services('GetMessage')
Error_Services('Set', ErrorMessage)
end
@ -2194,3 +2233,4 @@ ClearCursors:
Next counter
return