smart scanner metrics

This commit is contained in:
Chase Tucker 2025-06-06 09:30:18 -07:00
parent 803f946c7e
commit ebd8b36d13
19 changed files with 551 additions and 59 deletions

View File

@ -2,9 +2,9 @@ Compile function Lot_Services(@Service, @Params)
#pragma precomp SRP_PreCompiler
Declare function TEST_WAFER_PROD_SERVICES, SRP_Datetime, Datetime, Database_Services, Lot_Services, Error_Services, RTI_CREATEGUID
Declare function SRP_Array, SRP_Json, Environment_Services, Logging_Services, MemberOf, Lot_Event_Services
Declare function SRP_Array, SRP_Json, Environment_Services, Logging_Services, MemberOf, Lot_Event_Services, GetTickCount
Declare subroutine Database_Services, Btree.Extract, Lot_Services, Error_Services, Labeling_Services, SRP_Json, Logging_Services
Declare subroutine SRP_Run_Command, Service_Services, obj_notes, Lot_Event_Services
Declare subroutine SRP_Run_Command, Service_Services, obj_notes, Lot_Event_Services, Mona_Services
$insert APP_INSERTS
$Insert LOT_EQUATES
$Insert TEST_WAFER_PROD_EQUATES
@ -38,6 +38,13 @@ objLotClosureLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',',
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', 'WO_MAT', 'LOT'
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_LOTSERVICES'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_LOTSERVICES'
end
GoToService
Return Response or ""
@ -113,6 +120,9 @@ Service GenerateNewLotId(LotType)
end service
Service GetLotIdByLegacyLotIdAndType(LegacyLotId, LegacyLotType)
StartTick = GetTickCount()
MetricName = 'GetLotIdByLegacyLotIdAndType'
Open 'DICT.LOT' to DictLot then
SearchString = ''
@ -130,10 +140,16 @@ Service GetLotIdByLegacyLotIdAndType(LegacyLotId, LegacyLotType)
end else
ErrorMsg = 'Error in ':Service:' service. Error opening LOT dictionary.'
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service CreateNewLot(LotType, ProdName, LotQty, VendorPartNo, VendorLotNo, VendorCode, Username, PrinterID, LotId)
StartTick = GetTickCount()
MetricName = 'CreateNewLot'
CreatedLotNumber = ''
ErrorMessage = ''
Begin Case
@ -279,6 +295,8 @@ Service CreateNewLot(LotType, ProdName, LotQty, VendorPartNo, VendorLotNo, Vendo
end
Response = CreatedLotNumber
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
End Service
@ -484,6 +502,9 @@ end service
//Returns a @FM delimited list of operations in sequence
Service GetLotOperationSequence(LotId)
StartTick = GetTickCount()
MetricName = 'GetLotOperationSequence'
LotOperationsInSequence = ''
If LotID NE '' then
//Get Operations
@ -496,9 +517,15 @@ Service GetLotOperationSequence(LotId)
//error: lot id was null
end
Response = LotOperationsInSequence
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service GetLotCurrOperationId(LotId)
StartTick = GetTickCount()
MetricName = 'GetLotCurrOperationId'
CurrOperation = ''
If LotID NE '' then
//Get them in sequence first
@ -515,9 +542,15 @@ Service GetLotCurrOperationId(LotId)
//error: lot id was null
end
Response = CurrOperation
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service GetLotCurrOperationName(LotId)
StartTick = GetTickCount()
MetricName = 'GetLotCurrOperationName'
CurrOperationId = ''
CurrOperationName = ''
If LotID NE '' then
@ -536,6 +569,9 @@ Service GetLotCurrOperationName(LotId)
//error: lot id was null
end
Response = CurrOperationName
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service AddLotOperationIntoSequence(LotId, NewOperationId, NewSequence, Rework)
@ -591,6 +627,9 @@ Service AddLotOperationIntoSequence(LotId, NewOperationId, NewSequence, Rework)
end service
Service IsLotMovedIn(LotId)
StartTick = GetTickCount()
MetricName = 'IsLotMovedIn'
Response = ''
If RowExists('LOT', LotId) then
CurrOperId = Lot_Services('GetLotCurrOperationId', LotId)
@ -601,6 +640,9 @@ Service IsLotMovedIn(LotId)
Response = False$
end
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service IsOperationCompleted(LotOperationId)
@ -619,6 +661,8 @@ Service IsOperationCompleted(LotOperationId)
end service
Service MoveInLot(LotID, Operator)
StartTick = GetTickCount()
MetricName = 'MoveInLot'
ErrorMessage = ''
ThisLotCurrOperationID = ''
@ -667,9 +711,15 @@ Service MoveInLot(LotID, Operator)
Logging_Services('AppendLog', objLotMoveLog, LogData, @RM, @FM, False$)
Error_Services('Add', ErrorMessage)
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service MoveOutLot(LotID, Operator)
StartTick = GetTickCount()
MetricName = 'MoveOutLot'
ErrorMessage = ''
ThisLotCurrOperationID = ''
If LotId NE '' then
@ -729,6 +779,9 @@ Service MoveOutLot(LotID, Operator)
Logging_Services('AppendLog', objLotMoveLog, LogData, @RM, @FM, False$)
Error_Services('Add', ErrorMessage)
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service ConvertLotRecordToJson(LotId, ItemURL, CurrUser, FullObject=BOOLEAN)
@ -855,6 +908,9 @@ Service ConvertLotRecordToJson(LotId, ItemURL, CurrUser, FullObject=BOOLEAN)
end service
Service OpenLot(LotId)
StartTick = GetTickCount()
MetricName = 'OpenLot'
ErrorMessage = ''
If RowExists('LOT', LotId) then
LotRec = Database_Services('ReadDataRow', 'LOT', LotId, True$, 0, False$)
@ -871,9 +927,15 @@ Service OpenLot(LotId)
If ErrorMessage NE '' then
Error_Services('Add', ErrorMessage)
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service CloseLot(LotId)
StartTick = GetTickCount()
MetricName = 'CloseLot'
ErrorMessage = ''
If RowExists('LOT', LotId) then
LotRec = Database_Services('ReadDataRow', 'LOT', LotId, True$, 0, False$)
@ -890,6 +952,9 @@ Service CloseLot(LotId)
If ErrorMessage NE '' then
Error_Services('Add', ErrorMessage)
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service AutoCloseTestWaferLot(LotId, CloseUserId)
@ -989,15 +1054,26 @@ Service AutoCloseTestWaferLot(LotId, CloseUserId)
end service
Service HoldLot(LotId, OperatorId)
StartTick = GetTickCount()
MetricName = 'HoldLot'
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service UnholdLot(LotId, OperatorId)
StartTick = GetTickCount()
MetricName = 'UnholdLot'
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service ReduceLotWaferCount(LotId, ReductionQty, OperatorId)
StartTick = GetTickCount()
MetricName = 'ReduceLotWaferCount'
ErrorMessage = ''
If RowExists('LOT', LotId) then
LotRec = Database_Services('ReadDataRow', 'LOT', LotId, True$, 0, False$)
@ -1043,9 +1119,15 @@ Service ReduceLotWaferCount(LotId, ReductionQty, OperatorId)
if ErrorMessage NE '' then
Error_Services('Add', ErrorMessage)
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service IncreaseLotWaferCount(LotId, IncreaseQty, OperatorId)
StartTick = GetTickCount()
MetricName = 'IncreaseLotWaferCount'
ErrorMessage = ''
If RowExists('LOT', LotId) then
LotRec = Database_Services('ReadDataRow', 'LOT', LotId, True$, 0, False$)
@ -1087,6 +1169,8 @@ Service IncreaseLotWaferCount(LotId, IncreaseQty, OperatorId)
Error_Services('Add', ErrorMessage)
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service OpenOIWizardCreateTWLotInBrowser()
@ -1095,6 +1179,9 @@ Service OpenOIWizardCreateTWLotInBrowser()
end service
Service CreateNewVoidedLotRecord(LotId, LegacyLotId, LotType=LOT_TYPES, Username)
StartTick = GetTickCount()
MetricName = 'CreateNewVoidedLotRecord'
ErrorMessage = ''
If RowExists('LSL_USERS', Username) then
If LotType NE '' then
@ -1165,16 +1252,8 @@ Service CreateNewVoidedLotRecord(LotId, LegacyLotId, LotType=LOT_TYPES, Username
If ErrorMessage NE '' then
//Todo Log Error Message
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service

View File

@ -178,6 +178,11 @@ Service SendBufferedAverageMetric(MonaResource, MetricName, MetricValue)
end service
Service QueueLatencyAndCountMetrics(MonaResource, MetricName, StartTick, EndTick)
Diff = EndTick - StartTick
Mona_Services('SendMetric', MonaResource, MetricName:'_LATENCY', Diff)
Mona_Services('SendMetric', MonaResource, MetricName:'_COUNT', 1)
end service
SwapResourceNames:
@ -201,4 +206,3 @@ SwapResourceNames:
return

View File

@ -20,7 +20,7 @@ COMPILE FUNCTION obj_Post_Log(Method,Parms)
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Get_Property, obj_RDS, Database_Services, Environment_Services
DECLARE FUNCTION Logging_Services, Datetime, SRP_DateTime
DECLARE FUNCTION Logging_Services, Datetime, SRP_DateTime, GetTickCount
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, Send_Dyn, RList, obj_WO_Log, Send_Event, obj_RDS
DECLARE SUBROUTINE obj_WO_Mat, Send_Info, obj_Notes, ErrMsg, Logging_Services, Mona_Services
@ -42,6 +42,13 @@ Headers = 'Logging DTM' : @FM : 'WOMatKey' : @FM : ' SAPBatchNo' : @FM : 'Fa
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_OBJPOSTLOG'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_OBJPOSTLOG'
end
ErrTitle = 'Error in Stored Procedure "obj_Post_Log"'
ErrorMsg = ''
@ -116,6 +123,9 @@ RETURN
Post:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'Post'
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
ServiceKeyID = 'Obj_Post_Log*Post'
Lock hSysLists, ServiceKeyID then
@ -229,5 +239,9 @@ Post:
Unlock hSysLists, ServiceKeyID else Null
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN

View File

@ -18,8 +18,8 @@ COMPILE FUNCTION obj_Reactor(Method,Parms)
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Mona_Services
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Environment_Services, GetTickCount
$INSERT REACTOR_EQUATES
@ -28,6 +28,14 @@ $INSERT REACT_STATE_EQUATES
$INSERT REACT_ITEM_EQUATES
$INSERT MSG_EQUATES
$insert REACTOR_CHILD_KEY_IDS_EQUATES
$Insert LOGICAL
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_OBJREACTOR'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_OBJREACTOR'
end
ErrTitle = 'Error in Stored Procedure "obj_Reactor"'
ErrorMsg = ''
@ -66,6 +74,9 @@ RETURN Result
CurrItem:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'CurrItem'
ReactNo = Parms[1,@RM]
ItemType = Parms[COL2()+1,@RM]
ReactRec = Parms[COL2()+1,@RM]
@ -96,6 +107,9 @@ LOCATE ItemType IN CurrInstTypes USING @VM SETTING Pos THEN
Result = FIELD(CurrInstItems<1,Pos>,'*',2)
END
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN
@ -103,6 +117,9 @@ RETURN
CurrGraphite:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'CurrGraphite'
ReactNo = Parms[1,@RM]
ReactRec = Parms[COL2()+1,@RM]
@ -135,6 +152,9 @@ FOR I = 1 TO ciCnt
END
NEXT I
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN

View File

@ -15,10 +15,10 @@ COMPILE FUNCTION obj_React_State(Method,Parms)
*/
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Database_Services
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Database_Services, Mona_Services
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey, Send_Dyn, Database_Services, Error_Services
Declare function Environment_Services, GetTickCount
$INSERT REACT_STATE_EQUATES
$INSERT PROD_SPEC_EQUATES
@ -28,6 +28,12 @@ $INSERT LOGICAL
EQU CRLF$ TO \0D0A\
EQU TAB$ TO \09\
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_OBJREACTSTATE'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_OBJREACTSTATE'
end
ErrTitle = 'Error in Stored Procedure "obj_React_State"'
ErrorMsg = ''
@ -62,6 +68,9 @@ RETURN Result
ReactRunUnload:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'ReactRunUnload'
* Upadate all parameters set at Reactor Unload signature *
ReactNo = Parms[1,@RM]
@ -115,6 +124,9 @@ end
* otParms = FieldStore(otParms,@RM,4,0,RSRec)
* obj_Tables('WriteRec',otParms)
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN

View File

@ -20,9 +20,9 @@ COMPILE FUNCTION obj_React_Status(Method,Parms)
#pragma precomp SRP_PreCompiler
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Dialog_Box,NextKey, Popup, Get_Property, Database_Services
DECLARE FUNCTION Error_Services, Environment_Services, Logging_Services, Override_Log_Services
DECLARE FUNCTION Error_Services, Environment_Services, Logging_Services, Override_Log_Services, GetTickCount
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, Btree.Extract, ErrMsg, Database_Services, Rlist
DECLARE SUBROUTINE Logging_Services
DECLARE SUBROUTINE Logging_Services, Mona_Services
$INSERT LOGICAL
$INSERT MSG_EQUATES
@ -43,6 +43,13 @@ LogFilename = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] :
Headers = 'Logging DTM' : @FM : 'User' : @FM : 'CassNo' : @FM : 'RDSNo' : @FM : 'Load DTM' : @FM : 'Service' : @FM : 'Notes'
objReactStatusLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_OBJREACTSTATUS'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_OBJREACTSTATUS'
end
ErrTitle = 'Error in Stored Procedure "obj_React_Status"'
ErrorMsg = ''
@ -125,6 +132,9 @@ RETURN
CassLoad:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'CassLoad'
ReactNo = Parms[1,@RM]
WONo = Parms[COL2()+1,@RM]
CassNo = Parms[COL2()+1,@RM]
@ -203,12 +213,17 @@ CassLoad:
Result = IdleTime
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN
* * * * * * *
CassUnload:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'CassUnload'
ReactNo = Parms[1,@RM]
WONo = Parms[COL2()+1,@RM]
@ -271,12 +286,17 @@ CassUnload:
ErrorMsg = Error_Services('GetMessage')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN
* * * * * * *
ReactorLoad:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'ReactorLoad'
* EpiPro Reactor Load
@ -362,11 +382,16 @@ ReactorLoad:
ErrorMsg = 'Unable to read REACT_STATUS record ':ReactNo:' for update (':Method:').'
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN
* * * * * * *
ReactorUnload:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'ReactorUnload'
* EpiPro Reactor Unload
@ -432,6 +457,9 @@ ReactorUnload:
ErrorMsg = Error_Services('GetMessage')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN

View File

@ -28,11 +28,12 @@ Compile Function obj_WO_Mat(Method,Parms)
Declare Function Get_Status, Msg, Utility, obj_Tables, Dialog_Box,NextKey, Popup, Get_Property, obj_RDS, RetStack
Declare Function Database_Services, GaN_Services, Logging_Services, Environment_Services, Signature_Services
Declare Function obj_WO_Mat, obj_WM_In, obj_WM_Out, obj_Prod_Spec, obj_Clean_Insp, obj_Calendar, obj_Popup
Declare Function Error_Services, Memberof, Datetime
Declare Function Error_Services, Memberof, Datetime, GetTickCount
Declare Subroutine Set_Status, Msg, obj_Tables, Send_Dyn, Btree.Extract, ErrMsg, Send_Dyn, RList, obj_WO_Log, Send_Event
Declare Subroutine obj_RDS, Extract_SI_Keys, obj_Pend_Ship_Labels, obj_WO_Mat_QA, Work_Order_Services, Service_Services
Declare Subroutine obj_notes, obj_Clean_Insp, obj_Post_Log, Send_Info, obj_WO_Mat_Log, obj_SAP, obj_WO_Mat, obj_WO_Wfr
Declare Subroutine Logging_Services, Set_Property, Delete, Database_Services, SRP_Stopwatch, Material_Services
Declare subroutine Mona_Services
$Insert MSG_EQUATES
$Insert WO_MAT_EQUATES
@ -120,6 +121,13 @@ SAPFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' SetS
SAPHeaders = 'Logging DTM' : @FM : 'WOMatKey' : @FM : 'SAPBatchNo'
objSAPLog = Logging_Services('NewLog', SAPLogPath, SAPFileName, CRLF$, Comma$, SAPHeaders, '', False$, False$)
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_OBJWOMAT'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_OBJWOMAT'
end
IF NOT(ASSIGNED(Method)) THEN ErrorMsg = 'Unassigned parameter "Method" passed to subroutine'
IF NOT(ASSIGNED(Parms)) THEN Parms = ''
@ -634,6 +642,9 @@ RETURN
CurrStatus:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'CurrStatus'
IF NOT(ASSIGNED(WOMatKey)) THEN WOMatKey = Parms[1,@RM]
IF NOT(ASSIGNED(WOMatRec)) THEN WOMatRec = Parms[COL2()+1,@RM]
@ -894,6 +905,9 @@ CurrStatus:
IF Result = 'RTS' AND WOMatRec<WO_MAT_SHIP_HOLD$> = 1 THEN Result = 'SHOLD'
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN
@ -5566,3 +5580,4 @@ ExpCOA:
RETURN

View File

@ -17,9 +17,9 @@ COMPILE FUNCTION obj_WO_Mat_Log(Method,Parms)
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Dialog_Box, NextKey, Popup, Get_Property, obj_RDS, Database_Services
Declare function Logging_Services, Environment_Services, RTI_CreateGUID, Error_Services, Datetime
Declare function Logging_Services, Environment_Services, RTI_CreateGUID, Error_Services, Datetime, GetTickCount
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, Btree.Extract, ErrMsg, Send_Dyn, RList, obj_WO_Log, Send_Event, obj_RDS
DECLARE SUBROUTINE obj_WO_Mat, Send_Info, obj_Notes, Logging_Services, Database_Services, Lot_Event_Services
DECLARE SUBROUTINE obj_WO_Mat, Send_Info, obj_Notes, Logging_Services, Database_Services, Lot_Event_Services, Mona_Services
$INSERT MSG_EQUATES
$INSERT WO_MAT_LOG_EQUATES
@ -49,6 +49,13 @@ Headers = 'Logging DTM'
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_OBJWOMATLOG'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_OBJWOMATLOG'
end
ErrTitle = 'Error in Stored Procedure "obj_WO_Mat_Log"'
ErrorMsg = ''
@ -77,6 +84,8 @@ RETURN Result
* * * * * * *
Create:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'Create'
LogFile = Parms[1,@RM]
TransDTM = Parms[COL2()+1,@RM]
@ -233,6 +242,8 @@ Create:
ErrorMsg = Error_Services('GetMessage')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN
@ -364,3 +375,4 @@ Post:
RETURN

View File

@ -15,8 +15,9 @@ COMPILE FUNCTION obj_WO_React(Method,Parms)
*/
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey, obj_Prod_Spec, obj_WO_Mat_QA
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, RList, ErrMsg, Btree.Extract, obj_WO_Mat_QA
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey, obj_Prod_Spec, obj_WO_Mat_QA, GetTickCount
Declare function Environment_Services
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, RList, ErrMsg, Btree.Extract, obj_WO_Mat_QA, Mona_Services
$INSERT MSG_EQUATES
$INSERT WO_REACT_EQUATES
@ -24,6 +25,7 @@ $INSERT PRS_STAGE_EQUATES
$INSERT WO_MAT_EQUATES
$INSERT RDS_EQUATES
$INSERT QA_MET_EQUATES ;* Used in GetQAMet data structure return variable
$Insert LOGICAL
ErrTitle = 'Error in Stored Procedure "obj_PRS_Prop"'
@ -40,6 +42,13 @@ END
Result = ''
Log = ''
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_OBJWOREACT'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_OBJWOREACT'
end
BEGIN CASE
CASE Method = 'AddRdsNo' ; GOSUB AddRdsNo
CASE Method = 'RemRdsNo' ; GOSUB RemRdsNo
@ -61,6 +70,9 @@ RETURN Result
AddRdsNo:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'AddRdsNo'
WONo = Parms[1,@RM]
StepNo = Parms[COL2()+1,@RM]
ReactNo = Parms[COL2()+1,@RM]
@ -135,6 +147,9 @@ obj_Tables('WriteOnlyRec',otParms) ;* Done with updates to the WO_REA
Result = Log
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN
@ -143,6 +158,9 @@ RETURN
RemRDSNo:
* * * * * * *
StartTick = GetTickCount()
MetricName = 'RemRDSNo'
WONo = Parms[1,@RM]
StepNo = Parms[COL2()+1,@RM]
ReactNo = Parms[COL2()+1,@RM]
@ -218,6 +236,9 @@ obj_Tables('WriteOnlyRec',otParms) ;* Done with updates to the WO_REA
Result = Log
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
RETURN

View File

@ -143,7 +143,7 @@ Declare subroutine RTI_Set_Debugger, Database_Services, Btree.Extract, Extract_
Declare subroutine Set_Status, Sleepery, Winyield, Yield, SRP_COM, QA_Services, Logging_Services, Obj_RDS
Declare subroutine Validate, obj_WO_Mat, obj_WO_Mat_Log, obj_React_Status, Record_Lock, obj_React_State, obj_Post_Log
Declare subroutine RDS_Services, obj_WO_React, RDS_React_Run, Signature_Services, SQL_Services, SRP_Stopwatch
Declare subroutine Override_Services, Reactor_Services, Lot_Services
Declare subroutine Override_Services, Reactor_Services, Lot_Services, Mona_Services
Declare function SRP_Sort_Array, Metrology_Services, obj_RDS_Test, obj_Test_Point_Map, Database_Services
Declare function Work_Order_Services, SRP_JSON, Logging_Services, Environment_Services, SRP_Trim, Error_Services
Declare function Min, Max, SRPSendMail, Btree.Extract, GetTickCount, HTTPClient_Services, Obj_RDS, SQL_Services
@ -177,6 +177,13 @@ LogFilename = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] :
Headers = 'Logging DTM' : @FM : 'User' : @FM : 'CassNo' : @FM : 'RDSNo' : @FM : 'Load DTM' : @FM : 'Service' : @FM : 'Notes'
objReactStatusLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_QASERVICES'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_QASERVICES'
end
GoToService else
Error_Services('Set', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
end
@ -1671,6 +1678,8 @@ end service
// False$ otherwise.
//----------------------------------------------------------------------------------------------------------------------
Service PreEpiSignatureReady(RDSNo, Username, WaferQty, Reactor)
StartTick = GetTickCount()
MetricName = 'PreEpiSignatureReady'
If (RDSNo EQ '') or (Username EQ '') or (WaferQty EQ '') or (Reactor EQ '') then
ErrorMessage = 'RDSNo, Username, WaferQty, or Reactor not supplied in the ':Service:' service.'
@ -1769,6 +1778,8 @@ Service PreEpiSignatureReady(RDSNo, Username, WaferQty, Reactor)
Response = False$
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -1785,6 +1796,8 @@ end service
// Reponse - True$ if PRE stage was successfully signed, False$ otherwise.
//----------------------------------------------------------------------------------------------------------------------
Service SignPreEpiStage(RDSNo, Username, WaferQty, Reactor, ScanEntry)
StartTick = GetTickCount()
MetricName = 'SignPreEpiStage'
Error_Services('Clear')
If (RDSNo EQ '') or (Username EQ '') or (WaferQty EQ '') or (Reactor EQ '') then
@ -1962,6 +1975,8 @@ Service SignPreEpiStage(RDSNo, Username, WaferQty, Reactor, ScanEntry)
Response = False$
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -1981,6 +1996,8 @@ end service
// False$ otherwise.
//----------------------------------------------------------------------------------------------------------------------
Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOpt)
StartTick = GetTickCount()
MetricName = 'LoadSignatureReady'
Error_Services('Clear')
If (RDSNo EQ '') or (Username EQ '') or (WaferQty EQ '') then
@ -2227,6 +2244,8 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
Response = False$
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -2315,6 +2334,8 @@ end service
// False$ otherwise.
//----------------------------------------------------------------------------------------------------------------------
Service SignLoadStage(RDSNo, Username, WaferQty, LLSide, ScanEntry)
StartTick = GetTickCount()
MetricName = 'SignLoadStage'
Error_Services('Clear')
If (RDSNo EQ '') or (Username EQ '') or (WaferQty EQ '') then
@ -2522,6 +2543,8 @@ Service SignLoadStage(RDSNo, Username, WaferQty, LLSide, ScanEntry)
Response = False$
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -2537,6 +2560,8 @@ end service
// False$ otherwise.
//----------------------------------------------------------------------------------------------------------------------
Service UnloadSignatureReady(RDSNo, Username, Reactor)
StartTick = GetTickCount()
MetricName = 'UnloadSignatureReady'
If (RDSNo EQ '') or (Username EQ '') or (Reactor EQ '') then
ErrorMsg = 'RDSNo or Username or Reactor not supplied in the ':Service:' service.'
@ -2683,6 +2708,8 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
Response = False$
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -2769,6 +2796,9 @@ end service
// Response - True$ if UNLOAD stage was successfully signed , False$ otherwise.
//----------------------------------------------------------------------------------------------------------------------
Service SignUnloadStage(RDSNo, Username, ScanEntry)
StartTick = GetTickCount()
MetricName = 'SignUnloadStage'
If (RDSNo EQ '') or (Username EQ '') then
ErrorMsg = 'RDSNo or Username not supplied in the ':Service:' service.'
Error_Services('Add', ErrorMsg)
@ -2961,6 +2991,8 @@ Service SignUnloadStage(RDSNo, Username, ScanEntry)
Response = False$
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -3611,3 +3643,4 @@ ClearCursors:
return

