Added in functionality for TW WIP Reporting
Refactored error logging and catching.
This commit is contained in:
committed by
Ouellette Jonathan (CSC FI SPS MESLEO)
parent
0ec0428f19
commit
508707f0f2
107
LSL2/STPROC/OPERATION_TW_CREATE.txt
Normal file
107
LSL2/STPROC/OPERATION_TW_CREATE.txt
Normal file
@ -0,0 +1,107 @@
|
||||
Compile function OPERATION_TW_CREATE(LotId, Action, Operator)
|
||||
//Action: IN, OUT, PROCESS
|
||||
Declare function Lot_Services, Error_Services, Datetime, Database_Services
|
||||
Declare subroutine Database_Services, Lot_Services
|
||||
|
||||
#pragma precomp SRP_PreCompiler
|
||||
$insert LOGICAL
|
||||
$Insert APP_INSERTS
|
||||
$Insert Lot_Operation_Equates
|
||||
$Insert LOT_EQUATES
|
||||
|
||||
Success = False$
|
||||
debug
|
||||
If RowExists('LOT', LotId) then
|
||||
If Operator NE '' and RowExists('LSL_USERS', Operator) then
|
||||
Begin Case
|
||||
Case Action = 'IN'
|
||||
GoSub MoveIn
|
||||
Case Action = 'OUT'
|
||||
GoSub MoveOut
|
||||
Case Action = 'PROCESS'
|
||||
GoSub Process
|
||||
Case Otherwise$
|
||||
null
|
||||
End Case
|
||||
end else
|
||||
Error_Services('Add', 'Operator ID was null')
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'Invalid lot passed to Operation routine.')
|
||||
Success = False$
|
||||
end
|
||||
|
||||
Return Success
|
||||
|
||||
|
||||
MoveIn:
|
||||
debug
|
||||
//Get TW Create Operation ID
|
||||
ThisOperationID = Lot_Services('GetLotCurrOperation', LotId)
|
||||
If Field(ThisOperationId, '*', 1) EQ 'TW_CREATE' then
|
||||
ThisLotCurrOperationRec = Database_Services('ReadDataRow', 'LOT_OPERATION', ThisOperationID)
|
||||
ThisLotCurrOperationRec<LOT_OPERATION_DATETIME_IN$> = Datetime()
|
||||
ThisLotCurrOperationRec<LOT_OPERATION_WAFER_IN_QTY$> = Xlate('LOT', LotId, LOT_WAFER_QTY$, 'X')
|
||||
ThisLotCurrOperationRec<LOT_OPERATION_OPERATOR_IN_ID$> = Operator
|
||||
Database_Services('WriteDataRow', 'LOT_OPERATION', ThisLotCurrOperationID, ThisOperationID)
|
||||
If Error_Services('NoError') then
|
||||
LotType = XLATE('LOT', LotId, LOT_TYPE$, 'X')
|
||||
CurrOperation = XLATE('LOT_OPERATION', ThisLotCurrOperationID, LOT_OPERATION_OPERATION_ID$, 'X')
|
||||
Lot_Services('CreateLotEvent', LotId, LotType, Datetime(), 'MOVE_IN', '', '', 0, 0, CurrOperation, Operator)
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'Failed to move in lot. Lot is not currently at TW_CREATE. Detected Operation is ' : Field(ThisOperationId, '*', 1))
|
||||
end
|
||||
|
||||
return
|
||||
|
||||
MoveOut:
|
||||
ThisOperationID = Lot_Services('GetLotCurrOperation', LotId)
|
||||
If Field(ThisOperationId, '*', 1) EQ 'TW_CREATE' then
|
||||
ThisLotCurrOperationRec = Database_Services('ReadDataRow', 'LOT_OPERATION', ThisLotCurrOperationID)
|
||||
LotMovedIn = ThisLotCurrOperationRec<LOT_OPERATION_DATETIME_IN$>
|
||||
If LotMovedIn then
|
||||
ThisOperationSteps = ThisLotCurrOperationRec<LOT_OPERATION_STEPS$>
|
||||
AllStepsCompleted = False$
|
||||
for each OperationStepId in ThisOperationSteps using @VM
|
||||
ThisStepComplete = Xlate('LOT_OPERATION_STEP', OperationStepId, LOT_OPERATION_STEP_STEP_COMPLETED$, 'X')
|
||||
If ThisStepComplete then
|
||||
AllStepsComplete = True$
|
||||
end else
|
||||
AllStepsComplete = False$
|
||||
end
|
||||
until AllStepsCompleted = False$
|
||||
Next OperationStep
|
||||
If AllStepsCompleted then
|
||||
ThisLotCurrOperationRec<LOT_OPERATION_DATETIME_OUT$> = Datetime()
|
||||
ThisLotCurrOperationRec<LOT_OPERATION_WAFER_OUT_QTY$> = Xlate('LOT', LotId, LOT_WAFER_QTY$, 'X')
|
||||
ThisLotCurrOperationRec<LOT_OPERATION_OPERATOR_OUT_ID$> = Operator
|
||||
Database_Services('WriteDataRow', 'LOT_OPERATION', ThisLotCurrOperationID, ThisLotCurrOperationRec)
|
||||
If Error_Services('NoError') then
|
||||
LotType = XLATE('LOT', LotId, LOT_TYPE$, 'X')
|
||||
CurrOperation = XLATE('LOT_OPERATION', ThisLotCurrOperationID, LOT_OPERATION_OPERATION_ID$, 'X')
|
||||
Lot_Services('CreateLotEvent', LotId, LotType, Datetime(), 'MOVE_OUT', '', '', ReduceQty, BonusQty, CurrOperation, Operator)
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'Failed to move out lot. Not all steps completed.')
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'Failed to move out lot. Lot was not moved in.')
|
||||
end
|
||||
end
|
||||
return
|
||||
|
||||
Process:
|
||||
//Get Current Step and proceed from that step onward
|
||||
return
|
||||
|
||||
OpenLot:
|
||||
|
||||
return
|
||||
|
||||
PrintLabel:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user