First final commit
This commit is contained in:
parent
f143b3e60c
commit
e4cca79a08
@ -145,3 +145,4 @@ CreateHALItem:
|
|||||||
end
|
end
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -29,7 +29,6 @@ Return Response or ""
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
Service PrintLabel(ZPLString, PrinterId)
|
Service PrintLabel(ZPLString, PrinterId)
|
||||||
debug
|
|
||||||
SuccessfulPrint = False$
|
SuccessfulPrint = False$
|
||||||
ErrorMessage = ''
|
ErrorMessage = ''
|
||||||
If PrinterId EQ '' then
|
If PrinterId EQ '' then
|
||||||
@ -174,3 +173,4 @@ end service
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' L
|
|||||||
Headers = 'Logging DTM' : @FM : 'Lot Id' : @FM : 'Event Type' : @FM : 'Operator' : @FM : 'Begin Wafer Qty' : @FM : 'End Wafer Qty' : @FM : 'Bonus Wafer Qty' : @FM : 'Reduce Wafer Qty' : @FM : 'Message'
|
Headers = 'Logging DTM' : @FM : 'Lot Id' : @FM : 'Event Type' : @FM : 'Operator' : @FM : 'Begin Wafer Qty' : @FM : 'End Wafer Qty' : @FM : 'Bonus Wafer Qty' : @FM : 'Reduce Wafer Qty' : @FM : 'Message'
|
||||||
objLotEventLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', Headers, '', False$, False$)
|
objLotEventLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', Headers, '', False$, False$)
|
||||||
|
|
||||||
Options EVENT_TYPES = 'MOVE_IN', 'MOVE_OUT', 'HOLD_ON', 'HOLD_OFF', 'REDUCE_WAFER_QTY', 'BONUS_WAFER_QTY', 'COMMENT', 'LOCATION', 'LOAD', 'UNSIGN_LOAD', 'TW_USE'
|
Options EVENT_TYPES = 'MOVE_IN', 'MOVE_OUT', 'HOLD_ON', 'HOLD_OFF', 'REDUCE_WAFER_QTY', 'BONUS_WAFER_QTY', 'COMMENT', 'LOCATION', 'LOAD', 'UNSIGN_LOAD', 'TW_USE', 'CLOSE'
|
||||||
Options LOT_TYPES = 'TW', 'RDS', 'WM_OUT', 'WM_IN'
|
Options LOT_TYPES = 'TW', 'RDS', 'WM_OUT', 'WM_IN'
|
||||||
|
|
||||||
GoToService
|
GoToService
|
||||||
@ -47,7 +47,6 @@ Service GenerateNewLotId(LotType)
|
|||||||
GeneratedLotID = ''
|
GeneratedLotID = ''
|
||||||
Begin Case
|
Begin Case
|
||||||
Case LotType EQ 'TW'
|
Case LotType EQ 'TW'
|
||||||
|
|
||||||
Loop
|
Loop
|
||||||
Until ValidLotNum EQ True$
|
Until ValidLotNum EQ True$
|
||||||
LotPrefix = 'TW'
|
LotPrefix = 'TW'
|
||||||
@ -80,8 +79,6 @@ end service
|
|||||||
|
|
||||||
|
|
||||||
Service CreateNewLot(LotType, ProdName, LotQty, VendorPartNo, VendorLotNo, VendorCode, Username, PrinterID, LotId)
|
Service CreateNewLot(LotType, ProdName, LotQty, VendorPartNo, VendorLotNo, VendorCode, Username, PrinterID, LotId)
|
||||||
; //649491 , 03M6241, 814474, SP
|
|
||||||
debug
|
|
||||||
CreatedLotNumber = ''
|
CreatedLotNumber = ''
|
||||||
ErrorMessage = ''
|
ErrorMessage = ''
|
||||||
Begin Case
|
Begin Case
|
||||||
@ -139,10 +136,9 @@ Service CreateNewLot(LotType, ProdName, LotQty, VendorPartNo, VendorLotNo, Vendo
|
|||||||
ThisLotCurrOpId = Lot_Services('GetLotCurrOperationId', CreatedLotNumber)
|
ThisLotCurrOpId = Lot_Services('GetLotCurrOperationId', CreatedLotNumber)
|
||||||
If ThisLotCurrOpId NE '' then
|
If ThisLotCurrOpId NE '' then
|
||||||
Lot_Services('CreateLotEvent', CreatedLotNumber, 'TW', Datetime(), 'MOVE_IN', 'Move Lot in.', '', 0, 0, ThisLotCurrOpId, Username)
|
Lot_Services('CreateLotEvent', CreatedLotNumber, 'TW', Datetime(), 'MOVE_IN', 'Move Lot in.', '', 0, 0, ThisLotCurrOpId, Username)
|
||||||
//Lot_Services('MoveInLot', NewLotId, Username)
|
|
||||||
if Error_Services('NoError') then
|
if Error_Services('NoError') then
|
||||||
//Set lot to open
|
//Set lot to open
|
||||||
Lot_Services('OpenLot', CreatedLotNumber)
|
Lot_Services('CreateLotEvent', CreatedLotNumber, 'TW', Datetime(), 'OPEN', 'Setting lot to open.', '', 0, 0, '', Username)
|
||||||
if Error_Services('NoError') then
|
if Error_Services('NoError') then
|
||||||
If PrinterID NE 'WEB' then
|
If PrinterID NE 'WEB' then
|
||||||
//If PrinterID is set to WEB this means the request comes from OI_Wizard and the client is going to handle printing.
|
//If PrinterID is set to WEB this means the request comes from OI_Wizard and the client is going to handle printing.
|
||||||
@ -166,12 +162,19 @@ Service CreateNewLot(LotType, ProdName, LotQty, VendorPartNo, VendorLotNo, Vendo
|
|||||||
ErrorMessage = 'Error in Create New Test Wafer Lot Process, lot id: ' : NewLotId : ' , ' : Error_Services('GetMessage')
|
ErrorMessage = 'Error in Create New Test Wafer Lot Process, lot id: ' : NewLotId : ' , ' : Error_Services('GetMessage')
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
|
//Close LOT record as there was an error
|
||||||
|
Lot_Services('CreateLotEvent', NewLotId, 'TW', Datetime(), 'CLOSE', 'Error occured while created lot. Automatically setting to close', '', 0, 0, '', 'SYSTEM')
|
||||||
ErrorMessage = 'Error in Create New Test Wafer Lot Process, lot id: ' : NewLotId : ' , ' : Error_Services('GetMessage')
|
ErrorMessage = 'Error in Create New Test Wafer Lot Process, lot id: ' : NewLotId : ' , ' : Error_Services('GetMessage')
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
|
//Close LOT record as there was an error
|
||||||
|
Lot_Services('CreateLotEvent', NewLotId, 'TW', Datetime(), 'CLOSE', 'Error occured while created lot. Automatically setting to close', '', 0, 0, '', 'SYSTEM')
|
||||||
ErrorMessage = 'Error in Create New Test Wafer Lot Process, error getting current operation for lot: ' : NewLotId
|
ErrorMessage = 'Error in Create New Test Wafer Lot Process, error getting current operation for lot: ' : NewLotId
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
|
//Close LOT record as there was an error
|
||||||
|
//Database_Services('DeleteDataRow', 'LOT', NewLotId, True$, False$)
|
||||||
|
Lot_Services('CreateLotEvent', NewLotId, 'TW', Datetime(), 'CLOSE', 'Error occured while created lot. Automatically setting to close', '', 0, 0, '', 'SYSTEM')
|
||||||
ErrorMessage = 'Error in Create New Test Wafer Lot Process, lot id: ' : NewLotId : ' , ' : Error_Services('GetMessage')
|
ErrorMessage = 'Error in Create New Test Wafer Lot Process, lot id: ' : NewLotId : ' , ' : Error_Services('GetMessage')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -208,13 +211,13 @@ Service CreateNewLot(LotType, ProdName, LotQty, VendorPartNo, VendorLotNo, Vendo
|
|||||||
LogData<4> = 'Successfully created lot id ' : CreatedLotNumber : ' of product type ' : ProdName '.'
|
LogData<4> = 'Successfully created lot id ' : CreatedLotNumber : ' of product type ' : ProdName '.'
|
||||||
Logging_Services('AppendLog', objTWCreationLog, LogData, @RM, @FM, False$)
|
Logging_Services('AppendLog', objTWCreationLog, LogData, @RM, @FM, False$)
|
||||||
end else
|
end else
|
||||||
Error_Services('Add', ErrorMessage)
|
|
||||||
LogData = ''
|
LogData = ''
|
||||||
LogData<1> = LoggingDTM
|
LogData<1> = LoggingDTM
|
||||||
LogData<2> = ProdName
|
LogData<2> = ProdName
|
||||||
LogData<3> = Username
|
LogData<3> = Username
|
||||||
LogData<4> = ErrorMessage
|
LogData<4> = ErrorMessage
|
||||||
Logging_Services('AppendLog', objTWCreationLog, LogData, @RM, @FM, False$)
|
Logging_Services('AppendLog', objTWCreationLog, LogData, @RM, @FM, False$)
|
||||||
|
Error_Services('Add', ErrorMessage)
|
||||||
end
|
end
|
||||||
Response = CreatedLotNumber
|
Response = CreatedLotNumber
|
||||||
|
|
||||||
@ -565,7 +568,6 @@ Service IsLotMovedIn(LotId)
|
|||||||
end service
|
end service
|
||||||
|
|
||||||
Service MoveInLot(LotID, Operator)
|
Service MoveInLot(LotID, Operator)
|
||||||
debug
|
|
||||||
ErrorMessage = ''
|
ErrorMessage = ''
|
||||||
ThisLotCurrOperationID = ''
|
ThisLotCurrOperationID = ''
|
||||||
If LotId NE '' then
|
If LotId NE '' then
|
||||||
@ -584,7 +586,6 @@ Service MoveInLot(LotID, Operator)
|
|||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
LotType = XLATE('LOT', LotId, LOT_TYPE$, 'X')
|
LotType = XLATE('LOT', LotId, LOT_TYPE$, 'X')
|
||||||
CurrOperation = XLATE('LOT_OPERATION', ThisLotCurrOperationID, LOT_OPERATION_OPERATION_ID$, 'X')
|
CurrOperation = XLATE('LOT_OPERATION', ThisLotCurrOperationID, LOT_OPERATION_OPERATION_ID$, 'X')
|
||||||
//Lot_Services('CreateLotEvent', LotId, LotType, Datetime(), 'MOVE_IN', '', '', 0, 0, CurrOperation, Operator)
|
|
||||||
If Error_Services('HasError') then
|
If Error_Services('HasError') then
|
||||||
ErrorMessage = 'Error in Move In process for Lot id ' : LotId : '. ' : Error_Services('GetMessage')
|
ErrorMessage = 'Error in Move In process for Lot id ' : LotId : '. ' : Error_Services('GetMessage')
|
||||||
end
|
end
|
||||||
@ -632,7 +633,6 @@ Service MoveOutLot(LotID, Operator)
|
|||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
LotType = XLATE('LOT', LotId, LOT_TYPE$, 'X')
|
LotType = XLATE('LOT', LotId, LOT_TYPE$, 'X')
|
||||||
CurrOperation = XLATE('LOT_OPERATION', ThisLotCurrOperationID, LOT_OPERATION_OPERATION_ID$, 'X')
|
CurrOperation = XLATE('LOT_OPERATION', ThisLotCurrOperationID, LOT_OPERATION_OPERATION_ID$, 'X')
|
||||||
//Lot_Services('CreateLotEvent', LotId, LotType, Datetime(), 'MOVE_OUT', '', '', ReduceQty, BonusQty, CurrOperation, Operator)
|
|
||||||
If Error_Services('HasError') then
|
If Error_Services('HasError') then
|
||||||
ErrorMessage = 'Error in Move In process for Lot id ' : LotId : '. ' : Error_Services('GetMessage')
|
ErrorMessage = 'Error in Move In process for Lot id ' : LotId : '. ' : Error_Services('GetMessage')
|
||||||
end
|
end
|
||||||
@ -745,7 +745,15 @@ Service CreateLotEvent(LotId, LotType=LOT_TYPES, EventDatetime, EventType=EVENT_
|
|||||||
Case EventType EQ 'LOCATION'
|
Case EventType EQ 'LOCATION'
|
||||||
//Do nothing for now.
|
//Do nothing for now.
|
||||||
Case EventType EQ 'CLOSE'
|
Case EventType EQ 'CLOSE'
|
||||||
//Do nothing for now.
|
Lot_Services('CloseLot', LotId)
|
||||||
|
If Error_Services('HasError') then
|
||||||
|
ErrorMessage = 'Error in Create Lot Event routine, ' : Error_Services('GetMessage')
|
||||||
|
end
|
||||||
|
Case EventType EQ 'OPEN'
|
||||||
|
Lot_Services('OpenLot', LotId)
|
||||||
|
If Error_Services('HasError') then
|
||||||
|
ErrorMessage = 'Error in Create Lot Event routine, ' : Error_Services('GetMessage')
|
||||||
|
end
|
||||||
Case Otherwise$
|
Case Otherwise$
|
||||||
ErrorMessage = 'Error in Create Lot Event routine, event type of ' : EventType : ' passed to routine is not valid for a lot of type TW.'
|
ErrorMessage = 'Error in Create Lot Event routine, event type of ' : EventType : ' passed to routine is not valid for a lot of type TW.'
|
||||||
End Case
|
End Case
|
||||||
|
@ -168,7 +168,6 @@ Event PUB_CLEAR.CLICK()
|
|||||||
end event
|
end event
|
||||||
|
|
||||||
Event PUB_SUBMIT.CLICK()
|
Event PUB_SUBMIT.CLICK()
|
||||||
debug
|
|
||||||
NotReadyReason = ''
|
NotReadyReason = ''
|
||||||
//Gather all field information
|
//Gather all field information
|
||||||
ReasonForTest = Get_Property(@Window : '.CMB_TEST_TYPE', 'TEXT')
|
ReasonForTest = Get_Property(@Window : '.CMB_TEST_TYPE', 'TEXT')
|
||||||
|
@ -104,4 +104,11 @@ GetLot:
|
|||||||
end
|
end
|
||||||
return
|
return
|
||||||
|
|
||||||
|
ResetForm:
|
||||||
|
Set_Property(@Window : '.EDL_CURR_OPERATION', 'TEXT', '')
|
||||||
|
Set_Property(@Window : '.EDL_CURR_WAFER_QTY', 'TEXT', '')
|
||||||
|
Set_Property(@Window : '.EDT_LOT_OPERATIONS', 'ARRAY', '')
|
||||||
|
Set_Property(@Window : '.EDT_LOT_EVENTS', 'ARRAY', '')
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -526,7 +526,7 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
TWLotQuantity = Field(ScanData, '|', 3)
|
TWLotQuantity = Field(ScanData, '|', 3)
|
||||||
ThisScanTWLots = ScansRow<SCANS.TW_LOT_ID$>
|
ThisScanTWLots = ScansRow<SCANS.TW_LOT_ID$>
|
||||||
Locate TWLot in ThisScanTWLots using @VM setting twPOS then
|
Locate TWLot in ThisScanTWLots using @VM setting twPOS then
|
||||||
ScansRow<SCANS.TW_LOT_QTY$> = TWLotQuantity
|
ScansRow<SCANS.TW_LOT_QTY$, twPos> = TWLotQuantity
|
||||||
end
|
end
|
||||||
Case ScanData[1, 17] EQ 'TESTRUNTYPEUPDATE'
|
Case ScanData[1, 17] EQ 'TESTRUNTYPEUPDATE'
|
||||||
TestRunTypeId = Field(ScanData, '|', 2)
|
TestRunTypeId = Field(ScanData, '|', 2)
|
||||||
@ -619,8 +619,36 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
// "RDS" process.
|
// "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
|
// Ensure only one cassette is scanned
|
||||||
If (NumCass EQ 1) then
|
If (NumCass EQ 1) AND Not(Abort) 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
|
||||||
@ -1041,20 +1069,38 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
If ScansRow<SCANS.TW_LOT_ID$> NE '' then
|
If ScansRow<SCANS.TW_LOT_ID$> NE '' then
|
||||||
//Test Wafer Lot Loading
|
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$>
|
TestWaferLotData = ScansRow<SCANS.TW_LOT_ID$>
|
||||||
Abort = False$
|
Abort = False$
|
||||||
for each TWLot in TestWaferLotData using @VM setting twPOS
|
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
|
If ScansRow<SCANS.TW_LOT_QTY$, twPOS> NE '' OR ScansRow<SCANS.TW_LOT_QTY$, twPOS> GT 0 then
|
||||||
Scan_Services('AddNotAcceptableReason', 'Each test wafer lot logged must have a quantity associated with it.')
|
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
|
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.')
|
Scan_Services('AddNotAcceptableReason', 'A User ID Scan is required to log test wafer usage.')
|
||||||
end
|
end
|
||||||
|
end else
|
||||||
|
Scan_Services('AddNotAcceptableReason', 'A test run type is required to log test wafer usage.')
|
||||||
end
|
end
|
||||||
Until False$
|
|
||||||
Next TWLot
|
|
||||||
end else
|
end else
|
||||||
Scan_Services('AddNotAcceptableReason', 'A cassette must be scanned in order to complete a tool scan.')
|
Scan_Services('AddNotAcceptableReason', 'A cassette must be scanned in order to complete a tool scan.')
|
||||||
end
|
end
|
||||||
@ -1295,6 +1341,23 @@ Service AcceptScan(ScanID, ScanJSON)
|
|||||||
// Check if both the PRE and LOAD stages are ready to sign
|
// Check if both the PRE and LOAD stages are ready to sign
|
||||||
PreStageSigned = False$
|
PreStageSigned = False$
|
||||||
LoadStageSigned = False$
|
LoadStageSigned = False$
|
||||||
|
//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)
|
PreStageSigned = QA_Services('SignPreEpiStage', RDSNo, Username, WaferQty, Reactor, 1)
|
||||||
If PreStageSigned EQ True$ then
|
If PreStageSigned EQ True$ then
|
||||||
LoadStageSigned = QA_Services('SignLoadStage', RDSNo, USername, WaferQty, LLSide, 1)
|
LoadStageSigned = QA_Services('SignLoadStage', RDSNo, USername, WaferQty, LLSide, 1)
|
||||||
@ -1305,6 +1368,21 @@ 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
|
||||||
|
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
|
||||||
|
|
||||||
Case CurrStage _EQC 'LOAD'
|
Case CurrStage _EQC 'LOAD'
|
||||||
Action = 'LOAD'
|
Action = 'LOAD'
|
||||||
// Check if LOAD stage is ready to sign
|
// 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.')
|
Error_Services('Set', '(':CassetteID:') The ':CurrStage:' is not currently supported by the barcode application.')
|
||||||
End Case
|
End Case
|
||||||
Case CassetteID EQ '' AND TestWaferLots NE ''
|
Case CassetteID EQ '' AND TestWaferLots NE ''
|
||||||
debug
|
|
||||||
//Tool scan with ONLY test wafers being logged.
|
//Tool scan with ONLY test wafers being logged.
|
||||||
ToolID = ScansRow<SCANS.TOOL_ID$>
|
ToolID = ScansRow<SCANS.TOOL_ID$>
|
||||||
Reactor = ToolID[-1, 'BR']
|
Reactor = ToolID[-1, 'BR']
|
||||||
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, 'REACTOR', Reactor, '', '',Username , TestWaferLots, TestWaferLotQtys)
|
NewTestRunId = Test_Run_Services('CreateTestRunRecord', 3, 'R', Reactor, '', '',Username , TestWaferLots, TestWaferLotQtys)
|
||||||
If Error_Services('HasError') then
|
If Error_Services('HasError') then
|
||||||
ErrorMessage = Error_Services('GetMessage')
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
Error_Services('Set', ErrorMessage)
|
Error_Services('Set', ErrorMessage)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user