View File

@ -115,7 +115,7 @@ AutoDisplayErrors = FALSE$ ; // Set this to True$ when debugging so all erro
Declare subroutine SRP_Stopwatch, Error_Services, obj_Tables, Metrology_Services, obj_RDS_Test, SRP_JSON, Logging_Services
Declare subroutine RTI_Set_Debugger, Database_Services, Btree.Extract, Extract_SI_Keys, Obj_WO_Mat, Obj_WO_Mat_Log
Declare subroutine Dialog_Box, Obj_Notes, RList, Set_Status, Errmsg, Obj_React_Status , Reactor_Services
Declare subroutine Rds_Services, Obj_Post_Log
Declare subroutine Rds_Services, Obj_Post_Log, Mona_Services
Declare function SRP_Sort_Array, Metrology_Services, obj_RDS_Test, obj_Test_Point_Map, Database_Services
Declare function Work_Order_Services, SRP_JSON, Logging_Services, Environment_Services, SRP_Trim, Error_Services
Declare function Memberof, Obj_WO_Mat, Obj_WO_Mat_Log, SRP_Array, DateTime, Dialog_Box, obj_Prod_Spec
@ -131,6 +131,13 @@ Headers = 'Logging DTM':@FM:'Ctrl':@FM:'Load/Calculate Time'
objCtrlLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, COMMA$, Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_RDSSERVICES'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_RDSSERVICES'
end
GoToService else
Error_Services('Set', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
end
@ -226,6 +233,8 @@ End Service
// to an RDS record.
//----------------------------------------------------------------------------------------------------------------------
Service AddComment(RDSNo, Comment, UsernameOpt)
StartTick = GetTickCount()
MetricName = 'AddComment'
RDSRow = Database_Services('ReadDataRow', 'RDS', RDSNo)
Username = @USER4
@ -248,6 +257,8 @@ Service AddComment(RDSNo, Comment, UsernameOpt)
oblParms := "TOP" :@VM: "TOP" :@VM: "TOP"
obj_Post_Log('Create',oblParms)
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
End Service
@ -750,6 +761,9 @@ Service IsValidSubLot(RDSNo, RDSType, SupplierLot)
end service
Service GetRDSRunHistoryByReactorAndWO(ReactorNo, WO)
StartTick = GetTickCount()
MetricName = 'GetRDSRunHistoryByReactorAndWO'
table = "RDS"
ErrorMessage = ''
RDSRecords = ''
@ -783,10 +797,16 @@ Service GetRDSRunHistoryByReactorAndWO(ReactorNo, WO)
end
Next RDS
Response = FinalRDSSortedByAssignmentDTM<1>
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service IsTWLoggingReqd(RDSNo)
StartTick = GetTickCount()
MetricName = 'IsTWLoggingReqd'
IsTWReqd = False$
ExistingTWRuns = Test_Run_Services('GetTestRunKeysByRDS', RDSNo)
If ExistingTWRuns EQ '' then
@ -847,6 +867,9 @@ Service IsTWLoggingReqd(RDSNo)
IsTWReqd = False$
end
Response = IsTWReqd
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service TestWaferRanAfterLoad(RDSNo)
@ -1099,6 +1122,8 @@ end service
Service CopyRDSLayerParameters(RDSNo)
StartTick = GetTickCount()
MetricName = 'CopyRDSLayerParameters'
If (RDSNo NE '') then
RunOrderNo = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X')
@ -1151,6 +1176,8 @@ Service CopyRDSLayerParameters(RDSNo)
Error_Services('Add', 'RDSNo not supplied in ':Service:' service.')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -1829,3 +1856,4 @@ return

View File

@ -78,7 +78,7 @@ Declare function SRP_Math, SRP_Hash, SRP_JSON, Epi_Part_Services, Schedule_Se
Declare function Logging_Services, GetCommandLine, NextKey, Reactor_Log_Services, SRP_DateTime, ole_getwebpage
Declare function Datetime, Reactor_Modes_Services, Work_Order_Services, React_Mode_NG_Services, Lsl_Users_Services
Declare function SRP_Time, Rds_Services, SRP_Fastarray, Httpclient_Services, SRP_List, Utility, Memberof, Error_Services
Declare function Nica_Orders_Services, Max, RTI_CreateGUID
Declare function Nica_Orders_Services, Max, RTI_CreateGUID, GetTickCount
// Report paths for various performance report services.
TemplatesFolder = Environment_Services('GetApplicationRootPath') : '\Reports\Scheduler\Templates\'
@ -91,6 +91,13 @@ LogDate = Oconv(Date(), 'D4/')
LogTime = Oconv(Time(), 'MTS')
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_REACTORSERVICES'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_REACTORSERVICES'
end
GoToService else
end
@ -116,6 +123,8 @@ Options REACTORMETRIC = 'TUBE_BELL_JAR_THK', 'TUBE_BELL_JAR_WFR_CNT', 'SUSC_THK'
//
//----------------------------------------------------------------------------------------------------------------------
Service IncrementWfrMetrics(RDSNo)
StartTick = GetTickCount()
MetricName = 'IncrementWfrMetrics'
// Get Reactor and run count details
RDSRec = Xlate('RDS', RDSNo, '', 'X', '')
@ -217,6 +226,8 @@ Service IncrementWfrMetrics(RDSNo)
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec, 1, 0, 0)
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -3603,6 +3614,8 @@ end service
Service GetReactorAvailChamberCount(ReactNo)
StartTick = GetTickCount()
MetricName = 'GetReactorAvailChamberCount'
ErrMsg = 'Error in ReactorServices -> GetReactorAvailChamberCount: '
AvailableChamberCount = 0
@ -3622,6 +3635,8 @@ Service GetReactorAvailChamberCount(ReactNo)
end
Response = AvailableChamberCount
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -4340,3 +4355,4 @@ ClearCursors:
return

