open-insight/LSL2/OIEVENT/CLICK/SET_REACT_UTIL_NONPROD_WARN.RUN.json
2024-03-25 15:12:53 -07:00

11 lines
14 KiB
JSON

{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "declare function msg, end_window, fieldcount\r\ndeclare subroutine rlist, record_lock, create_note, btree.extract\r\n\r\n$insert logical\r\n$insert rlist_equates\r\n$insert msg_equates\r\n$insert react_servs_equ\r\n$insert reactor_pm_equ\r\n$insert react_mode_equ\r\n$insert react_util_equ\r\n$insert company_equ\r\n$insert quote_sigs_equ\r\n$insert spc_clean_hf_equ\r\n$insert spc_clean_hf_etch_equ\r\n$insert spc_clean_hf_akrion_equ\r\n$insert spc_clean_hf_etch_akrion_equ\r\n\r\nequ CrLf$ to char(13):char(10)\r\n\r\nCurrentSize = .gasbar->size\r\nNewSize = CurrentSize\r\nNewSize<3> = 0\r\n.gasbar->size = NewSize\r\n.gasbar->visible = 1\r\nopen 'REACT_UTIL' to RUTable else\r\n Void = msg( '', 'Unable to open REACT_UTIL table...' )\r\n return 0\r\nend\r\nopen 'CONFIG' to ConfigTable else\r\n Void = msg( '', 'Unable to open CONFIG table...' )\r\n return 0\r\nend\r\n\r\nToday = date()-2\r\nDay = 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'\r\nconvert ',' to @fm in Day\r\nCurDay = Day<mod(Today,7)+1>\r\nif CurDay = 'Monday' then\r\n DayToStart = oconv( Today-3, 'D4/' ) ;* to get from last friday\r\n DayToEnd = oconv( Today, 'D4/' ) ;* for today\r\nend else\r\n DayToStart = oconv( Today-1, 'D4/' ) ;* for yesterday\r\n DayToEnd = oconv( Today, 'D4/' ) ;* for today\r\nend\r\n\r\nStatement = 'SELECT REACT_UTIL BY REACTOR WITH START_DATE FROM ':quote(DayToStart):' TO ':quote(DayToEnd)\r\nStatement:= ' OR WITH END_DATE FROM ':quote(DayToStart):' TO ':quote(DayToEnd)\r\n\r\nrlist( Statement, target_activelist$, '', '', '' )\r\n@rn.counter = 0\r\nEof = false$\r\nOnePercent = iconv( @reccount*.01, 'MD0' )\r\nloop\r\n readnext Id else Eof = true$\r\nuntil Eof\r\n read RURec from RUTable, Id else\r\n Void = msg( '', 'Unable to read ':Id:' from REACT_UTIL table.' )\r\n return 0\r\n end\r\n * IF ELAPSED HOURS <> NULL THEN IF \r\n StartTime = RURec<react_util_start_time$>\r\n StartDate = RURec<react_util_start_date$>\r\n EndTime = RURec<react_util_end_time$>\r\n EndDate = RURec<react_util_end_date$>\r\n \r\n if ( RURec<react_util_mode$> <> \"P\" ) and ( RURec<react_util_mode$> <> \"D\" ) then ;* PRODUCTION OR DOWN NO MATERIAL\r\n ElapsedHours = xlate( 'REACT_UTIL', Id, 'ELAPSED_HOURS', 'X' )\r\n Reactor = RURec<react_util_reactor$>\r\n if ElapsedHours = '' then\r\n * NOW CALCULATE THE ELAPSED HOURS BASED ON RIGHT HERE RIGHT NOW\r\n EndDate = date()\r\n EndTime = time()\r\n DateDiff = EndDate - StartDate\r\n SecondsToAdd = 0\r\n if DateDiff then\r\n SecondsToAdd = 86400*DateDiff\r\n end\r\n Tans = ( EndTime + SecondsToAdd ) - StartTime\r\n ElapsedHours = ( Tans /3600) * 100\r\n end \r\n EndDate = oconv( EndDate, 'D2/' )\r\n EndTime = oconv( EndTime, 'MTH' )\r\n StartDate = oconv( StartDate, 'D2/' )\r\n StartTime = oconv( StartTime, 'MTH' ) \r\n ElapsedHours = oconv( ElapsedHours, 'MD2' ) \r\n if ElapsedHours > 12.00 then\r\n * SEND A MESSAGE TO\r\n CustName = xlate( 'COMPANY', RURec<react_util_cust_no$>, company_co_name$, 'X' )\r\n MsgText = ''\r\n MsgText = 'Reactor ':Reactor:' was in ':oconv( RURec<react_util_mode$>, '[REACT_MODE_CONV]' ):' mode from ':StartTime:' on ':StartDate\r\n MsgText:= ' to ':EndTime:' on ':EndDate:'. This is a total of ':ElapsedHours:' hours.':CrLf$\r\n * NOW PUT IN THE CURRENT MODE\r\n ModeConfig = xlate( 'CONFIG', 'REACT_MODE':Reactor, '', 'X' )\r\n MsgText:= 'Reactor ':Reactor:' is currently in ':ModeConfig<Mode$>:' as of ':oconv( date(), 'D2/' ):' at ':oconv( time(), 'MTH' )\r\n create_note( 'BRYCE_M', 'System', 'Reactor ':Reactor:' ':CustName, MsgText, '', '', '' )\r\n end\r\n end ;* IF IT IS ANYTHING BUT PRODUCTION THEN SEE IF IT HAS BEEN DOWN FOR 4+ HOURS\r\n if mod( @rn.counter, OnePercent ) else\r\n\t NewWidth = CurrentSize<3> * @rn.counter/@reccount\r\n\t .percent_complete->text = oconv(iconv( @rn.counter/@reccount*100, 'MD0' ), 'MD0' ):'%'\r\n\t NewSize<3> = NewWidth\r\n\t .gasbar->redraw = 0\r\n\t .gasbar->size = NewSize\r\n\t .gasbar->redraw = 1\r\n end\r\nrepeat\r\nif @rn.counter > 0 and @reccount > 0 then\r\n\tNewWidth = CurrentSize<3> * @rn.counter/@reccount\r\n\t.percent_complete->text = oconv(iconv( @rn.counter/@reccount*100, 'MD0' ), 'MD0' ):'%'\r\n\tNewSize<3> = NewWidth\r\n\t.gasbar->redraw = 0\r\n\t.gasbar->size = NewSize\r\n\t.gasbar->redraw = 1\r\nend\r\n****************************************************************************************************************************\r\n* THIS IS TO CHECK AND SEE IF THEY DID NOT PERFORM AN HF ETCH RATE TEST ON MONDAY, WEDNESDAY, OR FRIDAY\r\nToday = date()\r\nDay = mod( Today, 7 )\r\nDay += 1 ;* FOR THE 1 BASED ARRAY\r\nDays = 'Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday'\r\nconvert '/' to @fm in Days\r\nDayOut = Days<Day>\r\nDateString = ''\r\nif DayOut = 'Monday' then\r\n DateString = oconv( Today-3, 'D2/' ):'...':oconv( Today-1, 'D2/' )\r\n DayToCheck = ''\r\nend else\r\n DateString = '=':oconv( Today-1, 'D2/' )\r\n DayToCheck = oconv( Today-1, 'D2/' )\r\nend\r\nSearchStr = ''\r\nSearchStr<-1> = 'DATE_TESTED':@vm:DateString\r\nSearchStr := @fm\r\n* do a btree.extract\r\nopen 'DICT.SPC_CLEAN_HF_ETCH' to DictSPCCleanHFTable else\r\n msg( '', 'Unable to open DICT.SPC_CLEAN_HF_ETCH...' )\r\n return 1\r\nend\r\nKeys = ''\r\nbtree.extract( SearchStr, 'SPC_CLEAN_HF_ETCH', DictSPCCleanHFTable, Keys, '', Flag )\r\nif Flag <> 0 then\r\n Void = msg( '', 'Error while extracting SPC_CLEAN_HF_ETCH records...' )\r\n return 1\r\nend\r\nEngineers = xlate( 'CONFIG', 'QUOTE_SIGS', PSNPreProdSigs$, 'X' )\r\nif DayOut = 'Monday' then\r\n DatesToCheck = oconv( Today-3, 'D2/' ):@vm:oconv( Today-2, 'D2/' ):@vm:oconv( Today-1, 'D2/' )\r\n DatesTested = oconv( xlate( 'SPC_CLEAN_HF_ETCH', Keys, spc_clean_hf_etch_date_tested$, 'X' ), 'D2/' )\r\n DatesMissing = ''\r\n for i = 1 to 3\r\n locate DatesToCheck<1,i> in DatesTested using @vm setting FPos else\r\n DatesMissing := DatesToCheck<1,i>:', '\r\n end\r\n next i\r\n DatesMissing[-2,2] = ''\r\n if DatesMissing <> '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Etch removal test not performed on ':DatesMissing:'...Please make sure that this gets done today.'\r\n\t create_note( Engineers:@VM:'MICHAEL_M', 'System', 'HF Etch removal test not performed', MsgText, 'SPC_CLEAN_HF_ETCH', '', '' )\r\n\t * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY \r\n end\r\nend else\r\n\tif Keys = '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Etch removal test not performed on ':DayToCheck:'...Please make sure that this gets done today.'\r\n\t create_note( Engineers:@VM:'MICHAEL_M', 'System', 'HF Etch removal test not performed', MsgText, 'SPC_CLEAN_HF_ETCH', '', '' )\r\n\t * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY\r\n\tend\r\nend\r\n**************************************************************************************************************************\r\n\r\n\r\n* THIS IS TO CHECK AND SEE IF THEY DID NOT PERFORM AN HF PARTICLE TEST ON ANY DAY NEED TO CHECK WITH MICHELLE\r\n*********** THIS SHOULD CHECK FOR CP1, CP2 AND MEG AS WELL ****************************8\r\nToday = date()\r\nDay = mod( Today, 7 )\r\nDay += 1 ;* FOR THE 1 BASED ARRAY\r\nDays = 'Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday'\r\nconvert '/' to @fm in Days\r\nDayOut = Days<Day>\r\nDateString = ''\r\nif DayOut = 'Monday' then\r\n DateString = oconv( Today-3, 'D2/' ):'...':oconv( Today-1, 'D2/' )\r\n DayToCheck = ''\r\nend else\r\n DateString = '=':oconv( Today-1, 'D2/' )\r\n DayToCheck = oconv( Today-1, 'D2/' )\r\nend\r\nSearchStr = ''\r\nSearchStr<-1> = 'DATE_TESTED':@vm:DateString\r\nSearchStr := @fm\r\n* do a btree.extract\r\nopen 'DICT.SPC_CLEAN_HF' to DictSPCCleanHFTable else\r\n msg( '', 'Unable to open DICT.SPC_CLEAN_HF...' )\r\n return 1\r\nend\r\nKeys = ''\r\nbtree.extract( SearchStr, 'SPC_CLEAN_HF', DictSPCCleanHFTable, Keys, '', Flag )\r\nif Flag <> 0 then\r\n Void = msg( '', 'Error while extracting SPC_CLEAN_HF records...' )\r\n return 1\r\nend\r\nEngineers = xlate( 'CONFIG', 'QUOTE_SIGS', PSNPreProdSigs$, 'X' )\r\nif DayOut = 'Monday' then\r\n DatesToCheck = oconv( Today-3, 'D2/' ):@vm:oconv( Today-2, 'D2/' ):@vm:oconv( Today-1, 'D2/' )\r\n DatesTested = oconv( xlate( 'SPC_CLEAN_HF', Keys, spc_clean_hf_date_tested$, 'X' ), 'D2/' )\r\n DatesMissing = ''\r\n for i = 1 to 3\r\n locate DatesToCheck<1,i> in DatesTested using @vm setting FPos else\r\n DatesMissing := DatesToCheck<1,i>:', '\r\n end\r\n next i\r\n DatesMissing[-2,2] = ''\r\n if DatesMissing <> '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Particle test not performed on ':DatesMissing:'...Please make sure that this gets done today.'\r\n\t create_note( Engineers, 'System', 'HF Particle test not performed', MsgText, 'SPC_CLEAN_HF', '', '' )\r\n\t * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY \r\n end\r\nend else\r\n\tif Keys = '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Particle removal test not performed on ':DayToCheck:'...Please make sure that this gets done today.'\r\n\t create_note( Engineers, 'System', 'HF Particle removal test not performed', MsgText, 'SPC_CLEAN_HF', '', '' )\r\n\t * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY\r\n\tend\r\nend\r\n\r\n****************************************************************************************************************************\r\n\r\n* THIS IS TO CHECK AND SEE IF THEY DID NOT PERFORM AN HF AKRION PARTICLE TEST ON ANY DAY NEED TO CHECK WITH MICHELLE\r\nToday = date()\r\nDay = mod( Today, 7 )\r\nDay += 1 ;* FOR THE 1 BASED ARRAY\r\nDays = 'Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday'\r\nconvert '/' to @fm in Days\r\nDayOut = Days<Day>\r\nDateString = ''\r\nif DayOut = 'Monday' then\r\n DateString = oconv( Today-3, 'D2/' ):'...':oconv( Today-1, 'D2/' )\r\n DayToCheck = ''\r\nend else\r\n DateString = '=':oconv( Today-1, 'D2/' )\r\n DayToCheck = oconv( Today-1, 'D2/' )\r\nend\r\nSearchStr = ''\r\nSearchStr<-1> = 'DATE_TESTED':@vm:DateString\r\nSearchStr := @fm\r\n* do a btree.extract\r\nopen 'DICT.SPC_CLEAN_HF_AKRION' to DictSPCCleanHFTable else\r\n msg( '', 'Unable to open DICT.SPC_CLEAN_HF_AKRION...' )\r\n return 1\r\nend\r\nKeys = ''\r\nbtree.extract( SearchStr, 'SPC_CLEAN_HF_AKRION', DictSPCCleanHFTable, Keys, '', Flag )\r\nif Flag <> 0 then\r\n Void = msg( '', 'Error while extracting SPC_CLEAN_HF_AKRION records...' )\r\n return 1\r\nend\r\nEngineers = xlate( 'CONFIG', 'QUOTE_SIGS', PSNPreProdSigs$, 'X' )\r\nif DayOut = 'Monday' then\r\n DatesToCheck = oconv( Today-3, 'D2/' ):@vm:oconv( Today-2, 'D2/' ):@vm:oconv( Today-1, 'D2/' )\r\n DatesTested = oconv( xlate( 'SPC_CLEAN_HF_AKRION', Keys, spc_clean_hf_akrion_date_tested$, 'X' ), 'D2/' )\r\n DatesMissing = ''\r\n for i = 1 to 3\r\n locate DatesToCheck<1,i> in DatesTested using @vm setting FPos else\r\n DatesMissing := DatesToCheck<1,i>:', '\r\n end\r\n next i\r\n DatesMissing[-2,2] = ''\r\n if DatesMissing <> '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Particle test not performed on ':DatesMissing:'...Please make sure that this gets done today.'\r\n\t create_note( Engineers, 'System', 'HF Akrion Particle test not performed', MsgText, 'SPC_CLEAN_HF_AKRION', '', '' )\r\n\t * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY \r\n end\r\nend else\r\n\tif Keys = '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Particle removal test not performed on ':DayToCheck:'...Please make sure that this gets done today.'\r\n\t create_note( Engineers, 'System', 'HF Akrion Particle removal test not performed', MsgText, 'SPC_CLEAN_HF_AKRION', '', '' )\r\n\t * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY\r\n\tend\r\nend\r\n\r\n\r\n\r\n\r\n****************************************************************************************************************************\r\n* THIS IS TO CHECK AND SEE IF THEY DID NOT PERFORM AN HF ETCH AKRION TEST ON ANY DAY\r\nToday = date()\r\nDay = mod( Today, 7 )\r\nDay += 1 ;* FOR THE 1 BASED ARRAY\r\nDays = 'Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday'\r\nconvert '/' to @fm in Days\r\nDayOut = Days<Day>\r\nDateString = ''\r\nif DayOut = 'Monday' then\r\n DateString = oconv( Today-3, 'D2/' ):'...':oconv( Today-1, 'D2/' )\r\n DayToCheck = ''\r\nend else\r\n DateString = '=':oconv( Today-1, 'D2/' )\r\n DayToCheck = oconv( Today-1, 'D2/' )\r\nend\r\nSearchStr = ''\r\nSearchStr<-1> = 'DATE_TESTED':@vm:DateString\r\nSearchStr := @fm\r\n* do a btree.extract\r\nopen 'DICT.SPC_CLEAN_HF_ETCH_AKRION' to DictSPCCleanHFTable else\r\n msg( '', 'Unable to open DICT.SPC_CLEAN_HF_ETCH_AKRION...' )\r\n return 1\r\nend\r\nKeys = ''\r\nbtree.extract( SearchStr, 'SPC_CLEAN_HF_ETCH_AKRION', DictSPCCleanHFTable, Keys, '', Flag )\r\nif Flag <> 0 then\r\n Void = msg( '', 'Error while extracting SPC_CLEAN_HF_ETCH_AKRION records...' )\r\n return 1\r\nend\r\nEngineers = xlate( 'CONFIG', 'QUOTE_SIGS', PSNPreProdSigs$, 'X' )\r\nif DayOut = 'Monday' then\r\n DatesToCheck = oconv( Today-3, 'D2/' ):@vm:oconv( Today-2, 'D2/' ):@vm:oconv( Today-1, 'D2/' )\r\n DatesTested = oconv( xlate( 'SPC_CLEAN_HF_ETCH_AKRION', Keys, spc_clean_hf_etch_akrion_date_tested$, 'X' ), 'D2/' )\r\n DatesMissing = ''\r\n for i = 1 to 3\r\n locate DatesToCheck<1,i> in DatesTested using @vm setting FPos else\r\n DatesMissing := DatesToCheck<1,i>:', '\r\n end\r\n next i\r\n DatesMissing[-2,2] = ''\r\n if DatesMissing <> '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Etch removal test not performed on ':DatesMissing:'...Please make sure that this gets done today.'\r\n\t create_note( Engineers:@VM:'MICHAEL_M', 'System', 'HF Etch Akrion removal test not performed', MsgText, 'SPC_CLEAN_HF_ETCH_AKRION', '', '' )\r\n\t * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY \r\n end\r\nend else\r\n\tif Keys = '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Etch removal test not performed on ':DayToCheck:'...Please make sure that this gets done today.'\r\n\t create_note( Engineers:@VM:'MICHAEL_M', 'System', 'HF Etch Akrion removal test not performed', MsgText, 'SPC_CLEAN_HF_ETCH_AKRION', '', '' )\r\n\t * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY\r\n\tend\r\nend\r\nreturn 1"
}
}
}