pre cutover push

This commit is contained in:
Infineon\StieberD
2024-09-04 20:33:41 -07:00
parent 6ea6969f4b
commit 7762b129af
2072 changed files with 130000 additions and 95295 deletions

View File

@ -66,6 +66,8 @@ $Insert DAILY_PERFORMANCE_REPORT_EQUATES
$Insert SCHED_DET_NG_EQUATES
$Insert MAKEUP_WAFERS_EQUATES
$Insert REACTOR_EQUATES
$Insert WAFER_COUNTER_EQUATES
$Insert REACTOR_DAILY_UPTIME_EQUATES
// Reduce modes (for Select statement)
Equ NEW_EXIST$ To 0
@ -78,7 +80,7 @@ Declare subroutine Report_Services, Make.List
Declare function Set_Printer, Get_Printer, Msg, Get_Status, Printer_Select, obj_Install, Dialog_Box, obj_Location
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
Declare function SRP_Array, Environment_Services, Logging_Services, Datetime, Select_Into, Wafer_Counter_Services
Equ TAB TO \09\
@ -107,33 +109,52 @@ Return Response or ""
Service GetMakeupInventoryReportJSON()
clearselect
Statement1 = 'LIST MAKEUP_WAFERS WO_NO CASS_NO CUST_NO CUST_PART_NO EPI_PART_NO PROD_ORD_NO PROD_VER_NO PS_NO RDS_NO REACT_TYPE SAP_BATCH_NO UNLOAD_DTM WAFER_SIZE WM_OUT_NO WFR_QTY BY WAFER_SIZE BY PS_NO'
Statement1 = 'LIST MAKEUP_WAFERS WO_NO CASS_NO CUST_NO CUST_PART_NO EPI_PART_NO PROD_ORD_NO PROD_VER_NO PS_NO RDS_NO REACT_TYPE SAP_BATCH_NO UNLOAD_DTM WAFER_SIZE WM_OUT_NO WFR_QTY EXPIRED BY WAFER_SIZE BY PS_NO'
MUInv = Select_Into(Statement1, 'EDT')
If Error_Services('NoError') then
MUInvJSON = ''
objJSON = ''
If SRP_JSON(objJSON, 'New', 'Object') then
objReactArray = ''
If SRP_JSON(objReactArray, 'New', 'Array') then
For each Row in MUInv using @FM setting fPos
If SRP_JSON(objRow, 'New', 'Object') then
SRP_JSON(objRow, 'SetValue', 'workOrderNo', Row<0, 2>, 'number')
SRP_JSON(objRow, 'SetValue', 'cassNo', Row<0, 3>, 'number')
SRP_JSON(objRow, 'SetValue', 'custNo', Row<0, 4>, 'number')
SRP_JSON(objRow, 'SetValue', 'custPartNo', Row<0, 5>)
SRP_JSON(objRow, 'SetValue', 'epiPartNo', Row<0, 6>)
SRP_JSON(objRow, 'SetValue', 'prodOrderNo', Row<0, 7>)
SRP_JSON(objRow, 'SetValue', 'prodVerNo', Row<0, 8>, 'number')
SRP_JSON(objRow, 'SetValue', 'prodSpecNo', Row<0, 9>, 'number')
SRP_JSON(objRow, 'SetValue', 'rdsNo', Row<0, 10>, 'number')
SRP_JSON(objRow, 'SetValue', 'reactType', Row<0, 11>)
SRP_JSON(objRow, 'SetValue', 'sapBatchNo', Row<0, 12>)
SRP_JSON(objRow, 'SetValue', 'unloadDtm', Row<0, 13>)
SRP_JSON(objRow, 'SetValue', 'wfrSize', Row<0, 14>)
SRP_JSON(objRow, 'SetValue', 'wmOutNo', Row<0, 15>)
SRP_JSON(objRow, 'SetValue', 'wfrQty', Row<0, 16>, 'number')
SRP_JSON(objReactArray, 'Add', objRow)
SRP_JSON(objRow, 'Release')
end
objRow = ''
If SRP_JSON(objRow, 'New', 'Object') then
SRP_JSON(objRow, 'SetValue', 'workOrderNo', Row<0, 2>, 'number')
SRP_JSON(objRow, 'SetValue', 'cassNo', Row<0, 3>, 'number')
SRP_JSON(objRow, 'SetValue', 'custNo', Row<0, 4>, 'number')
SRP_JSON(objRow, 'SetValue', 'custPartNo', Row<0, 5>)
SRP_JSON(objRow, 'SetValue', 'epiPartNo', Row<0, 6>)
SRP_JSON(objRow, 'SetValue', 'prodOrderNo', Row<0, 7>)
SRP_JSON(objRow, 'SetValue', 'prodVerNo', Row<0, 8>, 'number')
SRP_JSON(objRow, 'SetValue', 'prodSpecNo', Row<0, 9>, 'number')
SRP_JSON(objRow, 'SetValue', 'rdsNo', Row<0, 10>, 'number')
SRP_JSON(objRow, 'SetValue', 'reactType', Row<0, 11>)
SRP_JSON(objRow, 'SetValue', 'sapBatchNo', Row<0, 12>)
SRP_JSON(objRow, 'SetValue', 'unloadDtm', Row<0, 13>)
SRP_JSON(objRow, 'SetValue', 'wfrSize', Row<0, 14>)
SRP_JSON(objRow, 'SetValue', 'wmOutNo', Row<0, 15>)
SRP_JSON(objRow, 'SetValue', 'wfrQty', Row<0, 16>, 'number')
ReactType = Xlate('WO_MAT', Row<0, 2>:'*':Row<0, 3>, 'REACTOR_TYPE', 'X')
If ReactType NE 'EPP' then
LotID = Row<0, 10>
end else
LotID = Row<0, 2>:'*1*':Row<0, 3>
end
WcRec = Wafer_Counter_Services('GetLastScan', LotID, 'MU')
WcQty = WcRec<WAFER_COUNTER.SCAN_QTY$>
WcDtm = WcRec<WAFER_COUNTER.SCAN_DTM$>
SRP_JSON(objRow, 'SetValue', 'muWaferCounterQty', WcQty)
SRP_JSON(objRow, 'SetValue', 'muWaferCounterDtm', WcDtm)
SRP_JSON(objRow, 'SetValue', 'expired', IConv(Row<0, 17>, 'B'), 'Boolean')
SRP_JSON(objReactArray, 'Add', objRow)
SRP_JSON(objRow, 'Release')
end
Next Row
SRP_JSON(objJSON, 'Set', 'MUInvReport', objReactArray)
SRP_JSON(objReactArray, 'Release')
@ -466,14 +487,8 @@ Service GetMaterialTrackReport(RptColumns, LocationFilter)
PrintSetup<1,5> = '1' ;* Page Range
PrintSetup<1,6> = 7 ;* full mouse and keyboard support
If @UserName EQ 'MESCATXMUSER' then
PageSetup = '1' ;* Landscape
PrintSetup = '0' ;* Print to specific location
PrintPath = Printer_Select(PrinterID) ;* Select printer - Displays popup if PrinterPort not found
end else
PrintPath = ''
end
stat = Set_Printer('INIT',FileName,Title,Margins,PageSetup,PrintSetup,PrintPath)
PrintPath = ''
stat = Set_Printer('INIT',FileName,Title,Margins,PageSetup,PrintSetup,PrintPath)
IF stat < 0 THEN
ErrorMsg = 'Stat = ' : Stat : ', PrintPath = ' : PrintPath
@ -720,6 +735,7 @@ Service GetMetricsJSON(Date)
hMetricsObj = ''
hMetricsArray = ''
hDayMetricsObj = ''
hStatusObj = ''
If SRP_JSON(hMetricsObj, 'NEW', 'OBJECT') then
If SRP_JSON(hMetricsArray, 'NEW', 'ARRAY') then
DateIndex = 1
@ -794,53 +810,6 @@ end service
Service GetMaterialTrackJSON()
MatRep = Database_Services('ReadDataRow', 'SYSLISTS', 'MAT_REPORT')
If Error_Services('NoError') then
MatRepJSON = ''
If SRP_JSON(objJSON, 'New', 'Object') then
If SRP_JSON(objReactArray, 'New', 'Array') then
PrevReactNo = ''
For each Row in MatRep using @FM setting fPos
ReactNo = Row<0, 1>
If ReactNo NE PrevReactNo then
// Add current reactor object and release it
If Assigned(objReactor) then
// Set work order array
SRP_JSON(objReactor, 'Set', 'workOrders', objWorkOrderArray)
SRP_JSON(objWorkOrderArray, 'Release')
SRP_JSON(objReactArray, 'Add', objReactor)
SRP_JSON(objReactor, 'Release')
end
// Create a new reactor object
If SRP_JSON(objReactor, 'New', 'Object') then
SRP_JSON(objReactor, 'SetValue', 'reactorNo', ReactNo)
SRP_JSON(objReactor, 'SetValue', 'reactorType', Row<0, 2>)
// Create a work order array
If SRP_JSON(objWorkOrderArray, 'New', 'Array') then
GoSub AddWorkOrderJSON
end
end
end else
// Add to the current reactor object
GoSub AddWorkOrderJSON
end
PrevReactNo = ReactNo
Next Row
SRP_JSON(objJSON, 'Set', 'matReport', objReactArray)
SRP_JSON(objReactArray, 'Release')
end
Response = SRP_JSON(objJSON, 'Stringify', 'Styled')
SRP_JSON(objJSON, 'Release')
end
end
end service
Service GetMaterialTrackJSONNew()
MatRep = Database_Services('ReadDataRow', 'SYSLISTS', 'MAT_REPORT')
If Error_Services('NoError') then
MatRepJSON = ''
@ -889,8 +858,7 @@ Service GetMaterialTrackJSONNew()
end
Response = SRP_JSON(objJSON, 'Stringify', 'Styled')
SRP_JSON(objJSON, 'Release')
end
end
end
end service
@ -900,8 +868,8 @@ Service CalcDailyPerformanceData(DateOut)
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
Lock hSysLists, ServiceKeyID then
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '1'
LogData<3> = 'Begin service.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -926,8 +894,8 @@ Service CalcDailyPerformanceData(DateOut)
Reduce_Script = "WITH {DATE_OUT} EQ '":OConv(ReportDate, 'D4/'):"'"
mode = NEXT_CUR$
DeleteKeyList = ''
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '2'
LogData<3> = 'Calling Reduce with query "':Reduce_Script:'" using next available cursor.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -944,8 +912,8 @@ Service CalcDailyPerformanceData(DateOut)
End
end
End
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '3'
LogData<3> = 'Deleting selected records.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -968,8 +936,8 @@ Service CalcDailyPerformanceData(DateOut)
For counter = 0 To 8
ClearSelect counter
Next counter
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '4'
LogData<3> = 'Selecting RDS records using query "':Query:'".'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -1023,8 +991,8 @@ Service CalcDailyPerformanceData(DateOut)
QueryReactorNo = ReactorNo
end
Query = "SELECT SCHED_DET_NG WITH REACT_NO EQ ":QueryReactorNo:" AND WITH BLOCK_OUT NE 1 AND WITH START_DTM LT '":OConv(ReportDate + 1, 'DT2/^H'):"' AND WITH STOP_DTM GT '":OConv(ReportDate, 'DT2/^H'):"'"
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '5.':RIndex:'.1'
LogData<3> = 'Selecting SCHED_DET_NG records for reactor ':ReactorNo:' using query "':Query:'".'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -1043,8 +1011,8 @@ Service CalcDailyPerformanceData(DateOut)
SchedDetKeyIDs<0, -1> = SchedKeyID
Repeat
end
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '5.':RIndex:'.2'
LogData<3> = 'Reading SCHED_DET_NG records for reactor ':ReactorNo:'.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -1092,12 +1060,11 @@ Service CalcDailyPerformanceData(DateOut)
SchedEpiParts<0, -1> = Xlate('WO_LOG', SchedWONo, 'EPI_PART_NO', 'X')
SchedKeys<0, -1> = SchedDetKeyID
* SchedEpiParts<0, -1> = Xlate('PROD_SPEC', SchedPSN, 'EPI_PART_NO', 'X')
Next SchedDetKeyID
end
end
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '5.':RIndex:'.3'
LogData<3> = 'Writing new DAILY_PERFORMANCE records reactor ':ReactorNo:'.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -1139,8 +1106,8 @@ Service CalcDailyPerformanceData(DateOut)
sort_list = "DATE_OUT"
Reduce_Script = "WITH {REACTOR} EQ '":ReactorNo:"' AND WITH {DATE_OUT} EQ '":OConv(ReportDate, 'D4/'):"'"
mode = NEXT_CUR$
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '5.':RIndex:'.4'
LogData<3> = 'Selecting new DAILY_PERFORMANCE records for reactor ':ReactorNo:' using query "':Reduce_Script:'" via Reduce.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -1157,8 +1124,8 @@ Service CalcDailyPerformanceData(DateOut)
End
end
End
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '5.':RIndex:'.5'
LogData<3> = 'Updating new DAILY_PERFORMANCE records for reactor ':ReactorNo:'.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -1184,16 +1151,16 @@ Service CalcDailyPerformanceData(DateOut)
end
Next ReactorNo
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '6'
LogData<3> = 'Begin building DAILY_PERFORMANCE_REPORT rows.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
ReportKeys = ''
For each Row in ReportData using @FM setting fPos
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '6.':fPos
LogData<3> = 'Building DAILY_PERFORMANCE_REPORT row ':fPos:'.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -1233,7 +1200,7 @@ Service CalcDailyPerformanceData(DateOut)
EQU PRODUCTIVE$ To 1
EQU UNSCHED$ to 2
EQU SCHED$ to 3
TotalReactorData = Reactor_Services('GetReactorUptimePercentageByTimeSpan', Row<0, 7> , ActualStartDTM, ActualStopDTM)
TotalReactorData = Reactor_Services('GetReactorUptimeMetricsByTimeSpan', Row<0, 7> , ActualStartDTM, ActualStopDTM)
Rec<DAILY_PERFORMANCE_REPORT.TOTAL_PROD_PERCENT$> = TotalReactorData<1, PRODUCTIVE$>
Rec<DAILY_PERFORMANCE_REPORT.TOTAL_PROD_MIN$> = TotalReactorData<2, PRODUCTIVE$>
Rec<DAILY_PERFORMANCE_REPORT.TOTAL_UNSCHED_PERCENT$> = TotalReactorData<1, UNSCHED$>
@ -1270,8 +1237,8 @@ Service CalcDailyPerformanceData(DateOut)
sort_list = "DATE_OUT"
Reduce_Script = "WITH {DATE_OUT} EQ '":OConv(ReportDate, 'D4/'):"'"
mode = NEXT_CUR$
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '7'
LogData<3> = 'Selecing DAILY_PERFORMANCE_REPORT rows to delete using query "':Reduce_Script:'" via Reduce.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -1290,8 +1257,8 @@ Service CalcDailyPerformanceData(DateOut)
End
end
end
LogData = LoggingDtm
LogData = ''
LogData<1> = LoggingDtm
LogData<2> = '8'
LogData<3> = 'End service.'
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
@ -1301,6 +1268,180 @@ Service CalcDailyPerformanceData(DateOut)
end service
Service GenerateOrUpdateDailyReactorUptimeData()
//Generates new or updates existing Reactor uptime data for all reactors in the current day.
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
Lock hSysLists, ServiceKeyID then
Today = Date()
DataArray = ''
//ASM Reactors
ASMRecordKey = 'ASM*': Today
ASMUptimeRec = Reactor_Services('GetReactorUptimeMetricsByTypeAndTimeSpan', Today, Today + 1, 'ASM')
Database_Services('WriteDataRow', 'REACTOR_DAILY_UPTIME', ASMRecordKey, ASMUptimeRec, True$, False$, True$)
//HTR Reactors
HTRRecordKey = 'HTR*': Today
HTRUptimeRec = Reactor_Services('GetReactorUptimeMetricsByTypeAndTimeSpan', Today, Today + 1, 'HTR')
Database_Services('WriteDataRow', 'REACTOR_DAILY_UPTIME', HTRRecordKey, HTRUptimeRec, True$, False$, True$)
//EPP Reactors
EPPRecordKey = 'EPP*': Today
EPPUptimeRec = Reactor_Services('GetReactorUptimeMetricsByTypeAndTimeSpan', Today, Today + 1, 'EPP')
Database_Services('WriteDataRow', 'REACTOR_DAILY_UPTIME', EPPRecordKey, EPPUptimeRec, True$, False$, True$)
//All Reactors
ALLRecordKey = 'ALL*': Today
ALLUptimeRec = Reactor_Services('GetReactorUptimeMetricsByTypeAndTimeSpan', Today, Today + 1, 'ALL')
Database_Services('WriteDataRow', 'REACTOR_DAILY_UPTIME', ALLRecordKey, ALLUptimeRec, True$, False$, True$)
Unlock hSysLists, ServiceKeyID else Null
end
end service
Service GetDailyReactorUptimeDataJSON(ReportStartDt, ReportEndDt)
Response = ''
Begin Case
Case ReportStartDt EQ ''
Error_Services('Add', 'Start Date was not provided.')
Case ReportEndDt EQ ''
Error_Services('Add', 'End Date was not provided.')
End Case
ReportStartDT = IConv(ReportStartDt, 'D4/H')
ReportEndDt = IConv(ReportEndDt, 'D4/H')
//Calculate Days to include
FirstDay = SRP_Datetime('Date', ReportStartDt)
LastDay = SRP_Datetime('Date', ReportEndDt) - 1
DataArray = ''
ASMPeriodUptimeMinutes = 0
ASMPeriodAvailMinutes = 0
HTRPeriodUptimeMinutes = 0
HTRPeriodAvailMinutes = 0
EPPPeriodUptimeMinutes = 0
EPPPeriodAvailMinutes = 0
AllPeriodUptimeMinutes = 0
AllPeriodAvailMinutes = 0
ReactorUptimeJson = ''
//Create Root Object
If SRP_Json(ReactorUptimeJson, 'New') then
//Create an Array of days
ReactorUptimeDaysJson = ''
If SRP_Json(ReactorUptimeDaysJson, 'New', 'Array') then
//For each day create a daily uptime object
for day = FirstDay to LastDay
//Single Day Object
ASMUptimeKey = 'ASM*':day
HTRUptimeKey = 'HTR*':day
EPPUptimeKey = 'EPP*':day
AllUptimeKey = 'ALL*':day
ReactorUptimeDayJson = ''
If SRP_Json(ReactorUptimeDayJson, 'New') then
ASMUptime = 0
HTRUptime = 0
EPPUptime = 0
AllUptime = 0
If RowExists('REACTOR_DAILY_UPTIME', ASMUptimeKey) then
ASMUptimeRec = Database_Services('ReadDataRow', 'REACTOR_DAILY_UPTIME', ASMUptimeKey, True$, 0)
ASMUptime = ASMUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_PERCENTAGE$>
ASMUptime = SRP_Math('ROUND', ASMUptime * 100, 2)
ASMUptimeMinutes = ASMUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_MINUTES$>
ASMAvailMinutes = ASMUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_AVAIL_MINUTES$>
ASMPeriodUptimeMinutes += ASMUptimeMinutes
ASMPeriodAvailMinutes += ASMAvailMinutes
end
If RowExists('REACTOR_DAILY_UPTIME', HTRUptimeKey) then
HTRUptimeRec = Database_Services('ReadDataRow', 'REACTOR_DAILY_UPTIME', HTRUptimeKey, True$, 0)
HTRUptime = HTRUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_PERCENTAGE$>
HTRUptime = SRP_Math('ROUND', HTRUptime * 100, 2)
HTRUptimeMinutes = HTRUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_MINUTES$>
HTRAvailMinutes = HTRUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_AVAIL_MINUTES$>
HTRPeriodUptimeMinutes += HTRUptimeMinutes
HTRPeriodAvailMinutes += HTRAvailMinutes
end
If RowExists('REACTOR_DAILY_UPTIME', EPPUptimeKey) then
EPPUptimeRec = Database_Services('ReadDataRow', 'REACTOR_DAILY_UPTIME', EPPUptimeKey, True$, 0)
EPPUptime = EPPUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_PERCENTAGE$>
EPPUptime = SRP_Math('ROUND', EPPUptime * 100, 2)
EPPUptimeMinutes = EPPUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_MINUTES$>
EPPAvailMinutes = EPPUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_AVAIL_MINUTES$>
EPPPeriodUptimeMinutes += EPPUptimeMinutes
EPPPeriodAvailMinutes += EPPAvailMinutes
end
If RowExists('REACTOR_DAILY_UPTIME', AllUptimeKey) then
AllUptimeRec = Database_Services('ReadDataRow', 'REACTOR_DAILY_UPTIME', AllUptimeKey, True$, 0)
AllUptime = AllUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_PERCENTAGE$>
AllUptime = SRP_Math('ROUND', AllUptime * 100, 2)
AllUptimeMinutes = AllUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_MINUTES$>
AllAvailMinutes = AllUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_AVAIL_MINUTES$>
AllPeriodUptimeMinutes += AllUptimeMinutes
AllPeriodAvailMinutes += AllAvailMinutes
end
SRP_Json(ReactorUptimeDayJson, "SetValue", "ReportDate", Oconv(day, 'DT4/H'))
SRP_Json(ReactorUptimeDayJson, "SetValue", "ASMUptime", ASMUptime)
SRP_Json(ReactorUptimeDayJson, "SetValue", "ASMUptimeMinutes", ASMUptimeMinutes)
SRP_Json(ReactorUptimeDayJson, "SetValue", "ASMAvailMinutes", ASMAvailMinutes)
SRP_Json(ReactorUptimeDayJson, "SetValue", "HTRUptime", HTRUptime)
SRP_Json(ReactorUptimeDayJson, "SetValue", "HTRUptimeMinutes", HTRUptimeMinutes)
SRP_Json(ReactorUptimeDayJson, "SetValue", "HTRAvailMinutes", HTRAvailMinutes)
SRP_Json(ReactorUptimeDayJson, "SetValue", "EPPUptime", EPPUptime)
SRP_Json(ReactorUptimeDayJson, "SetValue", "EPPUptimeMinutes", EPPUptimeMinutes)
SRP_Json(ReactorUptimeDayJson, "SetValue", "EPPAvailMinutes", EPPAvailMinutes)
SRP_Json(ReactorUptimeDayJson, "SetValue", "AllUptime", AllUptime)
SRP_Json(ReactorUptimeDayJson, "SetValue", "AllUptimeMinutes", ALLUptimeMinutes)
SRP_Json(ReactorUptimeDayJson, "SetValue", "AllAvailMinutes", ALLAvailMinutes)
SRP_Json(ReactorUptimeDaysJson, "Add", ReactorUptimeDayJson)
//Release it
SRP_Json(ReactorUptimeDayJson, "Release")
end
Next day
//Add array to root object
SRP_Json(ReactorUptimeJson, 'Set', 'Days', ReactorUptimeDaysJson)
//Close out array
SRP_Json(ReactorUptimeDaysJson, 'Release')
end
ReactorUptimeWTDJson = ''
If SRP_Json(ReactorUptimeWTDJson, 'New') then
If ASMPeriodAvailMinutes GT 0 then
ASMWTDUptimePercent = SRP_Math('ROUND', (ASMPeriodUptimeMinutes / ASMPeriodAvailMinutes) * 100, 2)
end else
ASMWTDUptimePercent = 0
end
If HTRPeriodAvailMinutes GT 0 then
HTRWTDUptimePercent = SRP_Math('ROUND', (HTRPeriodUptimeMinutes / HTRPeriodAvailMinutes) * 100, 2)
end else
HTRWTDUptimePercent = 0
end
If EPPPeriodAvailMinutes GT 0 then
EPPWTDUptimePercent = SRP_Math('ROUND', (EPPPeriodUptimeMinutes / EPPPeriodAvailMinutes) * 100, 2)
end else
EPPWTDUptimePercent = 0
end
If ALLPeriodAvailMinutes GT 0 then
ALLWTDUptimePercent = SRP_Math('ROUND', (ALLPeriodUptimeMinutes / ALLPeriodAvailMinutes) * 100, 2)
end else
ALLWTDUptimePercent = 0
end
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ASMWtdUptimeMinutes", ASMPeriodUptimeMinutes)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ASMWTDAvailMinutes", ASMPeriodAvailMinutes)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ASMWTDUptimePercent", ASMWTDUptimePercent)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "HTRWTDUptimeMinutes", HTRPeriodUptimeMinutes)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "HTRWTDAvailMinutes", HTRPeriodAvailMinutes)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "HTRWTDUptimePercent", HTRWTDUptimePercent)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "EPPWTDUptimeMinutes", EPPPeriodUptimeMinutes)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "EPPWTDAvailMinutes", EPPPeriodAvailMinutes)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "EPPWTDUptimePercent", EPPWTDUptimePercent)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ALLWTDUptimeMinutes", ALLPeriodUptimeMinutes)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ALLWTDAvailMinutes", ALLPeriodAvailMinutes)
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ALLWTDUptimePercent", ALLWTDUptimePercent)
SRP_Json(ReactorUptimeJson, 'Set', 'WTDMetrics', ReactorUptimeWTDJson)
SRP_Json(ReactorUptimeWTDJson, 'Release')
end
// Now get the actual JSON
ResponseJson = SRP_Json(ReactorUptimeJson, "Stringify", "STYLED")
// All done with the root object
SRP_Json(ReactorUptimeJson, "Release")
Response = ResponseJson
end
end service
Service GetDailyPerformanceDataJSON(DateOut)
@ -1409,63 +1550,6 @@ end service
// Internal GoSubs
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
AddWorkOrderJSON:
// Create a new work order object and add it to the work order array
If SRP_JSON(objWorkOrder, 'New', 'Object') then
SRP_JSON(objWorkOrder, 'SetValue', 'workOrderNo', Row<0, 3>)
SRP_JSON(objWorkOrder, 'SetValue', 'sapProdNo', Row<0, 4>)
SRP_JSON(objWorkOrder, 'SetValue', 'subPartNo', Row<0, 5>)
SRP_JSON(objWorkOrder, 'SetValue', 'epiPartNo', Row<0, 6>)
WOQty = Row<0, 7>
Swap ',' with '' in WOQty
SRP_JSON(objWorkOrder, 'SetValue', 'woQty', WOQty)
RxQty = Row<0, 8>
Swap ',' with '' in RxQty
SRP_JSON(objWorkOrder, 'SetValue', 'rxQty', RxQty)
UnRelQty = Row<0, 9>
Swap ',' with '' in UnRelQty
SRP_JSON(objWorkOrder, 'SetValue', 'unRelQty', UnRelQty)
SRP_JSON(objWorkOrder, 'SetValue', 'kitLoc', Row<0, 10>)
KitQty = Row<0, 11>
Swap ',' with '' in KitQty
SRP_JSON(objWorkOrder, 'SetValue', 'kitQty', KitQty)
SRP_JSON(objWorkOrder, 'SetValue', 'cassDelta', Row<0, 12>)
// Add Kit RO Array
If SRP_JSON(objKitROArray, 'New', 'Array') then
KitCass = Row<0, 13>
For each CassNo in KitCass using ','
SRP_JSON(objKitROArray, 'AddValue', CassNo)
Next CassNo
SRP_JSON(objWorkOrder, 'Set', 'kitRunOrder', objKitROArray)
SRP_JSON(objKitROArray, 'Release')
end
// Add PTI RO Array
If SRP_JSON(objPtiROArray, 'New', 'Array') then
PtiCass = Row<0, 14>
For each CassNo in PtiCass using ','
SRP_JSON(objPtiROArray, 'AddValue', CassNo)
Next CassNo
SRP_JSON(objWorkOrder, 'Set', 'ptiRunOrder', objPtiROArray)
SRP_JSON(objPtiROArray, 'Release')
end
// Add Load RO Array
If SRP_JSON(objLoadROArray, 'New', 'Array') then
LoadCass = Row<0, 15>
For each CassNo in LoadCass using ','
SRP_JSON(objLoadROArray, 'AddValue', CassNo)
Next CassNo
SRP_JSON(objWorkOrder, 'Set', 'loadRunOrder', objLoadROArray)
SRP_JSON(objLoadROArray, 'Release')
end
SRP_JSON(objWorkOrder, 'SetValue', 'comments', '')
SRP_JSON(objWorkOrderArray, 'Add', objWorkOrder)
SRP_JSON(objWorkOrder, 'Release')
end
return
ReadRecord:
* Zero Break Flags To False
@ -1761,11 +1845,3 @@ ClearCursors:
return