View File

@ -45,9 +45,9 @@ $insert RDS_EQUATES
$insert SCAN_SETUP
Declare Function Scan_Services, Database_Services, QA_Services, Datetime, RDS_Services, SRP_Array, SRP_Stopwatch
Declare function Logging_Services, Environment_Services
Declare function Logging_Services, Environment_Services, GetTickCount
Declare Subroutine Scan_Services, Database_Services, QA_Services, obj_WO_Mat_Log, SRP_Stopwatch
Declare Subroutine Logging_Services
Declare Subroutine Logging_Services, Mona_Services
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\ScanAPI\APIResponseTime'; //Define the directory where the log will be saved to. This happens the first time of the day that the log is written to.
LogDate = Oconv(Date(), 'D4/')
@ -58,6 +58,13 @@ LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : '
Headers = 'Logging DTM' : @FM : 'API' : @FM : 'ResponseTime' : @FM : 'ScanID' : @FM : 'ScanData' : @VM : 'StatusCode' ; //Define the column names in the log file, delimited by a Field Mark.
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', Headers, '', False$, False$); //Actually creates the log.
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_SCANAPI'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_SCANAPI'
end
GoToAPI else
// The specific resource endpoint doesn't have a API handler yet.
HTTP_Services('SetResponseStatus', 200, 'This is a valid endpoint but a web API handler has not yet been created.')
@ -72,16 +79,25 @@ Return Response OR ''
API scan.POST
StartTick = GetTickCount()
MetricName = 'SCAN_POST'
SRP_Stopwatch('Reset')
SRP_Stopwatch('Start', 'SCAN_POST_RESPONSE_TIME')
ScanID = Scan_Services('CreateScansRow')
If Error_Services('NoError') then
StatusCode = 201
GoSub CreateHALItem
Mona_Services('SendStatus', MonaResource, MetricName, 'OK')
end else
Message = Error_Services('GetMessage')
HTTP_Services('SetResponseStatus', 500, Message)
Mona_Services('SendStatus', MonaResource, MetricName, 'CRITICAL')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
SRP_Stopwatch('Stop', 'SCAN_POST_RESPONSE_TIME')
TotalPostResponseTime = SRP_Stopwatch('GetData', 'SCAN_POST_RESPONSE_TIME')
LogData = ''
@ -100,6 +116,9 @@ end api
API scan.ID.POST
StartTick = GetTickCount()
MetricName = 'SCAN_ID_POST'
SRP_Stopwatch('Reset')
SRP_Stopwatch('Start', 'SCAN_ID_POST_RESPONSE_TIME')
ScanID = EndpointSegment
@ -112,13 +131,20 @@ API scan.ID.POST
If Error_Services('NoError') then
StatusCode = 200
GoSub CreateHALItem
Mona_Services('SendStatus', MonaResource, MetricName, 'OK')
end else
Message = Error_Services('GetMessage')
HTTP_Services('SetResponseStatus', 400, Message)
Mona_Services('SendStatus', MonaResource, MetricName, 'CRITICAL')
end
end else
HTTP_Services('SetResponseStatus', 400, 'JSON object is missing from the request.')
Mona_Services('SendStatus', MonaResource, MetricName, 'WARNING')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
SRP_Stopwatch('Stop', 'SCAN_ID_POST_RESPONSE_TIME')
TotalPostResponseTime = SRP_Stopwatch('GetData', 'SCAN_ID_POST_RESPONSE_TIME')
LogData = ''
@ -143,11 +169,19 @@ end api
API scan.ID.HEAD
API scan.ID.GET
StartTick = GetTickCount()
MetricName = 'SCAN_ID_GET'
SRP_Stopwatch('Reset')
SRP_Stopwatch('Start', 'SCAN_ID_GET_RESPONSE_TIME')
ScanID = EndpointSegment
StatusCode = 200
GoSub CreateHALItem
Mona_Services('SendStatus', MonaResource, MetricName, 'OK')
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
SRP_Stopwatch('Stop', 'SCAN_ID_POST_RESPONSE_TIME')
TotalGetResponseTime = SRP_Stopwatch('GetData', 'SCAN_ID_GET_RESPONSE_TIME')
LogData = ''
@ -166,6 +200,9 @@ end api
API scan.ID.DELETE
StartTick = GetTickCount()
MetricName = 'SCAN_ID_DELETE'
SRP_Stopwatch('Reset')
SRP_Stopwatch('Start', 'SCAN_ID_DELETE_RESPONSE_TIME')
ScanID = EndpointSegment
@ -176,17 +213,25 @@ API scan.ID.DELETE
Database_Services('DeleteDataRow', 'SCANS', ScanID, True$, False$)
If Error_Services('NoError') then
HTTP_Services('SetResponseStatus', 200)
Mona_Services('SendStatus', MonaResource, MetricName, 'OK')
end else
Message = Error_Services('GetMessage')
HTTP_Services('SetResponseStatus', 500, Message)
Mona_Services('SendStatus', MonaResource, MetricName, 'CRITICAL')
end
end else
HTTP_Services('SetResponseStatus', 403, 'This scan is already accepted and cannot be deleted.')
Mona_Services('SendStatus', MonaResource, MetricName, 'OK')
end
end else
Message = Error_Services('GetMessage')
HTTP_Services('SetResponseStatus', 404, Message)
Mona_Services('SendStatus', MonaResource, MetricName, 'WARNING')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
SRP_Stopwatch('Stop', 'SCAN_ID_DELETE_RESPONSE_TIME')
TotalDeleteResponseTime = SRP_Stopwatch('GetData', 'SCAN_ID_DELETE_RESPONSE_TIME')
LogData = ''
@ -205,6 +250,8 @@ end api
API scan.ID.PATCH
StartTick = GetTickCount()
MetricName = 'SCAN_ID_PATCH'
// This is where scans are ultimately accepted for final processing. We will need to determine which type
// of scan this is (i.e. Location, Pre-Epi + Load, or Unload). This will be determined by the data coming in and the
@ -232,14 +279,17 @@ API scan.ID.PATCH
If Error_Services('NoError') then
StatusCode = 200
GoSub CreateHALItem
Mona_Services('SendStatus', MonaResource, MetricName, 'OK')
end else
Message = Error_Services('GetMessage')
HTTP_Services('SetResponseStatus', 500, Message)
Mona_Services('SendStatus', MonaResource, MetricName, 'CRITICAL')
end
SRP_JSON(hBody, 'Release')
end else
HTTP_Services('SetResponseStatus', 400, 'JSON object is missing from the request.')
Mona_Services('SendStatus', MonaResource, MetricName, 'WARNING')
end
end else
ScanNotAcceptableReason = SRP_JSON(objResource, 'GetValue', 'scan.notAcceptableReason')
@ -249,11 +299,17 @@ API scan.ID.PATCH
end else
Message = 'Unable to parse the JSON scan resource.'
HTTP_Services('SetResponseStatus', 400, Message)
Mona_Services('SendStatus', MonaResource, MetricName, 'WARNING')
end
end else
Message = Error_Services('GetMessage')
HTTP_Services('SetResponseStatus', 404, Message)
Mona_Services('SendStatus', MonaResource, MetricName, 'WARNING')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
SRP_Stopwatch('Stop', 'SCAN_ID_PATCH_RESPONSE_TIME')
TotalPatchResponseTime = SRP_Stopwatch('GetData', 'SCAN_ID_PATCH_RESPONSE_TIME')
LogData = ''
@ -272,6 +328,8 @@ end api
API scan.ID.PUT
StartTick = GetTickCount()
MetricName = 'SCAN_ID_PUT'
SRP_Stopwatch('Reset')
SRP_Stopwatch('Start', 'SCAN_ID_PUT_RESPONSE_TIME')
@ -314,17 +372,25 @@ API scan.ID.PUT
Database_Services('WriteDataRow', 'SCANS', ScanID, ScanRow, True$, False$, True$)
If Error_Services('NoError') then
GoSub CreateHALItem
Mona_Services('SendStatus', MonaResource, MetricName, 'OK')
end else
Message = Error_Services('GetMessage')
HTTP_Services('SetResponseStatus', 500, Message)
Mona_Services('SendStatus', MonaResource, MetricName, 'CRITICAL')
end
SRP_JSON(hBody, 'Release')
end else
HTTP_Services('SetResponseStatus', 400, 'Unable to parse the scanData JSON.')
Mona_Services('SendStatus', MonaResource, MetricName, 'WARNING')
end
end else
HTTP_Services('SetResponseStatus', 400, 'JSON object is missing from the request.')
Mona_Services('SendStatus', MonaResource, MetricName, 'WARNING')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
SRP_Stopwatch('Stop', 'SCAN_ID_PUT_RESPONSE_TIME')
TotalPutResponseTime = SRP_Stopwatch('GetData', 'SCAN_ID_PUT_RESPONSE_TIME')
LogData = ''
@ -339,7 +405,6 @@ API scan.ID.PUT
end
LogData<6> = ResponseStatusCode
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
end api
@ -378,3 +443,4 @@ CreateHALItem:
end
return

