fixed bugs related to scan app usage
This commit is contained in:
parent
a8a88f83cc
commit
33ef776fdf
@ -279,6 +279,9 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
Case ScanData[1, 4] EQ '1TTW'
|
Case ScanData[1, 4] EQ '1TTW'
|
||||||
ValidTWLot = False$
|
ValidTWLot = False$
|
||||||
If RowExists('LOT', LotId) then
|
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)
|
LotCurrentOperation = Lot_Services('GetLotCurrOperationName', LotId)
|
||||||
If LotCurrentOperation NE 'TW_CREATE' AND LotCurrentOperation NE 'TW_CLOSE' then
|
If LotCurrentOperation NE 'TW_CREATE' AND LotCurrentOperation NE 'TW_CLOSE' then
|
||||||
LotCurrWfrQty = Database_Services('ReadDataColumn', 'LOT', LotId, LOT_WAFER_QTY$, True$, 0, False$)
|
LotCurrWfrQty = Database_Services('ReadDataColumn', 'LOT', LotId, LOT_WAFER_QTY$, True$, 0, False$)
|
||||||
@ -290,7 +293,7 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
end else
|
end else
|
||||||
Error_Services('Add', LotID : ' is not at a valid operation for use.')
|
Error_Services('Add', LotID : ' is not at a valid operation for use.')
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end else
|
end else
|
||||||
Error_Services('Add', LotID : ' is not a valid test wafer lot ID.')
|
Error_Services('Add', LotID : ' is not a valid test wafer lot ID.')
|
||||||
end
|
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
|
// 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
|
// working with an RDS and not a WM_IN or WM_OUT cassette ID. They are not used during the
|
||||||
// "RDS" process.
|
// "RDS" process.
|
||||||
|
|
||||||
If (CassetteIDs NE '') then
|
If (CassetteIDs NE '') then
|
||||||
TestWaferLotData = ScansRow<SCANS.TW_LOT_ID$>
|
TestWaferLotData = ScansRow<SCANS.TW_LOT_ID$>
|
||||||
Abort = False$
|
Abort = False$
|
||||||
@ -643,12 +645,13 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
end
|
end
|
||||||
Until Abort
|
Until Abort
|
||||||
Next TWLot
|
Next TWLot
|
||||||
end
|
|
||||||
end else
|
end else
|
||||||
Scan_Services('AddNotAcceptableReason', 'A test run type is required to log test wafer usage.')
|
Scan_Services('AddNotAcceptableReason', 'A test run type is required to log test wafer usage.')
|
||||||
end
|
end
|
||||||
|
end
|
||||||
// Ensure only one cassette is scanned
|
// 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>
|
CassetteID = CassetteIDs<0, NumCass>
|
||||||
// Ensure we are working with an RDS and not a WM_OUT/WM_IN cassette
|
// Ensure we are working with an RDS and not a WM_OUT/WM_IN cassette
|
||||||
If (Count(CassetteID, '.') EQ 0) then
|
If (Count(CassetteID, '.') EQ 0) then
|
||||||
@ -685,7 +688,7 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
If CurrStatus NE 'HOLD' then
|
If CurrStatus NE 'HOLD' then
|
||||||
If (EmployeeID NE '') then
|
If (EmployeeID NE '') then
|
||||||
* SupplInstAckReq = Xlate('RDS', RDSNo, 'SUPPL_ACK_REQ' , 'X')
|
* SupplInstAckReq = Xlate('RDS', RDSNo, 'SUPPL_ACK_REQ' , 'X')
|
||||||
CurrStage = Xlate('RDS', RDSNo, 'CURR_STAGE', 'X')
|
CurrStage = Xlate('RDS', RDSNo, 'CURR_STAGE', 'X')
|
||||||
If CurrStage EQ 'VER' then
|
If CurrStage EQ 'VER' then
|
||||||
VerSupplID = Supplement_Services('UnacknowledgedSupplementCheck', 'RDS', RDSNo, 'VER')
|
VerSupplID = Supplement_Services('UnacknowledgedSupplementCheck', 'RDS', RDSNo, 'VER')
|
||||||
@ -1067,6 +1070,8 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
// Currently we are only supporting loading one cassette onto a tool at a time.
|
// 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.')
|
Error_Services('Add', '(':CassetteID:') Only one cassette can be loaded onto a tool at a time.')
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end else
|
end else
|
||||||
If ScansRow<SCANS.TW_LOT_ID$> NE '' then
|
If ScansRow<SCANS.TW_LOT_ID$> NE '' then
|
||||||
ThisTestRunType = ScansRow<SCANS.TEST_RUN_TYPE_ID$>
|
ThisTestRunType = ScansRow<SCANS.TEST_RUN_TYPE_ID$>
|
||||||
@ -1154,7 +1159,6 @@ end service
|
|||||||
//
|
//
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
Service AcceptScan(ScanID, ScanJSON)
|
Service AcceptScan(ScanID, ScanJSON)
|
||||||
|
|
||||||
If ( (ScanID NE '') and (ScanJSON NE '') ) then
|
If ( (ScanID NE '') and (ScanJSON NE '') ) then
|
||||||
hBody = ''
|
hBody = ''
|
||||||
ParseResponse = SRP_JSON(hBody, 'PARSE', ScanJSON)
|
ParseResponse = SRP_JSON(hBody, 'PARSE', ScanJSON)
|
||||||
@ -1385,7 +1389,22 @@ Service AcceptScan(ScanID, ScanJSON)
|
|||||||
|
|
||||||
Case CurrStage _EQC 'LOAD'
|
Case CurrStage _EQC 'LOAD'
|
||||||
Action = '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)
|
LoadStageSigned = QA_Services('SignLoadStage', RDSNo, Username, WaferQty, LLSide, 1)
|
||||||
If LoadStageSigned EQ True$ then
|
If LoadStageSigned EQ True$ then
|
||||||
Result = '(':CassetteID:') Load stage signed.'
|
Result = '(':CassetteID:') Load stage signed.'
|
||||||
@ -1393,6 +1412,19 @@ Service AcceptScan(ScanID, ScanJSON)
|
|||||||
LogData<6> = Action
|
LogData<6> = Action
|
||||||
LogData<7> = Result
|
LogData<7> = Result
|
||||||
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
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'
|
Case CurrStage _EQC 'UNLOAD'
|
||||||
Action = 'UNLOAD'
|
Action = 'UNLOAD'
|
||||||
// Check if UNLOAD stage is ready to sign
|
// Check if UNLOAD stage is ready to sign
|
||||||
@ -1417,7 +1449,14 @@ Service AcceptScan(ScanID, ScanJSON)
|
|||||||
Username = ScansRow<SCANS.EMPLOYEE_ID$>
|
Username = ScansRow<SCANS.EMPLOYEE_ID$>
|
||||||
TestWaferLotQtys = ScansRow<SCANS.TW_LOT_QTY$>
|
TestWaferLotQtys = ScansRow<SCANS.TW_LOT_QTY$>
|
||||||
NewTestRunId = Test_Run_Services('CreateTestRunRecord', 3, 'R', Reactor, '', '',Username , TestWaferLots, TestWaferLotQtys)
|
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')
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
Error_Services('Set', ErrorMessage)
|
Error_Services('Set', ErrorMessage)
|
||||||
end
|
end
|
||||||
@ -1717,13 +1756,13 @@ Service ConvertMVScanToJSON(ScanID, mvScan, itemURL)
|
|||||||
PostInst = Xlate('RDS', RDSNo, 'POST_INST' , 'X')
|
PostInst = Xlate('RDS', RDSNo, 'POST_INST' , 'X')
|
||||||
WaferCountInstAckReq = Xlate('RDS', RDSNo, 'WAFER_COUNT_ACK_REQ' , 'X')
|
WaferCountInstAckReq = Xlate('RDS', RDSNo, 'WAFER_COUNT_ACK_REQ' , 'X')
|
||||||
|
|
||||||
* SchedWfrCnt = Xlate('SCANS', ScanID, 'SCHEDULER_WAFER_COUNT', 'X')
|
* SchedWfrCnt = Xlate('SCANS', ScanID, 'SCHEDULER_WAFER_COUNT', 'X')
|
||||||
WaferCountInst = 'Please verify the wafer quantity in the cassette matches the ' |
|
WaferCountInst = 'Please verify the wafer quantity in the cassette matches the ' |
|
||||||
: 'scheduled wafer quantity, ':{SCHEDULER_WAFER_COUNT}:'.'
|
: 'scheduled wafer quantity, ':{SCHEDULER_WAFER_COUNT}:'.'
|
||||||
|
|
||||||
* SRP_JSON(objRDS, 'SetValue', 'supplInstAckReq' , SupplInstAckReq , 'Boolean')
|
* SRP_JSON(objRDS, 'SetValue', 'supplInstAckReq' , SupplInstAckReq , 'Boolean')
|
||||||
* SRP_JSON(objRDS, 'SetValue', 'supplInstAck' , RDSRec<RDS_SUPPL_ACK$> , 'Boolean')
|
* SRP_JSON(objRDS, 'SetValue', 'supplInstAck' , RDSRec<RDS_SUPPL_ACK$> , 'Boolean')
|
||||||
* SRP_JSON(objRDS, 'SetValue', 'supplInst' , RDSRec<RDS_SUPPL_INST$> , 'String')
|
* SRP_JSON(objRDS, 'SetValue', 'supplInst' , RDSRec<RDS_SUPPL_INST$> , 'String')
|
||||||
|
|
||||||
|
|
||||||
If supplLoadInstAckReq EQ TRUE$ then
|
If supplLoadInstAckReq EQ TRUE$ then
|
||||||
@ -2194,3 +2233,4 @@ ClearCursors:
|
|||||||
Next counter
|
Next counter
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user