RDS JSON caching to minimize processing

This commit is contained in:
Chase Tucker
2025-07-10 13:47:56 -07:00
parent 350116fddc
commit 4689b861d7
2 changed files with 734 additions and 705 deletions

View File

@ -328,6 +328,8 @@ Service ProcessScanData(ScanID, ScanJSON)
Case Otherwise$
ScansRow<SCANS.SUPPLIER_LOT$> = LotID
End Case
ScansRow<SCANS.RDS_CHANGED$> = True$
Case ScanData[1, 5] EQ 'RESET'
ScansRow<SCANS.SCAN_TYPE$> = 'RESET'
@ -335,6 +337,7 @@ Service ProcessScanData(ScanID, ScanJSON)
ScansRow<SCANS.LOCATION_ID$> = ''
ScansRow<SCANS.TOOL_ID$> = ''
ScansRow<SCANS.LOAD_LOCK$> = ''
ScansRow<SCANS.RDS_CHANGED$> = True$
Case ScanData[1, 2] EQ '1H'
// Employee ID scan. Set the EMPLOYEE_ID column and check the
@ -367,6 +370,7 @@ Service ProcessScanData(ScanID, ScanJSON)
ScansRow<SCANS.IS_AUTHORIZED_TO_OVERRIDE_ROTR$> = Member
ScansRow<SCANS.EMPLOYEE_CHANGED$> = True$
ScansRow<SCANS.RDS_CHANGED$> = True$
End Case
Case ScanData[1, 3] EQ '10S'
@ -383,6 +387,7 @@ Service ProcessScanData(ScanID, ScanJSON)
ToolRow = Database_Services('ReadDataRow', 'TOOL', ToolID)
If Error_Services('NoError') then
ScansRow<SCANS.SCAN_TYPE$> = 'TOOL'
ScansRow<SCANS.RDS_CHANGED$> = True$
ToolType = ToolRow<2>
Begin Case
Case ToolType _EQC 'Reactor'
@ -560,6 +565,7 @@ Service ProcessScanData(ScanID, ScanJSON)
ScansRow<SCANS.AUTHENTICATED$> = False$
ScansRow<SCANS.IS_AUTHORIZED_TO_OVERRIDE_ROTR$> = False$
ScansRow<SCANS.EMPLOYEE_CHANGED$> = True$
ScansRow<SCANS.RDS_CHANGED$> = True$
Result = 'Override Performed successfully'
end
@ -580,6 +586,7 @@ Service ProcessScanData(ScanID, ScanJSON)
Locate TWLot in ThisScanTWLots using @VM setting twPOS then
ScansRow<SCANS.TW_LOT_QTY$, twPos> = TWLotQuantity
ScansRow<SCANS.TW_LOT_CHANGED$> = True$
ScansRow<SCANS.RDS_CHANGED$> = True$
end
Case ScanData[1, 17] EQ 'TESTRUNTYPEUPDATE'
@ -602,6 +609,8 @@ Service ProcessScanData(ScanID, ScanJSON)
ConfirmNote = 'Test wafer requirement acknowledged. [RDS:' : RDSNo : '], [WO:' : WO : '], [Cassette:' : CassNo : ']'
Reactor_Log_Services('AddComment', Reactor, ConfirmNote, {EMPLOYEE_ID})
ScansRow<SCANS.RDS_CHANGED$> = True$
Result = 'Test wafer requirement acknowledged'
Case ScanData EQ ''
// Most likely receiving RDS data, so nothing to do here.
@ -649,6 +658,7 @@ Service ProcessScanData(ScanID, ScanJSON)
end else
ScansRow<SCANS.CASSETTE_IDS$> = CassetteID
end
ScansRow<SCANS.RDS_CHANGED$> = True$
end else
Error_Services('Add', CassetteID : ' is not a valid Cassette ID.')
end
@ -689,6 +699,7 @@ Service ProcessScanData(ScanID, ScanJSON)
// determine what the next action will be (i.e. Pre-Epi+Load, Unload, etc.). Ensure we are
// working with an RDS and not a WM_IN or WM_OUT cassette ID. They are not used during the
// "RDS" process.
If ScansRow<SCANS.RDS_CHANGED$> NE False$ then
If (CassetteIDs NE '') then
TestWaferLotData = ScansRow<SCANS.TW_LOT_ID$>
TestWaferLotChanged = ScansRow<SCANS.TW_LOT_CHANGED$>
@ -1275,7 +1286,7 @@ Service ProcessScanData(ScanID, ScanJSON)
Scan_Services('AddNotAcceptableReason', 'A cassette must be scanned in order to complete a tool scan.')
end
end
end
Case Otherwise$
Scan_Services('AddNotAcceptableReason', 'A location ID or tool ID must be scanned to proceed.')
End Case
@ -1746,6 +1757,7 @@ Service ConvertMVScanToJSON(ScanID, mvScan, itemURL)
ParsingResult = SRP_JSON(TWLotJSON, 'Parse', TW_Lot_JSON)
If ParsingResult EQ '' then
SRP_JSON(objJSONScan, 'Set', 'testWaferLots', TWLotJSON)
SRP_JSON(TWLotJSON, 'Release')
end
end
end
@ -1790,6 +1802,7 @@ Service ConvertMVScanToJSON(ScanID, mvScan, itemURL)
ParsingResponse = SRP_JSON(hTRTypeOpts, 'Parse', TestRunTypeOptionsJson)
If ParsingResponse EQ '' then
SRP_JSON(objJSONScan, 'Set', 'testRunTypeOptions', hTRTypeOpts)
SRP_JSON(hTRTypeOpts, 'Release')
end
end
end
@ -1832,6 +1845,7 @@ Service ConvertMVScanToJSON(ScanID, mvScan, itemURL)
ParsingResult = SRP_JSON(hEmployeeJson, 'Parse', EmployeeJson)
If ParsingResult EQ '' then
SRP_JSON(objJSONScan, 'Set', 'employee', hEmployeeJson)
SRP_JSON(hEmployeeJson, 'Release')
end
end
@ -1922,6 +1936,18 @@ Service ConvertMVScanToJSON(ScanID, mvScan, itemURL)
SRP_JSON(objJSONScan, 'SetValue', 'lastModified', {LAST_MODIFIED}, 'String')
If {SCAN_TYPE} EQ 'TOOL' then
rdsJson = {RDS_JSON}
rdsChanged = {RDS_CHANGED}
ParsingResponse = ''
If rdsJson NE '' and rdsChanged EQ False$ then
ParsingResponse = SRP_JSON(hRdsJson, 'Parse', rdsJson)
If ParsingResponse EQ '' then
SRP_JSON(objJSONScan, 'Set', 'rds', hRdsJson)
SRP_JSON(hRdsJson, 'Release')
end
end
If rdsJson EQ '' or rdsChanged NE False$ or ParsingResponse NE '' then
CassIDs = {CASSETTE_IDS}
RDSNo = CassIDs<0, 1>
CurrStage = Xlate('RDS', RDSNo, 'CURR_STAGE', 'X')
@ -2140,10 +2166,17 @@ Service ConvertMVScanToJSON(ScanID, mvScan, itemURL)
end
SRP_JSON(objJSONScan, 'Set', 'rds', objRDS)
rdsJson = SRP_JSON(objRDS, 'Stringify', 'Fast')
mvScan<SCANS.RDS_JSON$> = rdsJson
mvScan<SCANS.RDS_CHANGED$> = False$
mvScanChanged = True$
SRP_JSON(objRDS, 'Release')
end
end
end
end
jsonScan = SRP_JSON(objJSONScan, 'Stringify', 'Fast')
SRP_JSON(objJSONScan, 'Release')
@ -2399,10 +2432,3 @@ ClearCursors:
return

View File

@ -45,9 +45,12 @@ compile insert SCANS_EQUATES
equ SCANS.TW_LOT_JSON$ to 36
equ SCANS.EMPLOYEE_CHANGED$ to 37
equ SCANS.EMPLOYEE_JSON$ to 38
equ SCANS.RDS_CHANGED$ to 39
equ SCANS.RDS_JSON$ to 40
#endif