First final commit
This commit is contained in:
committed by
Ouellette Jonathan (CSC FI SPS MESLEO)
parent
f143b3e60c
commit
e4cca79a08
@ -526,7 +526,7 @@ Service ProcessScanData(ScanID, ScanJSON)
|
||||
TWLotQuantity = Field(ScanData, '|', 3)
|
||||
ThisScanTWLots = ScansRow<SCANS.TW_LOT_ID$>
|
||||
Locate TWLot in ThisScanTWLots using @VM setting twPOS then
|
||||
ScansRow<SCANS.TW_LOT_QTY$> = TWLotQuantity
|
||||
ScansRow<SCANS.TW_LOT_QTY$, twPos> = TWLotQuantity
|
||||
end
|
||||
Case ScanData[1, 17] EQ 'TESTRUNTYPEUPDATE'
|
||||
TestRunTypeId = Field(ScanData, '|', 2)
|
||||
@ -618,9 +618,37 @@ Service ProcessScanData(ScanID, ScanJSON)
|
||||
// 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
|
||||
If (CassetteIDs NE '') then
|
||||
TestWaferLotData = ScansRow<SCANS.TW_LOT_ID$>
|
||||
Abort = False$
|
||||
If TestWaferLotData NE '' then
|
||||
ThisTestRunType = ScansRow<SCANS.TEST_RUN_TYPE_ID$>
|
||||
If ThisTestRunType NE '' then
|
||||
for each TWLot in TestWaferLotData using @VM setting twPOS
|
||||
If ScansRow<SCANS.TW_LOT_QTY$, twPOS> NE '' OR ScansRow<SCANS.TW_LOT_QTY$, twPOS> GT 0 then
|
||||
TWLotCurrOperation = Lot_Services('GetLotCurrOperationName', TWLot)
|
||||
If TWLotCurrOperation NE 'TW_CREATE' AND TWLotCurrOperation NE 'TW_CLOSE' then
|
||||
TWLotCurrOpen = Database_Services('ReadDataColumn', 'LOT', TWLot, LOT_OPEN$, True$, 0, False$)
|
||||
If Not(TWLotCurrOpen) then
|
||||
Abort = True$
|
||||
Scan_Services('AddNotAcceptableReason', 'Lot ':TWLot:' is closed and cannot be used at this time.')
|
||||
end
|
||||
end else
|
||||
Abort = True$
|
||||
Scan_Services('AddNotAcceptableReason', 'Lot ':TWLot:' is currently at ':TWLotCurrOperation:' and cannot be used at this time.')
|
||||
end
|
||||
end else
|
||||
Abort = True$
|
||||
Scan_Services('AddNotAcceptableReason', 'Lot ':TWLot:' must have a quantity associated with it.')
|
||||
end
|
||||
Until Abort
|
||||
Next TWLot
|
||||
end
|
||||
end else
|
||||
Scan_Services('AddNotAcceptableReason', 'A test run type is required to log test wafer usage.')
|
||||
end
|
||||
// Ensure only one cassette is scanned
|
||||
If (NumCass EQ 1) then
|
||||
If (NumCass EQ 1) AND Not(Abort) 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
|
||||
@ -1041,20 +1069,38 @@ Service ProcessScanData(ScanID, ScanJSON)
|
||||
end
|
||||
end else
|
||||
If ScansRow<SCANS.TW_LOT_ID$> NE '' then
|
||||
//Test Wafer Lot Loading
|
||||
TestWaferLotData = ScansRow<SCANS.TW_LOT_ID$>
|
||||
Abort = False$
|
||||
for each TWLot in TestWaferLotData using @VM setting twPOS
|
||||
If ScansRow<SCANS.TW_LOT_QTY$, twPOS> EQ '' OR ScansRow<SCANS.TW_LOT_QTY$, twPOS> LE 0 then
|
||||
Scan_Services('AddNotAcceptableReason', 'Each test wafer lot logged must have a quantity associated with it.')
|
||||
end else
|
||||
ThisUser = ScansRow<SCANS.EMPLOYEE_ID$>
|
||||
If Not(RowExists('LSL_USERS', ThisUser)) then
|
||||
Scan_Services('AddNotAcceptableReason', 'A User ID Scan is required to log test wafer usage.')
|
||||
end
|
||||
end
|
||||
Until False$
|
||||
Next TWLot
|
||||
ThisTestRunType = ScansRow<SCANS.TEST_RUN_TYPE_ID$>
|
||||
ThisUser = ScansRow<SCANS.EMPLOYEE_ID$>
|
||||
If ThisTestRunType NE '' then
|
||||
If RowExists('LSL_USERS', ThisUser) then
|
||||
TestWaferLotData = ScansRow<SCANS.TW_LOT_ID$>
|
||||
Abort = False$
|
||||
for each TWLot in TestWaferLotData using @VM setting twPOS
|
||||
If ScansRow<SCANS.TW_LOT_QTY$, twPOS> NE '' OR ScansRow<SCANS.TW_LOT_QTY$, twPOS> GT 0 then
|
||||
TWLotCurrOperation = Lot_Services('GetLotCurrOperationName', TWLot)
|
||||
If TWLotCurrOperation NE 'TW_CREATE' AND TWLotCurrOperation NE 'TW_CLOSE' then
|
||||
TWLotCurrOpen = Database_Services('ReadDataColumn', 'LOT', TWLot, LOT_OPEN$, True$, 0, False$)
|
||||
If Not(TWLotCurrOpen) then
|
||||
|
||||
Abort = True$
|
||||
Scan_Services('AddNotAcceptableReason', 'Lot ':TWLot:' is closed and cannot be used at this time.')
|
||||
end
|
||||
end else
|
||||
Abort = True$
|
||||
Scan_Services('AddNotAcceptableReason', 'Lot ':TWLot:' is currently at ':TWLotCurrOperation:' and cannot be used at this time.')
|
||||
end
|
||||
end else
|
||||
Abort = True$
|
||||
Scan_Services('AddNotAcceptableReason', 'Lot ':TWLot:' must have a quantity associated with it.')
|
||||
end
|
||||
Until Abort
|
||||
Next TWLot
|
||||
end else
|
||||
Scan_Services('AddNotAcceptableReason', 'A User ID Scan is required to log test wafer usage.')
|
||||
end
|
||||
end else
|
||||
Scan_Services('AddNotAcceptableReason', 'A test run type is required to log test wafer usage.')
|
||||
end
|
||||
end else
|
||||
Scan_Services('AddNotAcceptableReason', 'A cassette must be scanned in order to complete a tool scan.')
|
||||
end
|
||||
@ -1295,16 +1341,48 @@ Service AcceptScan(ScanID, ScanJSON)
|
||||
// Check if both the PRE and LOAD stages are ready to sign
|
||||
PreStageSigned = False$
|
||||
LoadStageSigned = False$
|
||||
PreStageSigned = QA_Services('SignPreEpiStage', RDSNo, Username, WaferQty, Reactor, 1)
|
||||
If PreStageSigned EQ True$ then
|
||||
LoadStageSigned = QA_Services('SignLoadStage', RDSNo, USername, WaferQty, LLSide, 1)
|
||||
//Log test wafer usage here
|
||||
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
|
||||
PreStageSigned = QA_Services('SignPreEpiStage', RDSNo, Username, WaferQty, Reactor, 1)
|
||||
If PreStageSigned EQ True$ then
|
||||
LoadStageSigned = QA_Services('SignLoadStage', RDSNo, USername, WaferQty, LLSide, 1)
|
||||
end
|
||||
If ( (PreStageSigned EQ True$) and (LoadStageSigned EQ True$) ) then
|
||||
Result = '(':CassetteID:') Load stage signed.'
|
||||
end
|
||||
LogData<6> = Action
|
||||
LogData<7> = Result
|
||||
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
||||
end
|
||||
|
||||
end else
|
||||
PreStageSigned = QA_Services('SignPreEpiStage', RDSNo, Username, WaferQty, Reactor, 1)
|
||||
If PreStageSigned EQ True$ then
|
||||
LoadStageSigned = QA_Services('SignLoadStage', RDSNo, USername, WaferQty, LLSide, 1)
|
||||
end
|
||||
If ( (PreStageSigned EQ True$) and (LoadStageSigned EQ True$) ) then
|
||||
Result = '(':CassetteID:') Load stage signed.'
|
||||
end
|
||||
LogData<6> = Action
|
||||
LogData<7> = Result
|
||||
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
||||
end
|
||||
If ( (PreStageSigned EQ True$) and (LoadStageSigned EQ True$) ) then
|
||||
Result = '(':CassetteID:') Load stage signed.'
|
||||
end
|
||||
LogData<6> = Action
|
||||
LogData<7> = Result
|
||||
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
||||
|
||||
Case CurrStage _EQC 'LOAD'
|
||||
Action = 'LOAD'
|
||||
// Check if LOAD stage is ready to sign
|
||||
@ -1333,13 +1411,12 @@ Service AcceptScan(ScanID, ScanJSON)
|
||||
Error_Services('Set', '(':CassetteID:') The ':CurrStage:' is not currently supported by the barcode application.')
|
||||
End Case
|
||||
Case CassetteID EQ '' AND TestWaferLots NE ''
|
||||
debug
|
||||
//Tool scan with ONLY test wafers being logged.
|
||||
ToolID = ScansRow<SCANS.TOOL_ID$>
|
||||
Reactor = ToolID[-1, 'BR']
|
||||
Username = ScansRow<SCANS.EMPLOYEE_ID$>
|
||||
TestWaferLotQtys = ScansRow<SCANS.TW_LOT_QTY$>
|
||||
NewTestRunId = Test_Run_Services('CreateTestRunRecord', 3, 'REACTOR', Reactor, '', '',Username , TestWaferLots, TestWaferLotQtys)
|
||||
NewTestRunId = Test_Run_Services('CreateTestRunRecord', 3, 'R', Reactor, '', '',Username , TestWaferLots, TestWaferLotQtys)
|
||||
If Error_Services('HasError') then
|
||||
ErrorMessage = Error_Services('GetMessage')
|
||||
Error_Services('Set', ErrorMessage)
|
||||
|
Reference in New Issue
Block a user