Alarm trigger with NICA_ORDERS table
solution tested and ready for deployment updated SRP_Git_Services to handle creating local copies of inherited entities updated HgCV OCAP order trigger to also look for active prove-in orders moved error services common into sysprog to avoid compilation issues
This commit is contained in:
@ -43,6 +43,7 @@ Function Metrology_Services(@Service, @Params)
|
||||
09/18/18 djs Added code within the ImportTencorData service to post wafer image pdfs to a staging table
|
||||
where they will be stored locally on the App server.
|
||||
09/11/19 fdr Add new service "ImportStratusData"
|
||||
12/05/24 djs Updated GetIQSViolations service to store reactor violations in the respective reactor record.
|
||||
|
||||
***********************************************************************************************************************/
|
||||
|
||||
@ -67,6 +68,7 @@ $insert WO_MAT_EQUATES
|
||||
$Insert NOTIFICATION_EQUATES
|
||||
$Insert RLIST_EQUATES
|
||||
$Insert WM_OUT_EQUATES
|
||||
$Insert IQS_VIOL_DATA_EQUATES
|
||||
|
||||
Common /MetrologyServices/ MachineType@, RDSNo@
|
||||
|
||||
@ -91,7 +93,7 @@ Equ Comma$ to ','
|
||||
Declare subroutine SRP_Stopwatch, Error_Services, obj_Tables, Metrology_Services, obj_RDS_Test, SRP_JSON
|
||||
Declare subroutine RTI_Set_Debugger, Database_Services, Btree.Extract, Set_Status, QA_Services, obj_Notes
|
||||
Declare subroutine Logging_Services, SRP_Send_Mail, SRP_Run_Command, PM_Services, Httpclient_Services
|
||||
Declare subroutine Tool_Services, Mona_Services
|
||||
Declare subroutine Tool_Services, Mona_Services, Reactor_Services
|
||||
Declare function SRP_Sort_Array, Metrology_Services, obj_RDS_Test, obj_Test_Point_Map, Database_Services, UCase
|
||||
Declare function Work_Order_Services, SRP_JSON, Logging_Services, Environment_Services, SRP_Trim, Min, Max
|
||||
Declare function QA_Services, SRP_Join_Arrays, Get_Status, Obj_Clean_Insp, Datetime, SRP_Datetime
|
||||
@ -2039,6 +2041,7 @@ end service
|
||||
|
||||
|
||||
Service GetCalculatedLayer(RDSKeyID, Machine, RunDataZone, WoIsEpiPro, ScannedLayer)
|
||||
|
||||
CalculatedLayer = ''
|
||||
|
||||
If (RDSKeyID NE '') AND (Machine NE '') then
|
||||
@ -2223,7 +2226,9 @@ Service RemoveOldMetrology()
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service ImportBioRadEPPFQAData(RunData, FileName)
|
||||
|
||||
Timestamp = RunData<2>
|
||||
WMOKeyID = RunData<6>
|
||||
Swap '.' with '*' in WMOKeyID
|
||||
@ -2303,8 +2308,10 @@ Service ImportBioRadEPPFQAData(RunData, FileName)
|
||||
end else
|
||||
Metrology_Services('LogResults', RDSNo@, Machine, 'UID001', Service : ' : ' : Error_Services('GetMessage'))
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// CleanRepository
|
||||
//
|
||||
@ -2349,61 +2356,23 @@ Service MonitorQueue(NumFiles)
|
||||
// Enable manual entry restriction - check current status to avoid unnecessary writes.
|
||||
CurrLockStatus = Database_Services('ReadDataRow', 'APP_INFO', 'ROTR_DATA_ENTRY_LOCK')
|
||||
If CurrLockStatus EQ False$ then
|
||||
Database_Services('WriteDataRow', 'APP_INFO', 'ROTR_DATA_ENTRY_LOCK', True$)
|
||||
// Add message to OI Admins' Inbox
|
||||
* OIAdmins = Xlate('SEC_GROUPS', 'OI_ADMIN', 'USER', 'X')
|
||||
* Recipients = OIAdmins
|
||||
* SentFrom = 'ADMIN_OI'
|
||||
* Subject = 'ROTR Manual Entry Restriction Re-enabled'
|
||||
* Message = 'Metrology run data queue currently has ':CurrFileCount:' files. ' |
|
||||
* : 'ROTR manual entry lock has been re-enabled.'
|
||||
* AttachWindow = ''
|
||||
* AttachKey = ''
|
||||
* SendToGroup = ''
|
||||
* Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
|
||||
* Set_Status(0)
|
||||
* obj_Notes('Create',Parms)
|
||||
*
|
||||
Database_Services('WriteDataRow', 'APP_INFO', 'ROTR_DATA_ENTRY_LOCK', True$)
|
||||
end
|
||||
end else
|
||||
// Lift manual entry restriction - check current status to avoid unnecessary writes.
|
||||
CurrLockStatus = Database_Services('ReadDataRow', 'APP_INFO', 'ROTR_DATA_ENTRY_LOCK')
|
||||
If CurrLockStatus EQ True$ then
|
||||
Database_Services('WriteDataRow', 'APP_INFO', 'ROTR_DATA_ENTRY_LOCK', False$)
|
||||
// Add message to OI Admins' Inbox
|
||||
* OIAdmins = Xlate('SEC_GROUPS', 'OI_ADMIN', 'USER', 'X')
|
||||
* Recipients = OIAdmins
|
||||
* SentFrom = 'ADMIN_OI'
|
||||
* Subject = 'ROTR Manual Entry Restriction Disabled'
|
||||
* Message = 'Metrology run data queue currently has ':CurrFileCount:' files. ' |
|
||||
* : 'ROTR manual entry lock has been temporarily disabled.'
|
||||
* AttachWindow = ''
|
||||
* AttachKey = ''
|
||||
* SendToGroup = ''
|
||||
* Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
|
||||
* Set_Status(0)
|
||||
* obj_Notes('Create',Parms)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service GetIQSViolations()
|
||||
|
||||
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
|
||||
Lock hSysLists, ServiceKeyID then
|
||||
Equ ViolReactorCol$ To 1
|
||||
Equ ViolTestCol$ To 2
|
||||
Equ ViolUSLCol$ To 3
|
||||
Equ ViolTARCol$ To 4
|
||||
Equ ViolLSLCol$ To 5
|
||||
Equ ViolLastEntryCol$ To 6
|
||||
Equ ViolLastAlarmCol$ To 7
|
||||
Equ ViolAlarmCol$ To 8
|
||||
Equ ViolSubGroupCol$ To 9
|
||||
Equ ViolMeanCol$ To 10
|
||||
Equ LastWriteTimeCol$ To 11
|
||||
|
||||
Response = 0
|
||||
ParsedIQSData = ''
|
||||
Pass = 1
|
||||
@ -2445,21 +2414,21 @@ Service GetIQSViolations()
|
||||
//Delete useuless Entire Database column
|
||||
FilteredData = Delete(FilteredData, i,1,0)
|
||||
|
||||
ParsedIQSData<ViolReactorCol$, i> = FilteredData<i, ViolReactorCol$>
|
||||
ParsedIQSData<ViolTestCol$, i> = FilteredData<i, ViolTestCol$>
|
||||
ParsedIQSData<ViolUSLCol$, i> = FilteredData<i, ViolUSLCol$>
|
||||
ParsedIQSData<ViolTARCol$, i> = FilteredData<i, ViolTARCol$>
|
||||
ParsedIQSData<ViolLSLCol$, i> = FilteredData<i, ViolLSLCol$>
|
||||
ParsedIQSData<ViolLastEntryCol$, i> = FilteredData<i, ViolLastEntryCol$>
|
||||
ParsedIQSData<ViolLastAlarmCol$, i> = FilteredData<i, ViolLastAlarmCol$>
|
||||
ParsedIQSData<IQS_VIOL_DATA.REACTOR$, i> = FilteredData<i, IQS_VIOL_DATA.REACTOR$>
|
||||
ParsedIQSData<IQS_VIOL_DATA.TEST$, i> = FilteredData<i, IQS_VIOL_DATA.TEST$>
|
||||
ParsedIQSData<IQS_VIOL_DATA.USL$, i> = FilteredData<i, IQS_VIOL_DATA.USL$>
|
||||
ParsedIQSData<IQS_VIOL_DATA.TAR$, i> = FilteredData<i, IQS_VIOL_DATA.TAR$>
|
||||
ParsedIQSData<IQS_VIOL_DATA.LSL$, i> = FilteredData<i, IQS_VIOL_DATA.LSL$>
|
||||
ParsedIQSData<IQS_VIOL_DATA.LAST_ENTRY$, i> = FilteredData<i, IQS_VIOL_DATA.LAST_ENTRY$>
|
||||
ParsedIQSData<IQS_VIOL_DATA.LAST_ALARM$, i> = FilteredData<i, IQS_VIOL_DATA.LAST_ALARM$>
|
||||
swap '>' with '>' in FilteredData
|
||||
swap '<' with '<' in FilteredData
|
||||
ParsedIQSData<ViolAlarmCol$, i> = FilteredData<i, ViolAlarmCol$>
|
||||
ParsedIQSData<ViolSubGroupCol$, i> = FilteredData<i, ViolSubGroupCol$>
|
||||
ParsedIQSData<ViolMeanCol$, i> = FilteredData<i, ViolMeanCol$>
|
||||
ParsedIQSData<IQS_VIOL_DATA.ALARM$, i> = FilteredData<i, IQS_VIOL_DATA.ALARM$>
|
||||
ParsedIQSData<IQS_VIOL_DATA.SUBGROUPS$, i> = FilteredData<i, IQS_VIOL_DATA.SUBGROUPS$>
|
||||
ParsedIQSData<IQS_VIOL_DATA.MEAN$, i> = FilteredData<i, IQS_VIOL_DATA.MEAN$>
|
||||
Next i
|
||||
LastWriteTime = IConv(PublishDate, 'DT')
|
||||
ParsedIQSData<LastWriteTimeCol$> = LastWriteTime
|
||||
LastWriteTime = IConv(PublishDate, 'DT')
|
||||
ParsedIQSData<IQS_VIOL_DATA.LAST_WRITE_TIME$> = LastWriteTime
|
||||
|
||||
Database_Services('WriteDataRow', 'CONFIG', 'IQS_VIOL_DATA', ParsedIQSData, True$, False$, True$)
|
||||
//Send status of last write time
|
||||
@ -2469,8 +2438,11 @@ Service GetIQSViolations()
|
||||
Mona_Services('SendBufferedStatus', 'IQS_VIOLATION_DATA', 'LastDataTimestamp', 'OK')
|
||||
end
|
||||
|
||||
Reactor_Services('UpdateReactorIQSViolations')
|
||||
|
||||
Unlock hSysLists, ServiceKeyID else Null
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
Service ScanRecipeMatchesRdsTestSpecThickMrecipe(RdsNo, RecipeLayer, RecipeInScan, RdsTestKeysFromRdsLayer, Zone='')
|
||||
@ -2555,6 +2527,7 @@ Service ScanNumDataPointsMatchesRdsTestSpecThickMPattern(RdsNo, RecipeLayer, Sca
|
||||
Response = MatchFound
|
||||
end service
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Internal GoSubs
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -3015,5 +2988,3 @@ LoadRunDataToDatabase:
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user