View File

@ -47,9 +47,10 @@ Declare Function Scan_Services, Memory_Services, Database_Services, SRP_JSON,
Declare Function QA_Services, Error_Services, Security_Services, SRP_Array, obj_WO_Mat, Memberof, Override_Log_Services
Declare Function Keyboard_Sim_Services, Environment_Services, Logging_Services, Reactor_Services, Supplement_Services
Declare function Test_Run_Services, Lot_Services, WO_MAT_Services, Reactor_Log_Services, Schedule_Services
Declare function GetTickCount
Declare Subroutine Scan_Services, Memory_Services, Database_Services, SRP_JSON, QA_Services, Error_Services
Declare Subroutine obj_WO_Mat_Log, Tool_Parms_Services, RDS_Services, Logging_Services, Supplement_Services
Declare Subroutine Test_Run_Services, WO_MAT_Services, Reactor_Log_Services, Schedule_Services
Declare Subroutine Test_Run_Services, WO_MAT_Services, Reactor_Log_Services, Schedule_Services, Mona_Services
Equ CRLF$ to \0D0A\
@ -61,6 +62,13 @@ Headers = 'Logging DTM' : @FM : 'RDS Key ID' : @FM : 'User' : @FM : 'CurrSta
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_SCANSERVICES'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_SCANSERVICES'
end
GoToService else
Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' module.')
end
@ -200,6 +208,8 @@ end service
// Returns the database row from the SCANS table for the indicated Scan ID. The default format is MultiValue.
//----------------------------------------------------------------------------------------------------------------------
Service GetScansRow(ScanID, ReturnJSON)
StartTick = GetTickCount()
MetricName = 'GetScansRow'
ScansRow = ''
@ -214,6 +224,8 @@ Service GetScansRow(ScanID, ReturnJSON)
Response = ScansRow
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -223,6 +235,8 @@ end service
// Returns the database row from the SCANS table for the indicated Scan ID. The default format is MultiValue.
//----------------------------------------------------------------------------------------------------------------------
Service SetScansRow(ScanID, ScansRow)
StartTick = GetTickCount()
MetricName = 'SetScansRow'
If (ScanID NE '') AND (ScansRow NE '') then
Database_Services('WriteDataRow', 'SCANS', ScanID, ScansRow)
@ -230,6 +244,8 @@ Service SetScansRow(ScanID, ScansRow)
Error_Services('Add', 'ScanID or ScansRow argument was missing in the ' : Service : ' service.')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -242,6 +258,8 @@ end service
// evaluated on a case by case basis.
//----------------------------------------------------------------------------------------------------------------------
Service ProcessScanData(ScanID, ScanJSON)
StartTick = GetTickCount()
MetricName = 'ProcessScanData'
If ( (ScanID NE '') AND (ScanJSON NE '') ) then
hScanJSON = ''
@ -1287,6 +1305,8 @@ Service ProcessScanData(ScanID, ScanJSON)
Error_Services('Add', 'ScanID or ScanJSON argument was missing in the ' : Service : ' service.')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -1295,6 +1315,9 @@ end service
//
//----------------------------------------------------------------------------------------------------------------------
Service AcceptScan(ScanID, ScanJSON)
StartTick = GetTickCount()
MetricName = 'AcceptScan'
If ( (ScanID NE '') and (ScanJSON NE '') ) then
hBody = ''
ParseResponse = SRP_JSON(hBody, 'PARSE', ScanJSON)
@ -1649,6 +1672,8 @@ Service AcceptScan(ScanID, ScanJSON)
Error_Services('Add', 'ScanID or ScanJSON argument was missing in the ' : Service : ' service.')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
//----------------------------------------------------------------------------------------------------------------------
@ -1659,6 +1684,8 @@ end service
// HAL+JSON properties will be added to the JSON object.
//----------------------------------------------------------------------------------------------------------------------
Service ConvertMVScanToJSON(ScanID, mvScan, itemURL)
StartTick = GetTickCount()
MetricName = 'ConvertMVScanToJSON'
jsonScan = ''
@ -2160,6 +2187,8 @@ Service ConvertMVScanToJSON(ScanID, mvScan, itemURL)
Response = jsonScan
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
//----------------------------------------------------------------------------------------------------------------------
@ -2396,9 +2425,3 @@ ClearCursors:
return

