From 09d2d13e63f9c8aad18a881007cf25c8673ac5a1 Mon Sep 17 00:00:00 2001 From: "Infineon\\Ouellette" Date: Tue, 12 Aug 2025 17:44:49 -0700 Subject: [PATCH] Created methods to provide Metrology Services with JSON source for SLL Section --- LSL2/STPROC/REACTOR_SERVICES.txt | 40 +++++++++++++++++++++++++++++++ LSL2/STPROC/REPORTS_API.txt | 6 +++++ LSL2/STPROC/REPORT_SERVICES.txt | 41 +++++++++++++++++++++++++++++++- 3 files changed, 86 insertions(+), 1 deletion(-) diff --git a/LSL2/STPROC/REACTOR_SERVICES.txt b/LSL2/STPROC/REACTOR_SERVICES.txt index 7eba107..5e68fb5 100644 --- a/LSL2/STPROC/REACTOR_SERVICES.txt +++ b/LSL2/STPROC/REACTOR_SERVICES.txt @@ -3574,6 +3574,45 @@ Service GetReactorDownLL(ReactNo) end service +Service GetReactorsWithDownLLByDtm(DtmToCheck, ReactType) + + ErrMsg = '' + AllReactors = Reactor_Services('GetReactorNumbers', ReactType) + SLLReactors = '' + If AllReactors NE '' then + for each ReactNo in AllReactors using @FM + PickPlaceFlag = XLATE('REACTOR', ReactNo, REACTOR_PICK_PLACE$, 'X') + If PickPlaceFlag then + Open 'DICT.REACT_LL' to DictReactLL then + SearchString = '' + SearchString := 'REACT_NO':@VM:ReactNo:@FM + ReactLLKeys = '' + Btree.Extract(SearchString, 'REACT_LL', DictReactLL, ReactLLKeys) + + For each ReactLLKey in ReactLLKeys using @VM + ReactLLRec = Database_Services('ReadDataRow', 'REACT_LL', ReactLLKey, True$, 0, False$) + ReactLLStartDTM = Field(ReactLLKey, '*', 2) + ReactLLEndDTM = ReactLLRec + ReactLLApplicable = false$ + If ReactLLStartDTM LE DtmToCheck AND (ReactLLEndDTM EQ '' OR ReactLLEndDtm GT DtmToCheck) then + Locate ReactNo in SLLReactors using @VM setting iPos else + SLLReactors<1, -1> = ReactNo + end + end + + Next ReactLLKey + end else + ErrMsg = 'Unable to open the REACT_LL dictionary.' + end + end + Next ReactNo + end else + ErrMsg = 'No Reactor IDs found!' + end + + Response = SLLReactors + +end service Service GetReactorLoadCountLimit(ReactNo) @@ -4373,3 +4412,4 @@ ClearCursors: return + diff --git a/LSL2/STPROC/REPORTS_API.txt b/LSL2/STPROC/REPORTS_API.txt index e893af3..0776e02 100644 --- a/LSL2/STPROC/REPORTS_API.txt +++ b/LSL2/STPROC/REPORTS_API.txt @@ -137,6 +137,11 @@ CreateHALItem: RepJSON = Report_Services('GetOpenTestWaferLotWIPReportJson') Case ReportID = 'OpenNCRReport' RepJson = Report_Services('GetOpenNCRReportJson') + Case ReportID = 'SLLReport' + //Single Load Lock Report from Metrology Services + ReportStartDtm = Http_Services('GetQueryField', 'StartDate') + ReportEndDtm = Http_Services('GetQueryField', 'EndDate') + RepJson = Report_Services('GetSLLReportJson', ReportStartDtm, ReportEndDtm) Case Otherwise$ Error_Services('Add', 'Unsupported report') End Case @@ -233,3 +238,4 @@ API reports.GET HTTP_Resource_Services('LoremIpsum') end api + diff --git a/LSL2/STPROC/REPORT_SERVICES.txt b/LSL2/STPROC/REPORT_SERVICES.txt index 44c81ed..7519724 100644 --- a/LSL2/STPROC/REPORT_SERVICES.txt +++ b/LSL2/STPROC/REPORT_SERVICES.txt @@ -82,7 +82,7 @@ Declare function Set_Printer, Get_Printer, Msg, Get_Status, Printer_Select, ob Declare function Schedule_Services, Error_Services, Location_Services, SRP_Array, Signature_Services, obj_RDS_Test Declare function Epi_Part_Services, SRP_Math, Database_Services, SRP_JSON, Reactor_Services, SRP_Datetime Declare function SRP_Array, Environment_Services, Logging_Services, Datetime, Select_Into, Wafer_Counter_Services -Declare function Lot_Services, Test_Run_Services, NCR_Services +Declare function Lot_Services, Test_Run_Services, NCR_Services, Date_Services Equ TAB TO \09\ @@ -2367,6 +2367,44 @@ Service GetOpenNCRReportJson() Response = OpenNCRReportJson end service + +/* * * * * * +Called from Reporting Services + +* * * * * */ +Service GetSLLReportJson(FromDt, ToDt) + + FromDt = IConv(FromDt, 'D') + ToDt = IConv(ToDt, 'D') + ErrorMessage = '' + SLLReportJson = '' + objSLLReportJson = '' + + If SRP_Json(objSLLReportJson, 'New', 'Array') then + For StartDt = FromDt to ToDt + ThisDate = Date_Services('ConvertDateTimeToISO8601', StartDt) + ThisDtASMDownLL = Reactor_Services('GetReactorsWithDownLLByDtm', StartDt + 1, 'ASM') + ThisDtASMPlusDownLL = Reactor_Services('GetReactorsWithDownLLByDtm', StartDt + 1, 'ASM+') + ThisDtHTRDownLL = Reactor_Services('GetReactorsWithDownLLByDtm', StartDt + 1, 'HTR') + ThisDtASMDownLLCount = DCount(ThisDtASMDownLL, @VM) + DCount(ThisDtASMPlusDownLL, @VM) + ThisDtHTRDownLLCount = DCount(ThisDtHTRDownLL, @VM) + objSLLDay = '' + If SRP_Json(objSLLDay, 'New', 'Object') then + SRP_Json(objSLLDay, 'SetValue', 'Date', ThisDate) + SRP_Json(objSLLDay, 'SetValue', 'ASM', ThisDtASMDownLLCount) + SRP_Json(objSLLDay, 'SetValue', 'HTR', ThisDtHTRDownLLCount) + SRP_Json(objSLLReportJson, 'Add', objSLLDay) + SRP_Json(objSLLDay, 'Release') + end + Next StartDt + SLLReportJson = SRP_Json(objSLLReportJson, 'Stringify', 'Fast') + SRP_Json(objSLLReportJson, 'Release') + end + + Response = SLLReportJson + +end service + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Internal GoSubs //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -2388,3 +2426,4 @@ OipiPrintError: return +