View File

@ -55,16 +55,24 @@ EQU NOTIFICATION_PERIOD$ TO 12
Declare subroutine Error_Services, Schedule_Services, Memory_Services, RList, Database_Services, Logging_Services
Declare subroutine Btree.Extract, Set_Status, Reduce, FSMsg, Messaging_Services, obj_Notes, Make.List
Declare subroutine Mona_Services
Declare function SRP_Array, Schedule_Services, Memory_Services, Database_Services, SRP_Sort_Array, Datetime
Declare function Epi_Part_Services, SRP_Math, SRP_Hash, obj_Prod_Spec, Logging_Services, Environment_Services
Declare function Work_Order_Services, RTI_CreateGUID, Reactor_Services, Schedule_Services, NextKey, SRP_Datetime
Declare function SRP_Time, Lsl_Users_Services
Declare function SRP_Time, Lsl_Users_Services, GetTickCount
Date = Oconv(Date(), 'D4/')
LogFileName = Date[7, 4] : '-' : Date[1, 2] : '-' : Date[4, 2] : ' Scheduler Log.csv'
Headers = 'Logging DTM' : @FM : 'Service Step' : @FM : 'Service Notes'
ColumnWidths = 20 : @FM : 30 : @FM : 150
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_SCHEDULESERVICES'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_SCHEDULESERVICES'
end
GoToService else
Error_Services('Set', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
end
@ -795,6 +803,8 @@ end service
Service GetCurrentEvent(ReactNo)
StartTick = GetTickCount()
MetricName = 'GetCurrentEvent'
SchedDetKey = ''
If ReactNo NE '' then
@ -814,9 +824,14 @@ Service GetCurrentEvent(ReactNo)
GoSub ClearCursors
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service CurrentEventIsBlock(ReactNo)
StartTick = GetTickCount()
MetricName = 'CurrentEventIsBlock'
If ReactNo NE '' then
CurrentSchedDetKey = Schedule_Services('GetCurrentEvent', ReactNo)
@ -838,9 +853,15 @@ Service CurrentEventIsBlock(ReactNo)
ErrorMsg = 'Error in service ':Service:' module. Invalid reactor number.'
Error_Services('Add', ErrorMsg)
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service GetNextEvent(ReactNo)
StartTick = GetTickCount()
MetricName = 'GetNextEvent'
SchedDetKey = ''
If ReactNo NE '' then
CurrDTM = Datetime()
@ -870,6 +891,9 @@ Service GetNextEvent(ReactNo)
end
GoSub ClearCursors
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service GetEngagedEvent(ReactNo)
@ -919,6 +943,9 @@ Service GetLastEngagedEvent(ReactNo)
end service
Service NextEventIsSamePsn(ReactNo)
StartTick = GetTickCount()
MetricName = 'NextEventIsSamePsn'
Response = False$
If ReactNo NE '' then
CurrentSchedDetKey = Schedule_Services('GetCurrentEvent', ReactNo)
@ -962,9 +989,15 @@ Service NextEventIsSamePsn(ReactNo)
ErrorMsg = 'Error in service ':Service:' module. Invalid reactor number.'
Error_Services('Add', ErrorMsg)
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service NextEventIsBlock(ReactNo)
StartTick = GetTickCount()
MetricName = 'NextEventIsBlock'
If ReactNo NE '' then
NextSchedDetKey = Schedule_Services('GetNextEvent', ReactNo)
@ -986,6 +1019,9 @@ Service NextEventIsBlock(ReactNo)
ErrorMsg = 'Error in service ':Service:' module. Invalid reactor number.'
Error_Services('Add', ErrorMsg)
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
//----------------------------------------------------------------------------------------------------------------------
@ -3561,3 +3597,4 @@ CreateScheduleChangeNotification:
return

View File

@ -63,12 +63,20 @@ Equ COL$TOOL_ID to 10
Declare function obj_Prod_Spec, RDS_Services, Error_Services, Signature_Services, Memory_Services, obj_RDS_Test
Declare function Database_Services, obj_WO_Mat, Dialog_Box, MemberOf, Msg, QA_Services, Datetime, Supplement_Services
Declare function Environment_Services, GetTickCount
Declare subroutine Error_Services, Popup, Memory_Services, SRP_Stopwatch, Set_Status, Database_Services, obj_WO_Mat
Declare subroutine Obj_Notes, Signature_Services, Obj_WO_Mat_Log, ErrMsg
Declare subroutine Obj_Notes, Signature_Services, Obj_WO_Mat_Log, ErrMsg, Mona_Services
PSNKey = ServiceKeyID
ReactorKey = ServiceKeyID
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_SIGNATURESERVICES'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_SIGNATURESERVICES'
end
GoToService
Return Response or ""
@ -135,6 +143,8 @@ end service
Service GetSigProfile(WOMatKey, UseCaching, RDSNo)
StartTick = GetTickCount()
MetricName = 'GetSigProfile'
If UseCaching EQ '' then UseCaching = True$
@ -175,6 +185,8 @@ Service GetSigProfile(WOMatKey, UseCaching, RDSNo)
SigDTMs = OCONV(SigDTMs,'DT4/^S')
Response = SigProfile:@FM:Signatures:@FM:SigDTMs
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -211,6 +223,9 @@ end service
Service CheckSigOrder(WOMatKey, CurrStage, UseCaching, RDSNo)
StartTick = GetTickCount()
MetricName = 'CheckSigOrder'
If UseCaching EQ '' then UseCachine = True$
Response = False$
If RDSNo NE '' then
@ -264,6 +279,8 @@ Service CheckSigOrder(WOMatKey, CurrStage, UseCaching, RDSNo)
Response = True$
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
End Service

View File

@ -56,9 +56,16 @@ $Insert NOTIFICATION_EQUATES
Equ COMMA$ to ','
Declare function Database_Services, Supplement_Services, Rti_Createguid, SRP_Array, Datetime, Signature_Services
Declare function Environment_Services, Logging_Services, Select_Into
Declare function Environment_Services, Logging_Services, Select_Into, GetTickCount
Declare subroutine Database_Services, Rds_Services, Supplement_Services, Logging_Services, Set_Status, SRP_Stopwatch
Declare subroutine Btree.Extract, obj_Notes
Declare subroutine Btree.Extract, obj_Notes, Mona_Services
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_SUPPLEMENTSERVICES'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_SUPPLEMENTSERVICES'
end
GoToService else
Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' module.')
@ -408,6 +415,8 @@ end service
//
//----------------------------------------------------------------------------------------------------------------------
Service AcknowledgeSupplement(SupplID, EntryUser)
StartTick = GetTickCount()
MetricName = 'AcknowledgeSupplement'
If ( (SupplID NE '') and (EntryUser NE '') ) then
OldRec = Xlate('SUPPLEMENTS', SupplID, '', 'X', '')
@ -433,6 +442,8 @@ Service AcknowledgeSupplement(SupplID, EntryUser)
Error_Services('Add', 'SupplID or EntryUser was missing in the ' : Service : ' service.')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -447,6 +458,8 @@ end service
//
//----------------------------------------------------------------------------------------------------------------------
Service UnacknowledgedSupplementCheck(LotType=LOTTYPES, LotID, Stage=STAGES)
StartTick = GetTickCount()
MetricName = 'UnacknowledgedSupplementCheck'
UnackList = ''
Response = False$
@ -482,6 +495,8 @@ Service UnacknowledgedSupplementCheck(LotType=LOTTYPES, LotID, Stage=STAGES)
If UnackList NE '' then Response = UnackList
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -496,6 +511,8 @@ end service
//
//----------------------------------------------------------------------------------------------------------------------
Service LogSupplementChange(SupplementRec, EditEvent, EntryUser)
StartTick = GetTickCount()
MetricName = 'LogSupplementChange'
If ( (SupplementRec NE '') and (EditEvent NE '') and (EntryUser NE '') ) then
SupplementText = SupplementRec<SUPPLEMENTS_SUPPL_TEXT$>
@ -513,6 +530,8 @@ Service LogSupplementChange(SupplementRec, EditEvent, EntryUser)
Error_Services('Add', 'LotType, LotID, or Stage was missing in the ' : Service : ' service.')
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
@ -613,3 +632,4 @@ Service SendNotifications(RDSList, EditEvent, Instructions, EntryUser)
end service

View File

@ -10,9 +10,10 @@ $Insert TEST_RUN_OBJ_EQUATES
$Insert LOT_EQUATES
$Insert LOT_OPERATION_EQUATES
Declare function Nextkey, Error_Services, Environment_Services, OConv, Logging_Services, SRP_Hashtable, Lot_Services
Declare function Nextkey, Error_Services, Environment_Services, OConv, Logging_Services, SRP_Hashtable, Lot_Services, GetTickCount
Declare function SRP_Datetime, Database_Services, Test_Run_Services, File_Services, Status, delete, Insert, Datetime, SRP_Json, MemberOf
Declare subroutine Database_Services, Btree.Extract, Error_Services, Logging_Services, Rlist, Test_Run_Services, Lot_Services, SRP_Json
Declare subroutine Mona_Services
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\TEST_RUN_SERVICES\TestWaferProduct'
LogDate = Oconv(Date(), 'D4/')
@ -30,6 +31,13 @@ objLogTR = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, He
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_TESTRUNSERVICES'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_TESTRUNSERVICES'
end
GoToService
Return Response or ""
@ -280,6 +288,9 @@ Service UpdateTWProdSortOrder(TWProdKey, NewOrder)
end service
Service GetAllTestRunTypes()
StartTick = GetTickCount()
MetricName = 'GetAllTestRunTypes'
keylist = ''
rtList = ''
RList('SELECT TEST_RUN_TYPE BY RUN_TYPE', 5, '', '', '')
@ -297,6 +308,9 @@ Service GetAllTestRunTypes()
end
Next ProdKey
Response = rtList
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service GetTestWaferLots(ShowOnlyOpenLots)
@ -318,6 +332,9 @@ Service GetTestWaferLots(ShowOnlyOpenLots)
end service
Service CreateTestRunRecord(RunTypeID, EqpType, EqpID, PSNo, RDSNo, UserID, TWLotIds, TWLotQtys)
StartTick = GetTickCount()
MetricName = 'CreateTestRunRecord'
TWRunKey = ''
Response = ''
ErrorMessage = ''
@ -490,9 +507,15 @@ Service CreateTestRunRecord(RunTypeID, EqpType, EqpID, PSNo, RDSNo, UserID, TWLo
Error_Services('Add', ErrorMessage)
Response = ''
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service CreateTestRunWaferRecord(TestRunID, TWPartID, TWUsageTypeID, SourceLotId, Username)
StartTick = GetTickCount()
MetricName = 'CreateTestRunWaferRecord'
ErrorMessage = ''
If TestRunID NE '' AND TWPartID NE '' then
If RowExists('TEST_RUN', TestRunID) then
@ -537,6 +560,9 @@ Service CreateTestRunWaferRecord(TestRunID, TWPartID, TWUsageTypeID, SourceLotId
Logging_Services('AppendLog', objLogTR, LogData, @FM, @VM)
Error_Services('Add', 'Error creating new test run record: ' : ErrorMessage)
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service UseTWFromLot(LotId, UsageQty, Username)
@ -706,6 +732,9 @@ Service GetTestRunKeysByPSN(PSNo)
end service
Service GetTestRunKeysByRDS(RDSNo)
StartTick = GetTickCount()
MetricName = 'GetTestRunKeysByRDS'
table = "TEST_RUN"
Open "DICT ":table To @DICT Else
Error_Services('Add', 'Error opening TEST_RUN dictionary')
@ -718,6 +747,9 @@ Service GetTestRunKeysByRDS(RDSNo)
Btree.Extract(srch_strng, table, @DICT, keylist, option, flag)
Response = keylist
end
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service GetTestRunWaferByID(TRWaferID)
@ -799,3 +831,4 @@ end service

View File

@ -2,9 +2,9 @@ Compile function WO_MAT_Services(@Service, @Params)
#pragma precomp SRP_PreCompiler
Declare function Database_Services, Error_Services, SRP_Json, SRP_Com, Environment_Services, Logging_Services
Declare function Datetime
Declare function Datetime, GetTickCount
Declare subroutine Error_Services, SRP_Json, SRP_Com, Wo_Mat_Services, Database_Services, Logging_Services
Declare subroutine obj_wo_mat_log, Set_Status
Declare subroutine obj_wo_mat_log, Set_Status, Mona_Services
$insert LOGICAL
$Insert APP_INSERTS
@ -20,6 +20,13 @@ Headers = 'Logging DTM' : @FM : 'WOMatKey' : @FM : 'Missing Signature' : @FM :
objSyncLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
IsProd = Environment_Services('IsProd')
If IsProd EQ True$ then
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_WOMATSERVICES'
end else
MonaResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_WOMATSERVICES'
end
GoToService else
Error_Services('Set', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
end
@ -379,6 +386,9 @@ Service SyncWOMatInvActionsAndSigProfile(WOMatKey)
end service
Service CassetteIsLastInWo(WoMatKey)
StartTick = GetTickCount()
MetricName = 'CassetteIsLastInWo'
IsLastInWo = False$
If Unassigned(WoMatKey) or WoMatKey EQ '' or RowExists('WO_MAT', WoMatKey) NE True$ then
@ -424,6 +434,9 @@ Service CassetteIsLastInWo(WoMatKey)
end
Response = IsLastInWo
EndTick = GetTickCount()
Mona_Services('QueueLatencyAndCountMetrics', MonaResource, MetricName, StartTick, EndTick)
end service
Service SetWoMatVoidFlag(WoMatKey, Username)
@ -473,3 +486,4 @@ Service SetWoMatVoidFlag(WoMatKey, Username)
end service