From 9d4ae3c5b3f79ba9c0c50accf82a5fe8ed483a9e Mon Sep 17 00:00:00 2001 From: "Infineon\\StieberD" Date: Tue, 25 Feb 2025 09:39:41 -0700 Subject: [PATCH] added intrusive maintenance flow logic updated headers for nica order request Added reactor type support to nica checklists. Refactored flow logic to just use NICA_CHECKLISTS table. added feature flag support gated Feature Flags menu item to supervisors removed debug added auto comment for intr maint flows on reactor log, intr maint flow id to react servs form, and cancel order on unsign reactor log added exceptions for lamp and tc services, added control to edit flow id on react servs form, added auto-reactor log comment, added cancel order on unsign event removed debug modified NicaOrdersServices to use env variables for group resource name added logic to filter out service flow ids for servics with is_intrusive set to false, modified security group for feature flag menu, added ability to clear intr main flow id to react serv form removed unused equates --- .gitignore | 2 +- LSL2/OIEVENT/READ/REACT_SERVS..json | 2 +- LSL2/OIWIN/NDW_FEATURE_FLAGS.json | 389 + LSL2/OIWIN/NDW_MAIN.json | 935 +- LSL2/OIWIN/REACT_SERVS.json | 7515 +++++++++++++---- LSL2/POPUP/FEATURE_FLAGS_HISTORY.json | 103 + LSL2/STPROC/COMM_REACTOR_LOG.txt | 22 +- LSL2/STPROC/COMM_REACT_SERVS.txt | 674 +- LSL2/STPROC/DEVELOPMENT_SERVICES.txt | 57 +- LSL2/STPROC/ENVIRONMENT_SERVICES.txt | 16 + LSL2/STPROC/NDW_FEATURE_FLAGS_EVENTS.txt | 172 + LSL2/STPROC/NDW_MAIN_EVENTS.txt | 8 +- .../STPROC/NICA_ORDERS_CHECKLISTS_ACTIONS.txt | 233 + LSL2/STPROC/NICA_ORDERS_SERVICES.txt | 357 +- LSL2/STPROC/REACTOR_LOG_SERVICES.txt | 196 +- LSL2/STPROC/REACTOR_SERVICES.txt | 28 +- LSL2/STPROC/REACT_MODE_CHG_NG_EVENTS.txt | 154 +- LSL2/STPROC/REACT_SERVS_SERVICES.txt | 100 +- LSL2/STPROC/TEST_CRISP.txt | 33 - LSL2/STPROC/TEST_CRISP2.txt | 191 - LSL2/STPROC/TEST_CRISP3.txt | 86 - LSL2/STPROC/TEST_CRISP4.txt | 70 - LSL2/STPROC/TEST_CRISP5.txt | 9 - LSL2/STPROC/TEST_DANIEL.txt | 2336 ----- LSL2/STPROC/TEST_DANIEL2.txt | 1566 ---- LSL2/STPROC/TEST_DANIEL3_DEV.txt | 440 - LSL2/STPROC/TEST_DANIEL4.txt | 227 - LSL2/STPROC/TEST_DANIEL5.txt | 102 - LSL2/STPROC/TEST_DANIEL6.txt | 104 - LSL2/STPROC/TEST_DANIEL7.txt | 3172 ------- LSL2/STPROC/TEST_FRANCOIS.txt | 2239 ----- LSL2/STPROC/WO_DAILY_SCHED_ALL_COMM.txt | 44 +- LSL2/STPROCINS/FEATURE_FLAGS_EQUATES.txt | 17 + LSL2/STPROCINS/NICA_CHECKLISTS_EQUATES.txt | 16 + .../NICA_ORDERS_CHECKLISTS_EQUATES.txt | 13 + LSL2/STPROCINS/NICA_ORDERS_EQUATES.txt | 14 +- LSL2/STPROCINS/REACTOR_EQUATES.txt | 150 +- LSL2/STPROCINS/REACT_SERVS_EQUATES.txt | 48 +- 38 files changed, 8351 insertions(+), 13489 deletions(-) create mode 100644 LSL2/OIWIN/NDW_FEATURE_FLAGS.json create mode 100644 LSL2/POPUP/FEATURE_FLAGS_HISTORY.json create mode 100644 LSL2/STPROC/NDW_FEATURE_FLAGS_EVENTS.txt create mode 100644 LSL2/STPROC/NICA_ORDERS_CHECKLISTS_ACTIONS.txt delete mode 100644 LSL2/STPROC/TEST_CRISP.txt delete mode 100644 LSL2/STPROC/TEST_CRISP2.txt delete mode 100644 LSL2/STPROC/TEST_CRISP3.txt delete mode 100644 LSL2/STPROC/TEST_CRISP4.txt delete mode 100644 LSL2/STPROC/TEST_CRISP5.txt delete mode 100644 LSL2/STPROC/TEST_DANIEL.txt delete mode 100644 LSL2/STPROC/TEST_DANIEL2.txt delete mode 100644 LSL2/STPROC/TEST_DANIEL3_DEV.txt delete mode 100644 LSL2/STPROC/TEST_DANIEL4.txt delete mode 100644 LSL2/STPROC/TEST_DANIEL5.txt delete mode 100644 LSL2/STPROC/TEST_DANIEL6.txt delete mode 100644 LSL2/STPROC/TEST_DANIEL7.txt delete mode 100644 LSL2/STPROC/TEST_FRANCOIS.txt create mode 100644 LSL2/STPROCINS/FEATURE_FLAGS_EQUATES.txt create mode 100644 LSL2/STPROCINS/NICA_CHECKLISTS_EQUATES.txt create mode 100644 LSL2/STPROCINS/NICA_ORDERS_CHECKLISTS_EQUATES.txt diff --git a/.gitignore b/.gitignore index 2cb2f43..69b4cc3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -LSL2/STPROC/TEST_DANIEL3.txt +LSL2/STPROC/TEST_DANIEL*.txt LSL2/STPROC/TEST_DAKOTA.txt diff --git a/LSL2/OIEVENT/READ/REACT_SERVS..json b/LSL2/OIEVENT/READ/REACT_SERVS..json index 4e75d65..a655682 100644 --- a/LSL2/OIEVENT/READ/REACT_SERVS..json +++ b/LSL2/OIEVENT/READ/REACT_SERVS..json @@ -5,7 +5,7 @@ }, "body": { "record1": { - "<1>": "declare subroutine forward_event, security_err_msg\r\ndeclare function company_comm, msg, security_check, post_event, rowexists\r\ndeclare function fieldcount, send_event, scroll_enable\r\n$insert logical\r\n$insert security_rights_equ\r\n\r\n\r\nNewRecord = false$\r\nif rowexists( 'REACT_SERVS', .serv_id->text ) then\r\n ReadOk = true$\r\nend else\r\n * user is trying to add new do they have write rights\r\n if security_check( 'React Servs', Write$ ) then\r\n ReadOk = true$ \r\n end else\r\n security_err_msg( 'React Servs', Write$ )\t \r\n\t ReadOk = false$\r\n\t .serv_id->text = ''\r\n\t Void = post_event( CtrlEntId, 'CLEAR', False$, True$ )\r\n end\r\n NewRecord = true$\r\nend\r\nif ReadOk then\r\n if get_property( @window, '@NoRead' ) then\r\n Void = set_property( @window, '@NoRead', 0 )\r\n end else\r\n * no qbf active do the read\r\n * if it is active the read already took place\r\n forward_event()\r\n end\r\n ServId = .serv_id->text\r\n ProtectVar = 'ENTRY_ID/ENTRY_DATE/SERV_CAT_DESC'\r\n swap '/' with @rm:@window:'.' in ProtectVar\r\n ProtectVar = @window:'.':ProtectVar\r\n Void = set_property( ProtectVar, 'ENABLED', 0 )\r\n if rowexists( 'REACT_SERVS', ServId ) else\r\n .entry_id->text = oconv( @user4, '[XLATE_CONV,LSL_USERS*FIRST_LAST]' )\r\n .entry_date->text = oconv( date(), 'D2/' ) \r\n .graphite_or_tube->value = ''\r\n end \r\n if NewRecord else\r\n\t if security_check( 'React Servs', Edit$ ) else\r\n\t * protect all fields\r\n\t AllControls = utility( 'OBJECTLIST', @window, '' )\r\n\t Acnt = fieldcount( AllControls, @fm ) \r\n\t for i = 1 to Acnt \r\n\t ThisControl = AllControls\r\n\t if ThisControl[-6,6] = '_LABEL' or index( ThisControl, 'MENU', 1 ) or index( ThisControl, 'TEXT', 1 ) else\r\n\t void = set_property( ThisControl, 'ENABLED', 0 )\r\n\t end \r\n\t next i \r\n Void = scroll_enable()\t \t \t \r\n\t end\r\n end\r\nend\r\nRETURN 0\r\n" + "<1>": "declare subroutine forward_event, security_err_msg, Set_Property\r\ndeclare function company_comm, msg, security_check, post_event, rowexists\r\ndeclare function fieldcount, send_event, scroll_enable\r\n$insert logical\r\n$insert security_rights_equ\r\n\r\n\r\nNewRecord = false$\r\nif rowexists( 'REACT_SERVS', .serv_id->text ) then\r\n ReadOk = true$\r\nend else\r\n * user is trying to add new do they have write rights\r\n if security_check( 'React Servs', Write$ ) then\r\n ReadOk = true$ \r\n end else\r\n security_err_msg( 'React Servs', Write$ )\t \r\n\t ReadOk = false$\r\n\t .serv_id->text = ''\r\n\t Void = post_event( CtrlEntId, 'CLEAR', False$, True$ )\r\n end\r\n NewRecord = true$\r\nend\r\nif ReadOk then\r\n if get_property( @window, '@NoRead' ) then\r\n Void = set_property( @window, '@NoRead', 0 )\r\n end else\r\n * no qbf active do the read\r\n * if it is active the read already took place\r\n forward_event()\r\n end\r\n ServId = .serv_id->text\r\n ProtectVar = 'ENTRY_ID/ENTRY_DATE/SERV_CAT_DESC'\r\n swap '/' with @rm:@window:'.' in ProtectVar\r\n ProtectVar = @window:'.':ProtectVar\r\n Void = set_property( ProtectVar, 'ENABLED', 0 )\r\n if rowexists( 'REACT_SERVS', ServId ) else\r\n .entry_id->text = oconv( @user4, '[XLATE_CONV,LSL_USERS*FIRST_LAST]' )\r\n .entry_date->text = oconv( date(), 'D2/' ) \r\n .graphite_or_tube->value = ''\r\n end \r\n if NewRecord else\r\n\t if security_check( 'React Servs', Edit$ ) else\r\n\t * protect all fields\r\n\t AllControls = utility( 'OBJECTLIST', @window, '' )\r\n\t Acnt = fieldcount( AllControls, @fm ) \r\n\t for i = 1 to Acnt \r\n\t ThisControl = AllControls\r\n\t if ThisControl[-6,6] = '_LABEL' or index( ThisControl, 'MENU', 1 ) or index( ThisControl, 'TEXT', 1 ) else\r\n\t void = set_property( ThisControl, 'ENABLED', 0 )\r\n\t end \r\n\t next i \r\n Void = scroll_enable()\t \t \t \r\n\t end\r\n End\r\n \r\n ChkVal = Get_Property(@WINDOW:'.CHB_IS_INTRUSIVE', 'CHECK')\r\n If ChkVal EQ '' then ChkVal = False$\r\n Set_Property(@WINDOW:'.CBO_INTR_MAINT_FLOW', 'ENABLED', ChkVal) \r\nend\r\nRETURN 0\r\n" } } } \ No newline at end of file diff --git a/LSL2/OIWIN/NDW_FEATURE_FLAGS.json b/LSL2/OIWIN/NDW_FEATURE_FLAGS.json new file mode 100644 index 0000000..a746195 --- /dev/null +++ b/LSL2/OIWIN/NDW_FEATURE_FLAGS.json @@ -0,0 +1,389 @@ +{ + "header": { + "version": 1, + "type": "record" + }, + "body": { + "record1": { + "<1>": "1010", + "<2>": "1", + "<3>": "" + }, + "record2": { + "<1>": { + "<1,1>": "NDW_FEATURE_FLAGS", + "<1,2>": "", + "<1,3>": "WINDOW", + "<1,4>": "", + "<1,5>": "0", + "<1,6>": "0", + "<1,7>": "-990", + "<1,8>": "-595", + "<1,9>": "Feature Flags", + "<1,10>": { + "<1,10,1>": "0x84CF0000", + "<1,10,2>": "0x100" + }, + "<1,11>": { + "<1,11,1>": "0x8000", + "<1,11,2>": "0x80000000" + }, + "<1,12>": "", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, + "<1,14>": "", + "<1,15>": "", + "<1,16>": "", + "<1,17>": "", + "<1,18>": { + "<1,18,1>": { + "<1,18,1,1>": "X", + "<1,18,1,2>": "EXECUTE", + "<1,18,1,3>": "@WINDOW_EVENTS", + "<1,18,1,4>": { + "<1,18,1,4,1>": "@SELF", + "<1,18,1,4,2>": "@EVENT", + "<1,18,1,4,3>": "@PARAM1", + "<1,18,1,4,4>": "@PARAM2", + "<1,18,1,4,5>": "@PARAM3", + "<1,18,1,4,6>": "@PARAM4", + "<1,18,1,4,7>": "@PARAM5", + "<1,18,1,4,8>": "@PARAM6" + }, + "<1,18,1,5>": "", + "<1,18,1,6>": "", + "<1,18,1,7>": "", + "<1,18,1,8>": "", + "<1,18,1,9>": "", + "<1,18,1,10>": "", + "<1,18,1,11>": "", + "<1,18,1,12>": "", + "<1,18,1,13>": "", + "<1,18,1,14>": "", + "<1,18,1,15>": "COMMEVT", + "<1,18,1,16>": "0" + } + }, + "<1,19>": "CREATE", + "<1,20>": "", + "<1,21>": "", + "<1,22>": "", + "<1,23>": "", + "<1,24>": { + "<1,24,1>": "", + "<1,24,2>": "0", + "<1,24,3>": "0", + "<1,24,4>": "0", + "<1,24,5>": "", + "<1,24,6>": "0", + "<1,24,7>": "", + "<1,24,8>": "", + "<1,24,9>": "", + "<1,24,10>": "0", + "<1,24,11>": "0", + "<1,24,12>": "0", + "<1,24,13>": "0", + "<1,24,14>": "0", + "<1,24,15>": "0", + "<1,24,16>": "0", + "<1,24,17>": "0" + }, + "<1,25>": "", + "<1,26>": "", + "<1,27>": "", + "<1,28>": "", + "<1,29>": "", + "<1,30>": "", + "<1,31>": "", + "<1,32>": "", + "<1,33>": "", + "<1,34>": "LSL2*IMAGE*ICO*INFINEON", + "<1,35>": "", + "<1,36>": "", + "<1,37>": { + "<1,37,1>": "0X10001", + "<1,37,2>": "0X10001" + }, + "<1,38>": "", + "<1,39>": "", + "<1,40>": "", + "<1,41>": "", + "<1,42>": "", + "<1,43>": "", + "<1,44>": "", + "<1,45>": "", + "<1,46>": "", + "<1,47>": "", + "<1,48>": "", + "<1,49>": "", + "<1,50>": "", + "<1,51>": "", + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": "", + "<1,56>": "", + "<1,57>": "", + "<1,58>": "", + "<1,59>": "", + "<1,60>": "", + "<1,61>": "", + "<1,62>": { + "<1,62,1>": "0", + "<1,62,2>": "", + "<1,62,3>": "", + "<1,62,4>": "0", + "<1,62,5>": "0", + "<1,62,6>": "0", + "<1,62,7>": "", + "<1,62,8>": "0.50", + "<1,62,9>": "5.00", + "<1,62,10>": "0.00" + }, + "<1,63>": "", + "<1,64>": "", + "<1,65>": "", + "<1,66>": "", + "<1,67>": "", + "<1,68>": "", + "<1,69>": "", + "<1,70>": "", + "<1,71>": "", + "<1,72>": "", + "<1,73>": "", + "<1,74>": "", + "<1,75>": "", + "<1,76>": "", + "<1,77>": "", + "<1,78>": "", + "<1,79>": "", + "<1,80>": "", + "<1,81>": "", + "<1,82>": "", + "<1,83>": "", + "<1,84>": "", + "<1,85>": "", + "<1,86>": "", + "<1,87>": "", + "<1,88>": "", + "<1,89>": "", + "<1,90>": "", + "<1,91>": "", + "<1,92>": "", + "<1,93>": "", + "<1,94>": "", + "<1,95>": "", + "<1,96>": "", + "<1,97>": "", + "<1,98>": "", + "<1,99>": "", + "<1,100>": "", + "<1,101>": "", + "<1,102>": "", + "<1,103>": "LSL2*STPROC**NDW_FEATURE_FLAGS_EVENTS", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "0", + "<1,107>": "", + "<1,108>": "" + } + }, + "record3": { + "<1>": { + "<1,1>": "OLE_EDT_FEATURE_FLAGS", + "<1,2>": "", + "<1,3>": "OLECONTROL.SRP.EditTable.1", + "<1,4>": "NDW_FEATURE_FLAGS", + "<1,5>": "12", + "<1,6>": "12", + "<1,7>": "-14", + "<1,8>": "-11", + "<1,9>": "SRP.EditTable.1", + "<1,10>": { + "<1,10,1>": "0x56000000", + "<1,10,2>": "0x0" + }, + "<1,11>": { + "<1,11,1>": "0xC004", + "<1,11,2>": "0x80000000" + }, + "<1,12>": "1", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, + "<1,14>": "0", + "<1,15>": { + "<1,15,1>": { + "<1,15,1,1>": "Segoe UI", + "<1,15,1,2>": "-12", + "<1,15,1,3>": "400", + "<1,15,1,4>": "0", + "<1,15,1,5>": "0", + "<1,15,1,6>": "0", + "<1,15,1,7>": "0", + "<1,15,1,8>": "34", + "<1,15,1,9>": "0", + "<1,15,1,10>": "3", + "<1,15,1,11>": "2", + "<1,15,1,12>": "1" + } + }, + "<1,16>": "", + "<1,17>": "", + "<1,18>": { + "<1,18,1>": { + "<1,18,1,1>": "X", + "<1,18,1,2>": "EXECUTE", + "<1,18,1,3>": "@WINDOW_EVENTS", + "<1,18,1,4>": { + "<1,18,1,4,1>": "@SELF", + "<1,18,1,4,2>": "@EVENT", + "<1,18,1,4,3>": "@PARAM1", + "<1,18,1,4,4>": "@PARAM2", + "<1,18,1,4,5>": "@PARAM3", + "<1,18,1,4,6>": "@PARAM4", + "<1,18,1,4,7>": "@PARAM5", + "<1,18,1,4,8>": "@PARAM6" + }, + "<1,18,1,5>": "", + "<1,18,1,6>": "", + "<1,18,1,7>": "", + "<1,18,1,8>": "", + "<1,18,1,9>": "", + "<1,18,1,10>": "", + "<1,18,1,11>": "", + "<1,18,1,12>": "", + "<1,18,1,13>": "", + "<1,18,1,14>": "", + "<1,18,1,15>": "COMMEVT", + "<1,18,1,16>": "0" + } + }, + "<1,19>": "OLE", + "<1,20>": "", + "<1,21>": "", + "<1,22>": "", + "<1,23>": "", + "<1,24>": "", + "<1,25>": "", + "<1,26>": "", + "<1,27>": "", + "<1,28>": "", + "<1,29>": "", + "<1,30>": "", + "<1,31>": "", + "<1,32>": "", + "<1,33>": "", + "<1,34>": "", + "<1,35>": "", + "<1,36>": "0000000000000000", + "<1,37>": "", + "<1,38>": "", + "<1,39>": "", + "<1,40>": "", + "<1,41>": "", + "<1,42>": "", + "<1,43>": "", + "<1,44>": "", + "<1,45>": "", + "<1,46>": "", + "<1,47>": "", + "<1,48>": "", + "<1,49>": "", + "<1,50>": "", + "<1,51>": "", + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": { + "<1,55,1>": "OLE.AllowXPTheme", + "<1,55,2>": "OLE.ComboDropDown", + "<1,55,3>": "OLE.DblClickToEdit", + "<1,55,4>": "OLE.EditContextMenu", + "<1,55,5>": "OLE.EditText", + "<1,55,6>": "OLE.Focus", + "<1,55,7>": "OLE.HeaderRowCount", + "<1,55,8>": "OLE.Modified", + "<1,55,9>": "OLE.PassEnterKey", + "<1,55,10>": "OLE.ScrollBarsVisible", + "<1,55,11>": "OLE.SingleEscape", + "<1,55,12>": "OLE.TextRenderStyle" + }, + "<1,56>": { + "<1,56,1>": "0", + "<1,56,2>": "0", + "<1,56,3>": "1", + "<1,56,4>": "1", + "<1,56,5>": "", + "<1,56,6>": "0", + "<1,56,7>": "1", + "<1,56,8>": "0", + "<1,56,9>": "0", + "<1,56,10>": "Auto|Auto", + "<1,56,11>": "0", + "<1,56,12>": "EditField|Ellipses" + }, + "<1,57>": "", + "<1,58>": "", + "<1,59>": "", + "<1,60>": "", + "<1,61>": "", + "<1,62>": "", + "<1,63>": "", + "<1,64>": "", + "<1,65>": "", + "<1,66>": "", + "<1,67>": "", + "<1,68>": "", + "<1,69>": "", + "<1,70>": "", + "<1,71>": "", + "<1,72>": "", + "<1,73>": "", + "<1,74>": "", + "<1,75>": "", + "<1,76>": "", + "<1,77>": "", + "<1,78>": "", + "<1,79>": "", + "<1,80>": "", + "<1,81>": "", + "<1,82>": "", + "<1,83>": "", + "<1,84>": "", + "<1,85>": "", + "<1,86>": "", + "<1,87>": "", + "<1,88>": "", + "<1,89>": "", + "<1,90>": "", + "<1,91>": "", + "<1,92>": "", + "<1,93>": "", + "<1,94>": "", + "<1,95>": "", + "<1,96>": "", + "<1,97>": "", + "<1,98>": "", + "<1,99>": "", + "<1,100>": "", + "<1,101>": "", + "<1,102>": "", + "<1,103>": "", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "", + "<1,107>": "", + "<1,108>": "" + } + }, + "record4": { + "<1>": "" + } + } +} \ No newline at end of file diff --git a/LSL2/OIWIN/NDW_MAIN.json b/LSL2/OIWIN/NDW_MAIN.json index 6c6fab9..40a3b81 100644 --- a/LSL2/OIWIN/NDW_MAIN.json +++ b/LSL2/OIWIN/NDW_MAIN.json @@ -2738,7 +2738,7 @@ "<1,1,6>": "", "<1,1,7>": "", "<1,1,8>": "", - "<1,1,9>": "274" + "<1,1,9>": "275" }, "<1,2>": { "<1,2,1>": "POPUP", @@ -4101,7 +4101,8 @@ "<1,63,16>": "", "<1,63,17>": "", "<1,63,18>": "", - "<1,63,19>": "" + "<1,63,19>": "", + "<1,63,20>": "" }, "<1,64>": { "<1,64,1>": "ITEM", @@ -7295,7 +7296,7 @@ }, "<1,209>": { "<1,209,1>": "POPUP", - "<1,209,2>": "19", + "<1,209,2>": "20", "<1,209,3>": "ADMIN", "<1,209,4>": "&Admin", "<1,209,5>": "0", @@ -7318,13 +7319,13 @@ "<1,210>": { "<1,210,1>": "ITEM", "<1,210,2>": "", - "<1,210,3>": "ADMIN.EXPORTS", - "<1,210,4>": "Exports", - "<1,210,5>": "0", + "<1,210,3>": "ADMIN.FEATURE_FLAGS", + "<1,210,4>": "Feature Flags", + "<1,210,5>": "1", "<1,210,6>": "0", "<1,210,7>": "0", "<1,210,8>": "0", - "<1,210,9>": "Data Exports", + "<1,210,9>": "", "<1,210,10>": "", "<1,210,11>": "0", "<1,210,12>": "", @@ -7338,15 +7339,15 @@ "<1,210,20>": "" }, "<1,211>": { - "<1,211,1>": "SEPARATOR", + "<1,211,1>": "ITEM", "<1,211,2>": "", - "<1,211,3>": "ADMIN.SEP112", - "<1,211,4>": "SEP112", + "<1,211,3>": "ADMIN.EXPORTS", + "<1,211,4>": "Exports", "<1,211,5>": "0", "<1,211,6>": "0", "<1,211,7>": "0", "<1,211,8>": "0", - "<1,211,9>": "", + "<1,211,9>": "Data Exports", "<1,211,10>": "", "<1,211,11>": "0", "<1,211,12>": "", @@ -7360,15 +7361,15 @@ "<1,211,20>": "" }, "<1,212>": { - "<1,212,1>": "POPUP", - "<1,212,2>": "6", - "<1,212,3>": "ADMIN.SAP_INTERFACE", - "<1,212,4>": "SAP Interface", + "<1,212,1>": "SEPARATOR", + "<1,212,2>": "", + "<1,212,3>": "ADMIN.SEP112", + "<1,212,4>": "SEP112", "<1,212,5>": "0", "<1,212,6>": "0", "<1,212,7>": "0", "<1,212,8>": "0", - "<1,212,9>": "SAP Interface", + "<1,212,9>": "", "<1,212,10>": "", "<1,212,11>": "0", "<1,212,12>": "", @@ -7382,15 +7383,15 @@ "<1,212,20>": "" }, "<1,213>": { - "<1,213,1>": "ITEM", - "<1,213,2>": "", - "<1,213,3>": "ADMIN.SAP_INTERFACE.POSTING_ERROR_LOG", - "<1,213,4>": "Posting Error Log", + "<1,213,1>": "POPUP", + "<1,213,2>": "6", + "<1,213,3>": "ADMIN.SAP_INTERFACE", + "<1,213,4>": "SAP Interface", "<1,213,5>": "0", "<1,213,6>": "0", "<1,213,7>": "0", "<1,213,8>": "0", - "<1,213,9>": "", + "<1,213,9>": "SAP Interface", "<1,213,10>": "", "<1,213,11>": "0", "<1,213,12>": "", @@ -7406,8 +7407,8 @@ "<1,214>": { "<1,214,1>": "ITEM", "<1,214,2>": "", - "<1,214,3>": "ADMIN.SAP_INTERFACE.SAP_COMM_ERROR_LOG", - "<1,214,4>": "SAP Comm Error Log", + "<1,214,3>": "ADMIN.SAP_INTERFACE.POSTING_ERROR_LOG", + "<1,214,4>": "Posting Error Log", "<1,214,5>": "0", "<1,214,6>": "0", "<1,214,7>": "0", @@ -7428,8 +7429,8 @@ "<1,215>": { "<1,215,1>": "ITEM", "<1,215,2>": "", - "<1,215,3>": "ADMIN.SAP_INTERFACE.SAP_COMM_BUFFER", - "<1,215,4>": "SAP Comm Buffer", + "<1,215,3>": "ADMIN.SAP_INTERFACE.SAP_COMM_ERROR_LOG", + "<1,215,4>": "SAP Comm Error Log", "<1,215,5>": "0", "<1,215,6>": "0", "<1,215,7>": "0", @@ -7450,8 +7451,8 @@ "<1,216>": { "<1,216,1>": "ITEM", "<1,216,2>": "", - "<1,216,3>": "ADMIN.SAP_INTERFACE.SAP_COMM_MONITOR", - "<1,216,4>": "SAP Comm Monitor", + "<1,216,3>": "ADMIN.SAP_INTERFACE.SAP_COMM_BUFFER", + "<1,216,4>": "SAP Comm Buffer", "<1,216,5>": "0", "<1,216,6>": "0", "<1,216,7>": "0", @@ -7472,8 +7473,8 @@ "<1,217>": { "<1,217,1>": "ITEM", "<1,217,2>": "", - "<1,217,3>": "ADMIN.SAP_INTERFACE.PRINT_MB1B_EXCEPTIONS", - "<1,217,4>": "Print MB1B Exceptions", + "<1,217,3>": "ADMIN.SAP_INTERFACE.SAP_COMM_MONITOR", + "<1,217,4>": "SAP Comm Monitor", "<1,217,5>": "0", "<1,217,6>": "0", "<1,217,7>": "0", @@ -7494,8 +7495,8 @@ "<1,218>": { "<1,218,1>": "ITEM", "<1,218,2>": "", - "<1,218,3>": "ADMIN.SAP_INTERFACE.PURGE_MB1B_EXCEPTIONS", - "<1,218,4>": "Purge MB1B Exceptions", + "<1,218,3>": "ADMIN.SAP_INTERFACE.PRINT_MB1B_EXCEPTIONS", + "<1,218,4>": "Print MB1B Exceptions", "<1,218,5>": "0", "<1,218,6>": "0", "<1,218,7>": "0", @@ -7514,15 +7515,15 @@ "<1,218,20>": "" }, "<1,219>": { - "<1,219,1>": "POPUP", - "<1,219,2>": "2", - "<1,219,3>": "ADMIN.FABTIME_SUPPORT", - "<1,219,4>": "FabTime Interface", + "<1,219,1>": "ITEM", + "<1,219,2>": "", + "<1,219,3>": "ADMIN.SAP_INTERFACE.PURGE_MB1B_EXCEPTIONS", + "<1,219,4>": "Purge MB1B Exceptions", "<1,219,5>": "0", "<1,219,6>": "0", "<1,219,7>": "0", "<1,219,8>": "0", - "<1,219,9>": "FabTime Interface", + "<1,219,9>": "", "<1,219,10>": "", "<1,219,11>": "0", "<1,219,12>": "", @@ -7536,15 +7537,15 @@ "<1,219,20>": "" }, "<1,220>": { - "<1,220,1>": "ITEM", - "<1,220,2>": "", - "<1,220,3>": "ADMIN.FABTIME_SUPPORT.WO_MAT__INV_FIX", - "<1,220,4>": "WO Mat Inv Fix", + "<1,220,1>": "POPUP", + "<1,220,2>": "2", + "<1,220,3>": "ADMIN.FABTIME_SUPPORT", + "<1,220,4>": "FabTime Interface", "<1,220,5>": "0", "<1,220,6>": "0", "<1,220,7>": "0", "<1,220,8>": "0", - "<1,220,9>": "Inventory Log Maintenance Tool", + "<1,220,9>": "FabTime Interface", "<1,220,10>": "", "<1,220,11>": "0", "<1,220,12>": "", @@ -7560,13 +7561,13 @@ "<1,221>": { "<1,221,1>": "ITEM", "<1,221,2>": "", - "<1,221,3>": "ADMIN.FABTIME_SUPPORT.WO_BATCH_FIX", - "<1,221,4>": "WO Batch Fix", + "<1,221,3>": "ADMIN.FABTIME_SUPPORT.WO_MAT__INV_FIX", + "<1,221,4>": "WO Mat Inv Fix", "<1,221,5>": "0", "<1,221,6>": "0", "<1,221,7>": "0", "<1,221,8>": "0", - "<1,221,9>": "", + "<1,221,9>": "Inventory Log Maintenance Tool", "<1,221,10>": "", "<1,221,11>": "0", "<1,221,12>": "", @@ -7580,10 +7581,10 @@ "<1,221,20>": "" }, "<1,222>": { - "<1,222,1>": "SEPARATOR", + "<1,222,1>": "ITEM", "<1,222,2>": "", - "<1,222,3>": "ADMIN.SEP113", - "<1,222,4>": "SEP113", + "<1,222,3>": "ADMIN.FABTIME_SUPPORT.WO_BATCH_FIX", + "<1,222,4>": "WO Batch Fix", "<1,222,5>": "0", "<1,222,6>": "0", "<1,222,7>": "0", @@ -7602,15 +7603,15 @@ "<1,222,20>": "" }, "<1,223>": { - "<1,223,1>": "POPUP", - "<1,223,2>": "7", - "<1,223,3>": "ADM.SYSTEM_CONFIG", - "<1,223,4>": "&System Config", + "<1,223,1>": "SEPARATOR", + "<1,223,2>": "", + "<1,223,3>": "ADMIN.SEP113", + "<1,223,4>": "SEP113", "<1,223,5>": "0", "<1,223,6>": "0", "<1,223,7>": "0", "<1,223,8>": "0", - "<1,223,9>": "Admin Configuration", + "<1,223,9>": "", "<1,223,10>": "", "<1,223,11>": "0", "<1,223,12>": "", @@ -7624,15 +7625,15 @@ "<1,223,20>": "" }, "<1,224>": { - "<1,224,1>": "ITEM", - "<1,224,2>": "", - "<1,224,3>": "ADM.USERS", - "<1,224,4>": "&Users", + "<1,224,1>": "POPUP", + "<1,224,2>": "7", + "<1,224,3>": "ADM.SYSTEM_CONFIG", + "<1,224,4>": "&System Config", "<1,224,5>": "0", "<1,224,6>": "0", "<1,224,7>": "0", "<1,224,8>": "0", - "<1,224,9>": "User Account Config", + "<1,224,9>": "Admin Configuration", "<1,224,10>": "", "<1,224,11>": "0", "<1,224,12>": "", @@ -7648,13 +7649,13 @@ "<1,225>": { "<1,225,1>": "ITEM", "<1,225,2>": "", - "<1,225,3>": "ADM.TABLENAMES", - "<1,225,4>": "&Tablenames", + "<1,225,3>": "ADM.USERS", + "<1,225,4>": "&Users", "<1,225,5>": "0", "<1,225,6>": "0", "<1,225,7>": "0", "<1,225,8>": "0", - "<1,225,9>": "Tablename Config", + "<1,225,9>": "User Account Config", "<1,225,10>": "", "<1,225,11>": "0", "<1,225,12>": "", @@ -7670,13 +7671,13 @@ "<1,226>": { "<1,226,1>": "ITEM", "<1,226,2>": "", - "<1,226,3>": "ADM.LISTBOX_CONFIG", - "<1,226,4>": "&ListBox Config", + "<1,226,3>": "ADM.TABLENAMES", + "<1,226,4>": "&Tablenames", "<1,226,5>": "0", "<1,226,6>": "0", "<1,226,7>": "0", "<1,226,8>": "0", - "<1,226,9>": "ListBox Config", + "<1,226,9>": "Tablename Config", "<1,226,10>": "", "<1,226,11>": "0", "<1,226,12>": "", @@ -7692,13 +7693,13 @@ "<1,227>": { "<1,227,1>": "ITEM", "<1,227,2>": "", - "<1,227,3>": "ADM.SECURITY_GROUPS", - "<1,227,4>": "&Security Groups", + "<1,227,3>": "ADM.LISTBOX_CONFIG", + "<1,227,4>": "&ListBox Config", "<1,227,5>": "0", "<1,227,6>": "0", "<1,227,7>": "0", "<1,227,8>": "0", - "<1,227,9>": "Security Group Assignments ", + "<1,227,9>": "ListBox Config", "<1,227,10>": "", "<1,227,11>": "0", "<1,227,12>": "", @@ -7714,13 +7715,13 @@ "<1,228>": { "<1,228,1>": "ITEM", "<1,228,2>": "", - "<1,228,3>": "ADM.QUOTE_SIGNATURES", - "<1,228,4>": "&Signature Authorizations", + "<1,228,3>": "ADM.SECURITY_GROUPS", + "<1,228,4>": "&Security Groups", "<1,228,5>": "0", "<1,228,6>": "0", "<1,228,7>": "0", "<1,228,8>": "0", - "<1,228,9>": "Signature Authorization Setup", + "<1,228,9>": "Security Group Assignments ", "<1,228,10>": "", "<1,228,11>": "0", "<1,228,12>": "", @@ -7736,13 +7737,13 @@ "<1,229>": { "<1,229,1>": "ITEM", "<1,229,2>": "", - "<1,229,3>": "ADM.SYSTEM_CONFIG.NOTIFICATIONS", - "<1,229,4>": "&Notifications", + "<1,229,3>": "ADM.QUOTE_SIGNATURES", + "<1,229,4>": "&Signature Authorizations", "<1,229,5>": "0", "<1,229,6>": "0", "<1,229,7>": "0", "<1,229,8>": "0", - "<1,229,9>": "Notification Assignments", + "<1,229,9>": "Signature Authorization Setup", "<1,229,10>": "", "<1,229,11>": "0", "<1,229,12>": "", @@ -7758,13 +7759,13 @@ "<1,230>": { "<1,230,1>": "ITEM", "<1,230,2>": "", - "<1,230,3>": "ADM.SEMI_VEND_CODE", - "<1,230,4>": "Vendor Codes", + "<1,230,3>": "ADM.SYSTEM_CONFIG.NOTIFICATIONS", + "<1,230,4>": "&Notifications", "<1,230,5>": "0", "<1,230,6>": "0", "<1,230,7>": "0", "<1,230,8>": "0", - "<1,230,9>": "SEMI Std Vendor Code Lookup", + "<1,230,9>": "Notification Assignments", "<1,230,10>": "", "<1,230,11>": "0", "<1,230,12>": "", @@ -7778,15 +7779,15 @@ "<1,230,20>": "" }, "<1,231>": { - "<1,231,1>": "POPUP", - "<1,231,2>": "1", - "<1,231,3>": "ADMIN.TEST_WAFER_SYSTEM", - "<1,231,4>": "Test Wafer System", + "<1,231,1>": "ITEM", + "<1,231,2>": "", + "<1,231,3>": "ADM.SEMI_VEND_CODE", + "<1,231,4>": "Vendor Codes", "<1,231,5>": "0", "<1,231,6>": "0", "<1,231,7>": "0", "<1,231,8>": "0", - "<1,231,9>": "", + "<1,231,9>": "SEMI Std Vendor Code Lookup", "<1,231,10>": "", "<1,231,11>": "0", "<1,231,12>": "", @@ -7800,10 +7801,10 @@ "<1,231,20>": "" }, "<1,232>": { - "<1,232,1>": "ITEM", - "<1,232,2>": "", - "<1,232,3>": "ADMIN.TEST_WAFER_SYSTEM.MANAGE_TEST_WAFER_PRODUCTS", - "<1,232,4>": "Manage Test Wafer Products", + "<1,232,1>": "POPUP", + "<1,232,2>": "1", + "<1,232,3>": "ADMIN.TEST_WAFER_SYSTEM", + "<1,232,4>": "Test Wafer System", "<1,232,5>": "0", "<1,232,6>": "0", "<1,232,7>": "0", @@ -7822,15 +7823,15 @@ "<1,232,20>": "" }, "<1,233>": { - "<1,233,1>": "POPUP", - "<1,233,2>": "8", - "<1,233,3>": "ADM.TOOLS", - "<1,233,4>": "Tools", + "<1,233,1>": "ITEM", + "<1,233,2>": "", + "<1,233,3>": "ADMIN.TEST_WAFER_SYSTEM.MANAGE_TEST_WAFER_PRODUCTS", + "<1,233,4>": "Manage Test Wafer Products", "<1,233,5>": "0", "<1,233,6>": "0", "<1,233,7>": "0", "<1,233,8>": "0", - "<1,233,9>": "Tool Setup & Class Assignment", + "<1,233,9>": "", "<1,233,10>": "", "<1,233,11>": "0", "<1,233,12>": "", @@ -7844,15 +7845,15 @@ "<1,233,20>": "" }, "<1,234>": { - "<1,234,1>": "ITEM", - "<1,234,2>": "", - "<1,234,3>": "ADM.REACTOR_CONFIG", - "<1,234,4>": "Reactor Config", + "<1,234,1>": "POPUP", + "<1,234,2>": "8", + "<1,234,3>": "ADM.TOOLS", + "<1,234,4>": "Tools", "<1,234,5>": "0", "<1,234,6>": "0", "<1,234,7>": "0", "<1,234,8>": "0", - "<1,234,9>": "Reactor Configuration", + "<1,234,9>": "Tool Setup & Class Assignment", "<1,234,10>": "", "<1,234,11>": "0", "<1,234,12>": "", @@ -7868,13 +7869,13 @@ "<1,235>": { "<1,235,1>": "ITEM", "<1,235,2>": "", - "<1,235,3>": "ADM.TOOLS.REACTOR_MODES_CONFIG", - "<1,235,4>": "Reactor Modes Config", + "<1,235,3>": "ADM.REACTOR_CONFIG", + "<1,235,4>": "Reactor Config", "<1,235,5>": "0", "<1,235,6>": "0", "<1,235,7>": "0", "<1,235,8>": "0", - "<1,235,9>": "", + "<1,235,9>": "Reactor Configuration", "<1,235,10>": "", "<1,235,11>": "0", "<1,235,12>": "", @@ -7890,8 +7891,8 @@ "<1,236>": { "<1,236,1>": "ITEM", "<1,236,2>": "", - "<1,236,3>": "ADMIN.TOOLS.REACTOR_MAINT._SERVICES", - "<1,236,4>": "Reactor Maint. Services", + "<1,236,3>": "ADM.TOOLS.REACTOR_MODES_CONFIG", + "<1,236,4>": "Reactor Modes Config", "<1,236,5>": "0", "<1,236,6>": "0", "<1,236,7>": "0", @@ -7912,13 +7913,13 @@ "<1,237>": { "<1,237,1>": "ITEM", "<1,237,2>": "", - "<1,237,3>": "ADM.TOOL", - "<1,237,4>": "Tool", + "<1,237,3>": "ADMIN.TOOLS.REACTOR_MAINT._SERVICES", + "<1,237,4>": "Reactor Maint. Services", "<1,237,5>": "0", "<1,237,6>": "0", "<1,237,7>": "0", "<1,237,8>": "0", - "<1,237,9>": "Tool Setup", + "<1,237,9>": "", "<1,237,10>": "", "<1,237,11>": "0", "<1,237,12>": "", @@ -7934,13 +7935,13 @@ "<1,238>": { "<1,238,1>": "ITEM", "<1,238,2>": "", - "<1,238,3>": "ADM.TOOLS.TOOL_CLASS", - "<1,238,4>": "Tool Class", + "<1,238,3>": "ADM.TOOL", + "<1,238,4>": "Tool", "<1,238,5>": "0", "<1,238,6>": "0", "<1,238,7>": "0", "<1,238,8>": "0", - "<1,238,9>": "Tool Class Assignment", + "<1,238,9>": "Tool Setup", "<1,238,10>": "", "<1,238,11>": "0", "<1,238,12>": "", @@ -7956,13 +7957,13 @@ "<1,239>": { "<1,239,1>": "ITEM", "<1,239,2>": "", - "<1,239,3>": "ADM.EPI_SUSCEPTOR", - "<1,239,4>": "EpiPro Susceptor", + "<1,239,3>": "ADM.TOOLS.TOOL_CLASS", + "<1,239,4>": "Tool Class", "<1,239,5>": "0", "<1,239,6>": "0", "<1,239,7>": "0", "<1,239,8>": "0", - "<1,239,9>": "EpiPro Susceptor Setup", + "<1,239,9>": "Tool Class Assignment", "<1,239,10>": "", "<1,239,11>": "0", "<1,239,12>": "", @@ -7978,13 +7979,13 @@ "<1,240>": { "<1,240,1>": "ITEM", "<1,240,2>": "", - "<1,240,3>": "ADM.TEST_POINT_MAP", - "<1,240,4>": "Test Point Map", + "<1,240,3>": "ADM.EPI_SUSCEPTOR", + "<1,240,4>": "EpiPro Susceptor", "<1,240,5>": "0", "<1,240,6>": "0", "<1,240,7>": "0", "<1,240,8>": "0", - "<1,240,9>": "Metrology Tool - Test Point Mapping", + "<1,240,9>": "EpiPro Susceptor Setup", "<1,240,10>": "", "<1,240,11>": "0", "<1,240,12>": "", @@ -8000,13 +8001,13 @@ "<1,241>": { "<1,241,1>": "ITEM", "<1,241,2>": "", - "<1,241,3>": "ADM.PRINT_AKRION_TEST", - "<1,241,4>": "Print AKRION Test Recipe Sheet", + "<1,241,3>": "ADM.TEST_POINT_MAP", + "<1,241,4>": "Test Point Map", "<1,241,5>": "0", "<1,241,6>": "0", "<1,241,7>": "0", "<1,241,8>": "0", - "<1,241,9>": "Print AKRION Test Recipe Sheet with Barcodes", + "<1,241,9>": "Metrology Tool - Test Point Mapping", "<1,241,10>": "", "<1,241,11>": "0", "<1,241,12>": "", @@ -8020,15 +8021,15 @@ "<1,241,20>": "" }, "<1,242>": { - "<1,242,1>": "POPUP", - "<1,242,2>": "3", - "<1,242,3>": "ADM.WAREHOUSE", - "<1,242,4>": "Warehouse", + "<1,242,1>": "ITEM", + "<1,242,2>": "", + "<1,242,3>": "ADM.PRINT_AKRION_TEST", + "<1,242,4>": "Print AKRION Test Recipe Sheet", "<1,242,5>": "0", "<1,242,6>": "0", "<1,242,7>": "0", "<1,242,8>": "0", - "<1,242,9>": "Warehouse and Location Setup", + "<1,242,9>": "Print AKRION Test Recipe Sheet with Barcodes", "<1,242,10>": "", "<1,242,11>": "0", "<1,242,12>": "", @@ -8042,15 +8043,15 @@ "<1,242,20>": "" }, "<1,243>": { - "<1,243,1>": "ITEM", - "<1,243,2>": "", - "<1,243,3>": "ADM.WH.LOCATION", - "<1,243,4>": "Location", + "<1,243,1>": "POPUP", + "<1,243,2>": "3", + "<1,243,3>": "ADM.WAREHOUSE", + "<1,243,4>": "Warehouse", "<1,243,5>": "0", "<1,243,6>": "0", "<1,243,7>": "0", "<1,243,8>": "0", - "<1,243,9>": "Inventory Locations", + "<1,243,9>": "Warehouse and Location Setup", "<1,243,10>": "", "<1,243,11>": "0", "<1,243,12>": "", @@ -8066,13 +8067,13 @@ "<1,244>": { "<1,244,1>": "ITEM", "<1,244,2>": "", - "<1,244,3>": "ADM.WH.WAREHOUSE", - "<1,244,4>": "Warehouse", + "<1,244,3>": "ADM.WH.LOCATION", + "<1,244,4>": "Location", "<1,244,5>": "0", "<1,244,6>": "0", "<1,244,7>": "0", "<1,244,8>": "0", - "<1,244,9>": "Warehouse Information", + "<1,244,9>": "Inventory Locations", "<1,244,10>": "", "<1,244,11>": "0", "<1,244,12>": "", @@ -8088,13 +8089,13 @@ "<1,245>": { "<1,245,1>": "ITEM", "<1,245,2>": "", - "<1,245,3>": "ADM.WH.GENERIC_BAR_CODE_LABEL", - "<1,245,4>": "Generic Bar Code Label", + "<1,245,3>": "ADM.WH.WAREHOUSE", + "<1,245,4>": "Warehouse", "<1,245,5>": "0", "<1,245,6>": "0", "<1,245,7>": "0", "<1,245,8>": "0", - "<1,245,9>": "Print Generic Bar Code Label", + "<1,245,9>": "Warehouse Information", "<1,245,10>": "", "<1,245,11>": "0", "<1,245,12>": "", @@ -8110,13 +8111,13 @@ "<1,246>": { "<1,246,1>": "ITEM", "<1,246,2>": "", - "<1,246,3>": "ADM.NIGHTLY_PROCESS_SETUP", - "<1,246,4>": "&Nightly Process Setup", + "<1,246,3>": "ADM.WH.GENERIC_BAR_CODE_LABEL", + "<1,246,4>": "Generic Bar Code Label", "<1,246,5>": "0", "<1,246,6>": "0", - "<1,246,7>": "1", + "<1,246,7>": "0", "<1,246,8>": "0", - "<1,246,9>": "", + "<1,246,9>": "Print Generic Bar Code Label", "<1,246,10>": "", "<1,246,11>": "0", "<1,246,12>": "", @@ -8132,8 +8133,8 @@ "<1,247>": { "<1,247,1>": "ITEM", "<1,247,2>": "", - "<1,247,3>": "ADM.RUN_NIGHTLY_PROCESS", - "<1,247,4>": "&Run Nightly Process", + "<1,247,3>": "ADM.NIGHTLY_PROCESS_SETUP", + "<1,247,4>": "&Nightly Process Setup", "<1,247,5>": "0", "<1,247,6>": "0", "<1,247,7>": "1", @@ -8154,13 +8155,13 @@ "<1,248>": { "<1,248,1>": "ITEM", "<1,248,2>": "", - "<1,248,3>": "ADMI.CUST_PROD_TEST_WAFER", - "<1,248,4>": "Customer Prod Test Wafer", + "<1,248,3>": "ADM.RUN_NIGHTLY_PROCESS", + "<1,248,4>": "&Run Nightly Process", "<1,248,5>": "0", "<1,248,6>": "0", "<1,248,7>": "1", "<1,248,8>": "0", - "<1,248,9>": "Enter or Update Customer Product Test Wafer Part Numbers", + "<1,248,9>": "", "<1,248,10>": "", "<1,248,11>": "0", "<1,248,12>": "", @@ -8174,15 +8175,15 @@ "<1,248,20>": "" }, "<1,249>": { - "<1,249,1>": "POPUP", - "<1,249,2>": "2", - "<1,249,3>": "ADM.THRUPUT_TARGETS", - "<1,249,4>": "&ThruPut Targets", + "<1,249,1>": "ITEM", + "<1,249,2>": "", + "<1,249,3>": "ADMI.CUST_PROD_TEST_WAFER", + "<1,249,4>": "Customer Prod Test Wafer", "<1,249,5>": "0", "<1,249,6>": "0", - "<1,249,7>": "0", + "<1,249,7>": "1", "<1,249,8>": "0", - "<1,249,9>": "ThruPut Target Config", + "<1,249,9>": "Enter or Update Customer Product Test Wafer Part Numbers", "<1,249,10>": "", "<1,249,11>": "0", "<1,249,12>": "", @@ -8196,15 +8197,15 @@ "<1,249,20>": "" }, "<1,250>": { - "<1,250,1>": "ITEM", - "<1,250,2>": "", - "<1,250,3>": "ADM.THRUPUT_TARGETS.FISCAL_YEAR", - "<1,250,4>": "Fiscal Year", + "<1,250,1>": "POPUP", + "<1,250,2>": "2", + "<1,250,3>": "ADM.THRUPUT_TARGETS", + "<1,250,4>": "&ThruPut Targets", "<1,250,5>": "0", "<1,250,6>": "0", "<1,250,7>": "0", "<1,250,8>": "0", - "<1,250,9>": "Enter Fiscal Year Dates", + "<1,250,9>": "ThruPut Target Config", "<1,250,10>": "", "<1,250,11>": "0", "<1,250,12>": "", @@ -8220,13 +8221,13 @@ "<1,251>": { "<1,251,1>": "ITEM", "<1,251,2>": "", - "<1,251,3>": "ADM.THRUPUT_TARGETS.FISCAL_QUARTER", - "<1,251,4>": "Fiscal Quarter", + "<1,251,3>": "ADM.THRUPUT_TARGETS.FISCAL_YEAR", + "<1,251,4>": "Fiscal Year", "<1,251,5>": "0", "<1,251,6>": "0", "<1,251,7>": "0", "<1,251,8>": "0", - "<1,251,9>": "Enter Fiscal Quarter Targets", + "<1,251,9>": "Enter Fiscal Year Dates", "<1,251,10>": "", "<1,251,11>": "0", "<1,251,12>": "", @@ -8240,15 +8241,15 @@ "<1,251,20>": "" }, "<1,252>": { - "<1,252,1>": "POPUP", - "<1,252,2>": "4", - "<1,252,3>": "ADM.RAS", - "<1,252,4>": "NCR Setup", + "<1,252,1>": "ITEM", + "<1,252,2>": "", + "<1,252,3>": "ADM.THRUPUT_TARGETS.FISCAL_QUARTER", + "<1,252,4>": "Fiscal Quarter", "<1,252,5>": "0", "<1,252,6>": "0", "<1,252,7>": "0", "<1,252,8>": "0", - "<1,252,9>": "Rejected Wafer Setup ", + "<1,252,9>": "Enter Fiscal Quarter Targets", "<1,252,10>": "", "<1,252,11>": "0", "<1,252,12>": "", @@ -8262,15 +8263,15 @@ "<1,252,20>": "" }, "<1,253>": { - "<1,253,1>": "ITEM", - "<1,253,2>": "", - "<1,253,3>": "ADM.RAS.AC", - "<1,253,4>": "&Assignable Causes", + "<1,253,1>": "POPUP", + "<1,253,2>": "4", + "<1,253,3>": "ADM.RAS", + "<1,253,4>": "NCR Setup", "<1,253,5>": "0", "<1,253,6>": "0", "<1,253,7>": "0", "<1,253,8>": "0", - "<1,253,9>": "Assignable Cause Setup", + "<1,253,9>": "Rejected Wafer Setup ", "<1,253,10>": "", "<1,253,11>": "0", "<1,253,12>": "", @@ -8286,13 +8287,13 @@ "<1,254>": { "<1,254,1>": "ITEM", "<1,254,2>": "", - "<1,254,3>": "ADM.RAS.DE_GROUPS", - "<1,254,4>": "&Designation Error Groups", + "<1,254,3>": "ADM.RAS.AC", + "<1,254,4>": "&Assignable Causes", "<1,254,5>": "0", "<1,254,6>": "0", "<1,254,7>": "0", "<1,254,8>": "0", - "<1,254,9>": "Error Group Setup", + "<1,254,9>": "Assignable Cause Setup", "<1,254,10>": "", "<1,254,11>": "0", "<1,254,12>": "", @@ -8308,13 +8309,13 @@ "<1,255>": { "<1,255,1>": "ITEM", "<1,255,2>": "", - "<1,255,3>": "ADM.RAS.LOSS_CODES", - "<1,255,4>": "&Loss Codes", + "<1,255,3>": "ADM.RAS.DE_GROUPS", + "<1,255,4>": "&Designation Error Groups", "<1,255,5>": "0", "<1,255,6>": "0", "<1,255,7>": "0", "<1,255,8>": "0", - "<1,255,9>": "Loss Code Setup", + "<1,255,9>": "Error Group Setup", "<1,255,10>": "", "<1,255,11>": "0", "<1,255,12>": "", @@ -8330,13 +8331,13 @@ "<1,256>": { "<1,256,1>": "ITEM", "<1,256,2>": "", - "<1,256,3>": "ADM.TEST_WFR_USE_CD", - "<1,256,4>": "&Test Wafer Usage Codes", + "<1,256,3>": "ADM.RAS.LOSS_CODES", + "<1,256,4>": "&Loss Codes", "<1,256,5>": "0", "<1,256,6>": "0", - "<1,256,7>": "1", + "<1,256,7>": "0", "<1,256,8>": "0", - "<1,256,9>": "", + "<1,256,9>": "Loss Code Setup", "<1,256,10>": "", "<1,256,11>": "0", "<1,256,12>": "", @@ -8350,15 +8351,15 @@ "<1,256,20>": "" }, "<1,257>": { - "<1,257,1>": "POPUP", - "<1,257,2>": "11", - "<1,257,3>": "ADM.DEVELOPER", - "<1,257,4>": "Developer", + "<1,257,1>": "ITEM", + "<1,257,2>": "", + "<1,257,3>": "ADM.TEST_WFR_USE_CD", + "<1,257,4>": "&Test Wafer Usage Codes", "<1,257,5>": "0", "<1,257,6>": "0", - "<1,257,7>": "0", + "<1,257,7>": "1", "<1,257,8>": "0", - "<1,257,9>": "Developer and System Support Menu", + "<1,257,9>": "", "<1,257,10>": "", "<1,257,11>": "0", "<1,257,12>": "", @@ -8372,15 +8373,15 @@ "<1,257,20>": "" }, "<1,258>": { - "<1,258,1>": "ITEM", - "<1,258,2>": "", - "<1,258,3>": "ADM.DEV.KEEP_ALIVES", - "<1,258,4>": "Keep Alives", + "<1,258,1>": "POPUP", + "<1,258,2>": "11", + "<1,258,3>": "ADM.DEVELOPER", + "<1,258,4>": "Developer", "<1,258,5>": "0", "<1,258,6>": "0", "<1,258,7>": "0", "<1,258,8>": "0", - "<1,258,9>": "", + "<1,258,9>": "Developer and System Support Menu", "<1,258,10>": "", "<1,258,11>": "0", "<1,258,12>": "", @@ -8396,13 +8397,13 @@ "<1,259>": { "<1,259,1>": "ITEM", "<1,259,2>": "", - "<1,259,3>": "ADMIN.DEVELOPER.MES_TASK", - "<1,259,4>": "MES Task", + "<1,259,3>": "ADM.DEV.KEEP_ALIVES", + "<1,259,4>": "Keep Alives", "<1,259,5>": "0", "<1,259,6>": "0", "<1,259,7>": "0", "<1,259,8>": "0", - "<1,259,9>": "Window for MES Task maintenenace.", + "<1,259,9>": "", "<1,259,10>": "", "<1,259,11>": "0", "<1,259,12>": "", @@ -8418,13 +8419,13 @@ "<1,260>": { "<1,260,1>": "ITEM", "<1,260,2>": "", - "<1,260,3>": "ADMIN.DEVELOPER.SRP_UTILITY", - "<1,260,4>": "SRP Utility\tCtrl+Shift+S", + "<1,260,3>": "ADMIN.DEVELOPER.MES_TASK", + "<1,260,4>": "MES Task", "<1,260,5>": "0", "<1,260,6>": "0", - "<1,260,7>": "1", - "<1,260,8>": "851", - "<1,260,9>": "", + "<1,260,7>": "0", + "<1,260,8>": "0", + "<1,260,9>": "Window for MES Task maintenenace.", "<1,260,10>": "", "<1,260,11>": "0", "<1,260,12>": "", @@ -8440,12 +8441,12 @@ "<1,261>": { "<1,261,1>": "ITEM", "<1,261,2>": "", - "<1,261,3>": "ADMIN.DEVELOPER.DICTIONARY_LISTINGS", - "<1,261,4>": "Dictionary Listings", + "<1,261,3>": "ADMIN.DEVELOPER.SRP_UTILITY", + "<1,261,4>": "SRP Utility\tCtrl+Shift+S", "<1,261,5>": "0", "<1,261,6>": "0", - "<1,261,7>": "0", - "<1,261,8>": "0", + "<1,261,7>": "1", + "<1,261,8>": "851", "<1,261,9>": "", "<1,261,10>": "", "<1,261,11>": "0", @@ -8462,8 +8463,8 @@ "<1,262>": { "<1,262,1>": "ITEM", "<1,262,2>": "", - "<1,262,3>": "ADM.DEVELOPER.INTERFACE_DICT_EXPORT", - "<1,262,4>": "Interface Dict Export", + "<1,262,3>": "ADMIN.DEVELOPER.DICTIONARY_LISTINGS", + "<1,262,4>": "Dictionary Listings", "<1,262,5>": "0", "<1,262,6>": "0", "<1,262,7>": "0", @@ -8484,8 +8485,8 @@ "<1,263>": { "<1,263,1>": "ITEM", "<1,263,2>": "", - "<1,263,3>": "ADMIN.DEVELOPER.THRUPUT_TEST", - "<1,263,4>": "Thruput Test", + "<1,263,3>": "ADM.DEVELOPER.INTERFACE_DICT_EXPORT", + "<1,263,4>": "Interface Dict Export", "<1,263,5>": "0", "<1,263,6>": "0", "<1,263,7>": "0", @@ -8506,8 +8507,8 @@ "<1,264>": { "<1,264,1>": "ITEM", "<1,264,2>": "", - "<1,264,3>": "ADMIN.DEVELOPER.AD_TEST", - "<1,264,4>": "AD Test", + "<1,264,3>": "ADMIN.DEVELOPER.THRUPUT_TEST", + "<1,264,4>": "Thruput Test", "<1,264,5>": "0", "<1,264,6>": "0", "<1,264,7>": "0", @@ -8528,8 +8529,8 @@ "<1,265>": { "<1,265,1>": "ITEM", "<1,265,2>": "", - "<1,265,3>": "ADMIN.DEVELOPER.SESSION_MANAGER", - "<1,265,4>": "Session Manager...", + "<1,265,3>": "ADMIN.DEVELOPER.AD_TEST", + "<1,265,4>": "AD Test", "<1,265,5>": "0", "<1,265,6>": "0", "<1,265,7>": "0", @@ -8550,8 +8551,8 @@ "<1,266>": { "<1,266,1>": "ITEM", "<1,266,2>": "", - "<1,266,3>": "ADMIN.DEVELOPER.WEBTEST", - "<1,266,4>": "WebTest", + "<1,266,3>": "ADMIN.DEVELOPER.SESSION_MANAGER", + "<1,266,4>": "Session Manager...", "<1,266,5>": "0", "<1,266,6>": "0", "<1,266,7>": "0", @@ -8572,8 +8573,8 @@ "<1,267>": { "<1,267,1>": "ITEM", "<1,267,2>": "", - "<1,267,3>": "ADMIN.DEVELOPER.ALL_REACTOR_MODES", - "<1,267,4>": "All Reactor Modes", + "<1,267,3>": "ADMIN.DEVELOPER.WEBTEST", + "<1,267,4>": "WebTest", "<1,267,5>": "0", "<1,267,6>": "0", "<1,267,7>": "0", @@ -8592,15 +8593,15 @@ "<1,267,20>": "" }, "<1,268>": { - "<1,268,1>": "POPUP", - "<1,268,2>": "2", - "<1,268,3>": "ADMIN.DEV.ARCHIVE", - "<1,268,4>": "Archive", + "<1,268,1>": "ITEM", + "<1,268,2>": "", + "<1,268,3>": "ADMIN.DEVELOPER.ALL_REACTOR_MODES", + "<1,268,4>": "All Reactor Modes", "<1,268,5>": "0", "<1,268,6>": "0", "<1,268,7>": "0", "<1,268,8>": "0", - "<1,268,9>": "Archived Records", + "<1,268,9>": "", "<1,268,10>": "", "<1,268,11>": "0", "<1,268,12>": "", @@ -8614,15 +8615,15 @@ "<1,268,20>": "" }, "<1,269>": { - "<1,269,1>": "ITEM", - "<1,269,2>": "", - "<1,269,3>": "ADM.DEV.ARCHIVE.AUDIT_TRAIL", - "<1,269,4>": "Audit Trail", + "<1,269,1>": "POPUP", + "<1,269,2>": "2", + "<1,269,3>": "ADMIN.DEV.ARCHIVE", + "<1,269,4>": "Archive", "<1,269,5>": "0", "<1,269,6>": "0", "<1,269,7>": "0", "<1,269,8>": "0", - "<1,269,9>": "Audit Manager Reporting", + "<1,269,9>": "Archived Records", "<1,269,10>": "", "<1,269,11>": "0", "<1,269,12>": "", @@ -8638,13 +8639,13 @@ "<1,270>": { "<1,270,1>": "ITEM", "<1,270,2>": "", - "<1,270,3>": "ADM.DEV.ARCHIVE.AUDIT_MANAGER", - "<1,270,4>": "Audit Manager", + "<1,270,3>": "ADM.DEV.ARCHIVE.AUDIT_TRAIL", + "<1,270,4>": "Audit Trail", "<1,270,5>": "0", "<1,270,6>": "0", "<1,270,7>": "0", "<1,270,8>": "0", - "<1,270,9>": "Audit Manager Setup", + "<1,270,9>": "Audit Manager Reporting", "<1,270,10>": "", "<1,270,11>": "0", "<1,270,12>": "", @@ -8658,15 +8659,15 @@ "<1,270,20>": "" }, "<1,271>": { - "<1,271,1>": "SEPARATOR", + "<1,271,1>": "ITEM", "<1,271,2>": "", - "<1,271,3>": "ADMIN.SEP114", - "<1,271,4>": "SEP114", + "<1,271,3>": "ADM.DEV.ARCHIVE.AUDIT_MANAGER", + "<1,271,4>": "Audit Manager", "<1,271,5>": "0", "<1,271,6>": "0", "<1,271,7>": "0", "<1,271,8>": "0", - "<1,271,9>": "", + "<1,271,9>": "Audit Manager Setup", "<1,271,10>": "", "<1,271,11>": "0", "<1,271,12>": "", @@ -8680,10 +8681,10 @@ "<1,271,20>": "" }, "<1,272>": { - "<1,272,1>": "ITEM", + "<1,272,1>": "SEPARATOR", "<1,272,2>": "", - "<1,272,3>": "ADMIN.MASS_TOOL_MODE_CHANGE", - "<1,272,4>": "Mass Tool Mode Change", + "<1,272,3>": "ADMIN.SEP114", + "<1,272,4>": "SEP114", "<1,272,5>": "0", "<1,272,6>": "0", "<1,272,7>": "0", @@ -8704,8 +8705,8 @@ "<1,273>": { "<1,273,1>": "ITEM", "<1,273,2>": "", - "<1,273,3>": "ADMIN.MASS_REACTOR_MODE_CHANGE", - "<1,273,4>": "Mass Reactor Mode Change", + "<1,273,3>": "ADMIN.MASS_TOOL_MODE_CHANGE", + "<1,273,4>": "Mass Tool Mode Change", "<1,273,5>": "0", "<1,273,6>": "0", "<1,273,7>": "0", @@ -8726,8 +8727,8 @@ "<1,274>": { "<1,274,1>": "ITEM", "<1,274,2>": "", - "<1,274,3>": "ADMIN.TOOLS_EVAC", - "<1,274,4>": "Tools Evac", + "<1,274,3>": "ADMIN.MASS_REACTOR_MODE_CHANGE", + "<1,274,4>": "Mass Reactor Mode Change", "<1,274,5>": "0", "<1,274,6>": "0", "<1,274,7>": "0", @@ -8744,6 +8745,28 @@ "<1,274,18>": "", "<1,274,19>": "", "<1,274,20>": "" + }, + "<1,275>": { + "<1,275,1>": "ITEM", + "<1,275,2>": "", + "<1,275,3>": "ADMIN.TOOLS_EVAC", + "<1,275,4>": "Tools Evac", + "<1,275,5>": "0", + "<1,275,6>": "0", + "<1,275,7>": "0", + "<1,275,8>": "0", + "<1,275,9>": "", + "<1,275,10>": "", + "<1,275,11>": "0", + "<1,275,12>": "", + "<1,275,13>": "", + "<1,275,14>": "", + "<1,275,15>": "", + "<1,275,16>": "", + "<1,275,17>": "", + "<1,275,18>": "", + "<1,275,19>": "", + "<1,275,20>": "" } }, "<2>": { @@ -10746,63 +10769,86 @@ "<2,2,162>": { "<2,2,162,1>": "R", "<2,2,162,2>": "EXECUTE", - "<2,2,162,3>": "LSL2*OIWINEXE**EXPORTS_A", + "<2,2,162,3>": "LSL2*OIWINEXE**NDW_FEATURE_FLAGS", "<2,2,162,4>": { - "<2,2,162,4,1>": "*CENTER", + "<2,2,162,4,1>": "CreateParam", "<2,2,162,4,2>": "@WINDOW" }, "<2,2,162,5>": "", - "<2,2,162,6>": "" + "<2,2,162,6>": "", + "<2,2,162,7>": "", + "<2,2,162,8>": "", + "<2,2,162,9>": "", + "<2,2,162,10>": "", + "<2,2,162,11>": "", + "<2,2,162,12>": "", + "<2,2,162,13>": "", + "<2,2,162,14>": "", + "<2,2,162,15>": "STARTWIN", + "<2,2,162,16>": "0" }, "<2,2,163>": { "<2,2,163,1>": "R", "<2,2,163,2>": "EXECUTE", - "<2,2,163,3>": "LSL2*OIWINEXE**SAP_LOG", + "<2,2,163,3>": "LSL2*OIWINEXE**EXPORTS_A", "<2,2,163,4>": { - "<2,2,163,4,1>": "", + "<2,2,163,4,1>": "*CENTER", "<2,2,163,4,2>": "@WINDOW" }, "<2,2,163,5>": "", - "<2,2,163,6>": "" + "<2,2,163,6>": "", + "<2,2,163,7>": "", + "<2,2,163,8>": "", + "<2,2,163,9>": "", + "<2,2,163,10>": "", + "<2,2,163,11>": "", + "<2,2,163,12>": "", + "<2,2,163,13>": "", + "<2,2,163,14>": "", + "<2,2,163,15>": "STARTWIN", + "<2,2,163,16>": "0" }, "<2,2,164>": { "<2,2,164,1>": "R", "<2,2,164,2>": "EXECUTE", - "<2,2,164,3>": "LSL2*STPROCEXE**PRINT_VISION_COMM_ERROR", - "<2,2,164,4>": "", + "<2,2,164,3>": "LSL2*OIWINEXE**SAP_LOG", + "<2,2,164,4>": { + "<2,2,164,4,1>": "", + "<2,2,164,4,2>": "@WINDOW" + }, "<2,2,164,5>": "", "<2,2,164,6>": "" }, "<2,2,165>": { "<2,2,165,1>": "R", "<2,2,165,2>": "EXECUTE", - "<2,2,165,3>": "LSL2*POPUP**SAP_COMM", - "<2,2,165,4>": "@WINDOW", + "<2,2,165,3>": "LSL2*STPROCEXE**PRINT_VISION_COMM_ERROR", + "<2,2,165,4>": "", "<2,2,165,5>": "", "<2,2,165,6>": "" }, "<2,2,166>": { "<2,2,166,1>": "R", "<2,2,166,2>": "EXECUTE", - "<2,2,166,3>": "SYSPROG*STPROCEXE**OBJ_CALL_EVENT", - "<2,2,166,4>": { - "<2,2,166,4,1>": "@SELF", - "<2,2,166,4,2>": "@EVENT", - "<2,2,166,4,3>": "@PARAM1", - "<2,2,166,4,4>": "@PARAM2", - "<2,2,166,4,5>": "@PARAM3", - "<2,2,166,4,6>": "@PARAM4", - "<2,2,166,4,7>": "@PARAM5", - "<2,2,166,4,8>": "@PARAM6" - }, + "<2,2,166,3>": "LSL2*POPUP**SAP_COMM", + "<2,2,166,4>": "@WINDOW", "<2,2,166,5>": "", "<2,2,166,6>": "" }, "<2,2,167>": { "<2,2,167,1>": "R", "<2,2,167,2>": "EXECUTE", - "<2,2,167,3>": "LSL2*STPROCEXE**PRINT_MB1B_REPORT", - "<2,2,167,4>": "", + "<2,2,167,3>": "SYSPROG*STPROCEXE**OBJ_CALL_EVENT", + "<2,2,167,4>": { + "<2,2,167,4,1>": "@SELF", + "<2,2,167,4,2>": "@EVENT", + "<2,2,167,4,3>": "@PARAM1", + "<2,2,167,4,4>": "@PARAM2", + "<2,2,167,4,5>": "@PARAM3", + "<2,2,167,4,6>": "@PARAM4", + "<2,2,167,4,7>": "@PARAM5", + "<2,2,167,4,8>": "@PARAM6" + }, "<2,2,167,5>": "", "<2,2,167,6>": "" }, @@ -10810,35 +10856,22 @@ "<2,2,168,1>": "R", "<2,2,168,2>": "EXECUTE", "<2,2,168,3>": "LSL2*STPROCEXE**PRINT_MB1B_REPORT", - "<2,2,168,4>": "1", + "<2,2,168,4>": "", "<2,2,168,5>": "", "<2,2,168,6>": "" }, "<2,2,169>": { "<2,2,169,1>": "R", "<2,2,169,2>": "EXECUTE", - "<2,2,169,3>": "LSL2*OIWINEXE**WO_MAT_INV", - "<2,2,169,4>": { - "<2,2,169,4,1>": "CreateParam", - "<2,2,169,4,2>": "@WINDOW" - }, + "<2,2,169,3>": "LSL2*STPROCEXE**PRINT_MB1B_REPORT", + "<2,2,169,4>": "1", "<2,2,169,5>": "", - "<2,2,169,6>": "", - "<2,2,169,7>": "", - "<2,2,169,8>": "", - "<2,2,169,9>": "", - "<2,2,169,10>": "", - "<2,2,169,11>": "", - "<2,2,169,12>": "", - "<2,2,169,13>": "", - "<2,2,169,14>": "", - "<2,2,169,15>": "STARTWIN", - "<2,2,169,16>": "0" + "<2,2,169,6>": "" }, "<2,2,170>": { "<2,2,170,1>": "R", "<2,2,170,2>": "EXECUTE", - "<2,2,170,3>": "LSL2*OIWINEXE**WO_MAT_BATCH", + "<2,2,170,3>": "LSL2*OIWINEXE**WO_MAT_INV", "<2,2,170,4>": { "<2,2,170,4,1>": "CreateParam", "<2,2,170,4,2>": "@WINDOW" @@ -10859,18 +10892,28 @@ "<2,2,171>": { "<2,2,171,1>": "R", "<2,2,171,2>": "EXECUTE", - "<2,2,171,3>": "LSL2*OIWINEXE**LSL_USERS", + "<2,2,171,3>": "LSL2*OIWINEXE**WO_MAT_BATCH", "<2,2,171,4>": { - "<2,2,171,4,1>": "*CENTER", + "<2,2,171,4,1>": "CreateParam", "<2,2,171,4,2>": "@WINDOW" }, "<2,2,171,5>": "", - "<2,2,171,6>": "" + "<2,2,171,6>": "", + "<2,2,171,7>": "", + "<2,2,171,8>": "", + "<2,2,171,9>": "", + "<2,2,171,10>": "", + "<2,2,171,11>": "", + "<2,2,171,12>": "", + "<2,2,171,13>": "", + "<2,2,171,14>": "", + "<2,2,171,15>": "STARTWIN", + "<2,2,171,16>": "0" }, "<2,2,172>": { "<2,2,172,1>": "R", "<2,2,172,2>": "EXECUTE", - "<2,2,172,3>": "LSL2*OIWINEXE**TABLENAMES", + "<2,2,172,3>": "LSL2*OIWINEXE**LSL_USERS", "<2,2,172,4>": { "<2,2,172,4,1>": "*CENTER", "<2,2,172,4,2>": "@WINDOW" @@ -10881,7 +10924,7 @@ "<2,2,173>": { "<2,2,173,1>": "R", "<2,2,173,2>": "EXECUTE", - "<2,2,173,3>": "LSL2*OIWINEXE**LISTBOX_CONFIG", + "<2,2,173,3>": "LSL2*OIWINEXE**TABLENAMES", "<2,2,173,4>": { "<2,2,173,4,1>": "*CENTER", "<2,2,173,4,2>": "@WINDOW" @@ -10892,71 +10935,71 @@ "<2,2,174>": { "<2,2,174,1>": "R", "<2,2,174,2>": "EXECUTE", - "<2,2,174,3>": "LSL2*OIWINEXE**NDW_SEC_GROUPS", + "<2,2,174,3>": "LSL2*OIWINEXE**LISTBOX_CONFIG", "<2,2,174,4>": { - "<2,2,174,4,1>": "CreateParam", + "<2,2,174,4,1>": "*CENTER", "<2,2,174,4,2>": "@WINDOW" }, "<2,2,174,5>": "", - "<2,2,174,6>": "", - "<2,2,174,7>": "", - "<2,2,174,8>": "", - "<2,2,174,9>": "", - "<2,2,174,10>": "", - "<2,2,174,11>": "", - "<2,2,174,12>": "", - "<2,2,174,13>": "", - "<2,2,174,14>": "", - "<2,2,174,15>": "STARTWIN", - "<2,2,174,16>": "0" + "<2,2,174,6>": "" }, "<2,2,175>": { "<2,2,175,1>": "R", "<2,2,175,2>": "EXECUTE", - "<2,2,175,3>": "LSL2*OIWINEXE**QUOTE_SIGS", + "<2,2,175,3>": "LSL2*OIWINEXE**NDW_SEC_GROUPS", "<2,2,175,4>": { - "<2,2,175,4,1>": "*CENTER", + "<2,2,175,4,1>": "CreateParam", "<2,2,175,4,2>": "@WINDOW" }, "<2,2,175,5>": "", - "<2,2,175,6>": "" + "<2,2,175,6>": "", + "<2,2,175,7>": "", + "<2,2,175,8>": "", + "<2,2,175,9>": "", + "<2,2,175,10>": "", + "<2,2,175,11>": "", + "<2,2,175,12>": "", + "<2,2,175,13>": "", + "<2,2,175,14>": "", + "<2,2,175,15>": "STARTWIN", + "<2,2,175,16>": "0" }, "<2,2,176>": { "<2,2,176,1>": "R", "<2,2,176,2>": "EXECUTE", - "<2,2,176,3>": "LSL2*OIWINEXE**NDW_NOTIFICATION", + "<2,2,176,3>": "LSL2*OIWINEXE**QUOTE_SIGS", "<2,2,176,4>": { - "<2,2,176,4,1>": "CreateParam", + "<2,2,176,4,1>": "*CENTER", "<2,2,176,4,2>": "@WINDOW" }, "<2,2,176,5>": "", - "<2,2,176,6>": "", - "<2,2,176,7>": "", - "<2,2,176,8>": "", - "<2,2,176,9>": "", - "<2,2,176,10>": "", - "<2,2,176,11>": "", - "<2,2,176,12>": "", - "<2,2,176,13>": "", - "<2,2,176,14>": "", - "<2,2,176,15>": "STARTWIN", - "<2,2,176,16>": "0" + "<2,2,176,6>": "" }, "<2,2,177>": { "<2,2,177,1>": "R", "<2,2,177,2>": "EXECUTE", - "<2,2,177,3>": "LSL2*OIWINEXE**SEMI_VEND_CODE", + "<2,2,177,3>": "LSL2*OIWINEXE**NDW_NOTIFICATION", "<2,2,177,4>": { "<2,2,177,4,1>": "CreateParam", "<2,2,177,4,2>": "@WINDOW" }, "<2,2,177,5>": "", - "<2,2,177,6>": "" + "<2,2,177,6>": "", + "<2,2,177,7>": "", + "<2,2,177,8>": "", + "<2,2,177,9>": "", + "<2,2,177,10>": "", + "<2,2,177,11>": "", + "<2,2,177,12>": "", + "<2,2,177,13>": "", + "<2,2,177,14>": "", + "<2,2,177,15>": "STARTWIN", + "<2,2,177,16>": "0" }, "<2,2,178>": { "<2,2,178,1>": "R", "<2,2,178,2>": "EXECUTE", - "<2,2,178,3>": "LSL2*OIWINEXE**NDW_TW_PROD", + "<2,2,178,3>": "LSL2*OIWINEXE**SEMI_VEND_CODE", "<2,2,178,4>": { "<2,2,178,4,1>": "CreateParam", "<2,2,178,4,2>": "@WINDOW" @@ -10967,7 +11010,7 @@ "<2,2,179>": { "<2,2,179,1>": "R", "<2,2,179,2>": "EXECUTE", - "<2,2,179,3>": "LSL2*OIWINEXE**REACTOR", + "<2,2,179,3>": "LSL2*OIWINEXE**NDW_TW_PROD", "<2,2,179,4>": { "<2,2,179,4,1>": "CreateParam", "<2,2,179,4,2>": "@WINDOW" @@ -10978,15 +11021,18 @@ "<2,2,180>": { "<2,2,180,1>": "R", "<2,2,180,2>": "EXECUTE", - "<2,2,180,3>": "LSL2*OIWINEXE**REACTOR_MODES", - "<2,2,180,4>": "", + "<2,2,180,3>": "LSL2*OIWINEXE**REACTOR", + "<2,2,180,4>": { + "<2,2,180,4,1>": "CreateParam", + "<2,2,180,4,2>": "@WINDOW" + }, "<2,2,180,5>": "", "<2,2,180,6>": "" }, "<2,2,181>": { "<2,2,181,1>": "R", "<2,2,181,2>": "EXECUTE", - "<2,2,181,3>": "LSL2*OIWINEXE**REACT_SERVS", + "<2,2,181,3>": "LSL2*OIWINEXE**REACTOR_MODES", "<2,2,181,4>": "", "<2,2,181,5>": "", "<2,2,181,6>": "" @@ -10994,18 +11040,15 @@ "<2,2,182>": { "<2,2,182,1>": "R", "<2,2,182,2>": "EXECUTE", - "<2,2,182,3>": "LSL2*OIWINEXE**TOOL", - "<2,2,182,4>": { - "<2,2,182,4,1>": "CreateParam", - "<2,2,182,4,2>": "@WINDOW" - }, + "<2,2,182,3>": "LSL2*OIWINEXE**REACT_SERVS", + "<2,2,182,4>": "", "<2,2,182,5>": "", "<2,2,182,6>": "" }, "<2,2,183>": { "<2,2,183,1>": "R", "<2,2,183,2>": "EXECUTE", - "<2,2,183,3>": "LSL2*OIWINEXE**TOOL_CLASS", + "<2,2,183,3>": "LSL2*OIWINEXE**TOOL", "<2,2,183,4>": { "<2,2,183,4,1>": "CreateParam", "<2,2,183,4,2>": "@WINDOW" @@ -11016,7 +11059,7 @@ "<2,2,184>": { "<2,2,184,1>": "R", "<2,2,184,2>": "EXECUTE", - "<2,2,184,3>": "LSL2*OIWINEXE**EPI_SUSCEPTOR", + "<2,2,184,3>": "LSL2*OIWINEXE**TOOL_CLASS", "<2,2,184,4>": { "<2,2,184,4,1>": "CreateParam", "<2,2,184,4,2>": "@WINDOW" @@ -11027,7 +11070,7 @@ "<2,2,185>": { "<2,2,185,1>": "R", "<2,2,185,2>": "EXECUTE", - "<2,2,185,3>": "LSL2*OIWINEXE**TEST_POINT_MAP", + "<2,2,185,3>": "LSL2*OIWINEXE**EPI_SUSCEPTOR", "<2,2,185,4>": { "<2,2,185,4,1>": "CreateParam", "<2,2,185,4,2>": "@WINDOW" @@ -11038,28 +11081,28 @@ "<2,2,186>": { "<2,2,186,1>": "R", "<2,2,186,2>": "EXECUTE", - "<2,2,186,3>": "LSL2*STPROCEXE**PRINT_AKRION_TEST", - "<2,2,186,4>": "", + "<2,2,186,3>": "LSL2*OIWINEXE**TEST_POINT_MAP", + "<2,2,186,4>": { + "<2,2,186,4,1>": "CreateParam", + "<2,2,186,4,2>": "@WINDOW" + }, "<2,2,186,5>": "", "<2,2,186,6>": "" }, "<2,2,187>": { "<2,2,187,1>": "R", "<2,2,187,2>": "EXECUTE", - "<2,2,187,3>": "LSL2*OIWINEXE**LOCATION", - "<2,2,187,4>": { - "<2,2,187,4,1>": "CreateParam", - "<2,2,187,4,2>": "@WINDOW" - }, + "<2,2,187,3>": "LSL2*STPROCEXE**PRINT_AKRION_TEST", + "<2,2,187,4>": "", "<2,2,187,5>": "", "<2,2,187,6>": "" }, "<2,2,188>": { "<2,2,188,1>": "R", "<2,2,188,2>": "EXECUTE", - "<2,2,188,3>": "LSL2*OIWINEXE**WAREHOUSE", + "<2,2,188,3>": "LSL2*OIWINEXE**LOCATION", "<2,2,188,4>": { - "<2,2,188,4,1>": "", + "<2,2,188,4,1>": "CreateParam", "<2,2,188,4,2>": "@WINDOW" }, "<2,2,188,5>": "", @@ -11068,9 +11111,9 @@ "<2,2,189>": { "<2,2,189,1>": "R", "<2,2,189,2>": "EXECUTE", - "<2,2,189,3>": "LSL2*OIWINEXE**PRINT_GENERIC_BARCODE", + "<2,2,189,3>": "LSL2*OIWINEXE**WAREHOUSE", "<2,2,189,4>": { - "<2,2,189,4,1>": "CreateParam", + "<2,2,189,4,1>": "", "<2,2,189,4,2>": "@WINDOW" }, "<2,2,189,5>": "", @@ -11079,9 +11122,9 @@ "<2,2,190>": { "<2,2,190,1>": "R", "<2,2,190,2>": "EXECUTE", - "<2,2,190,3>": "LSL2*OIWINEXE**NIGHTLY_PROCESS", + "<2,2,190,3>": "LSL2*OIWINEXE**PRINT_GENERIC_BARCODE", "<2,2,190,4>": { - "<2,2,190,4,1>": "*CENTER", + "<2,2,190,4,1>": "CreateParam", "<2,2,190,4,2>": "@WINDOW" }, "<2,2,190,5>": "", @@ -11090,7 +11133,7 @@ "<2,2,191>": { "<2,2,191,1>": "R", "<2,2,191,2>": "EXECUTE", - "<2,2,191,3>": "LSL2*OIWINEXE**RUN_NIGHTLY_PROCESS", + "<2,2,191,3>": "LSL2*OIWINEXE**NIGHTLY_PROCESS", "<2,2,191,4>": { "<2,2,191,4,1>": "*CENTER", "<2,2,191,4,2>": "@WINDOW" @@ -11101,9 +11144,9 @@ "<2,2,192>": { "<2,2,192,1>": "R", "<2,2,192,2>": "EXECUTE", - "<2,2,192,3>": "LSL2*OIWINEXE**CUST_TW_PART", + "<2,2,192,3>": "LSL2*OIWINEXE**RUN_NIGHTLY_PROCESS", "<2,2,192,4>": { - "<2,2,192,4,1>": "CreateParam", + "<2,2,192,4,1>": "*CENTER", "<2,2,192,4,2>": "@WINDOW" }, "<2,2,192,5>": "", @@ -11112,7 +11155,7 @@ "<2,2,193>": { "<2,2,193,1>": "R", "<2,2,193,2>": "EXECUTE", - "<2,2,193,3>": "LSL2*OIWINEXE**FISCAL_YR", + "<2,2,193,3>": "LSL2*OIWINEXE**CUST_TW_PART", "<2,2,193,4>": { "<2,2,193,4,1>": "CreateParam", "<2,2,193,4,2>": "@WINDOW" @@ -11123,7 +11166,7 @@ "<2,2,194>": { "<2,2,194,1>": "R", "<2,2,194,2>": "EXECUTE", - "<2,2,194,3>": "LSL2*OIWINEXE**FISCAL_QTR", + "<2,2,194,3>": "LSL2*OIWINEXE**FISCAL_YR", "<2,2,194,4>": { "<2,2,194,4,1>": "CreateParam", "<2,2,194,4,2>": "@WINDOW" @@ -11134,9 +11177,9 @@ "<2,2,195>": { "<2,2,195,1>": "R", "<2,2,195,2>": "EXECUTE", - "<2,2,195,3>": "LSL2*OIWINEXE**ASSIGN_CAUSE", + "<2,2,195,3>": "LSL2*OIWINEXE**FISCAL_QTR", "<2,2,195,4>": { - "<2,2,195,4,1>": "*CENTER", + "<2,2,195,4,1>": "CreateParam", "<2,2,195,4,2>": "@WINDOW" }, "<2,2,195,5>": "", @@ -11145,7 +11188,7 @@ "<2,2,196>": { "<2,2,196,1>": "R", "<2,2,196,2>": "EXECUTE", - "<2,2,196,3>": "LSL2*OIWINEXE**DESIG_ERR_GRP", + "<2,2,196,3>": "LSL2*OIWINEXE**ASSIGN_CAUSE", "<2,2,196,4>": { "<2,2,196,4,1>": "*CENTER", "<2,2,196,4,2>": "@WINDOW" @@ -11156,7 +11199,7 @@ "<2,2,197>": { "<2,2,197,1>": "R", "<2,2,197,2>": "EXECUTE", - "<2,2,197,3>": "LSL2*OIWINEXE**LOSS_CODES", + "<2,2,197,3>": "LSL2*OIWINEXE**DESIG_ERR_GRP", "<2,2,197,4>": { "<2,2,197,4,1>": "*CENTER", "<2,2,197,4,2>": "@WINDOW" @@ -11167,7 +11210,7 @@ "<2,2,198>": { "<2,2,198,1>": "R", "<2,2,198,2>": "EXECUTE", - "<2,2,198,3>": "LSL2*OIWINEXE**TW_CODES", + "<2,2,198,3>": "LSL2*OIWINEXE**LOSS_CODES", "<2,2,198,4>": { "<2,2,198,4,1>": "*CENTER", "<2,2,198,4,2>": "@WINDOW" @@ -11178,53 +11221,56 @@ "<2,2,199>": { "<2,2,199,1>": "R", "<2,2,199,2>": "EXECUTE", - "<2,2,199,3>": "LSL2*POPUP**KEEP_ALIVES", - "<2,2,199,4>": "@WINDOW", + "<2,2,199,3>": "LSL2*OIWINEXE**TW_CODES", + "<2,2,199,4>": { + "<2,2,199,4,1>": "*CENTER", + "<2,2,199,4,2>": "@WINDOW" + }, "<2,2,199,5>": "", "<2,2,199,6>": "" }, "<2,2,200>": { "<2,2,200,1>": "R", "<2,2,200,2>": "EXECUTE", - "<2,2,200,3>": "LSL2*OIWINEXE**MES_TASK", - "<2,2,200,4>": { - "<2,2,200,4,1>": "CreateParam", - "<2,2,200,4,2>": "@WINDOW" - }, + "<2,2,200,3>": "LSL2*POPUP**KEEP_ALIVES", + "<2,2,200,4>": "@WINDOW", "<2,2,200,5>": "", "<2,2,200,6>": "" }, "<2,2,201>": { "<2,2,201,1>": "R", "<2,2,201,2>": "EXECUTE", - "<2,2,201,3>": "LSL2*STPROCEXE**SRP_UTILITY", - "<2,2,201,4>": "", + "<2,2,201,3>": "LSL2*OIWINEXE**MES_TASK", + "<2,2,201,4>": { + "<2,2,201,4,1>": "CreateParam", + "<2,2,201,4,2>": "@WINDOW" + }, "<2,2,201,5>": "", "<2,2,201,6>": "" }, "<2,2,202>": { "<2,2,202,1>": "R", "<2,2,202,2>": "EXECUTE", - "<2,2,202,3>": "SYSPROG*OIWINEXE**JCH_INDEX", - "<2,2,202,4>": { - "<2,2,202,4,1>": "CreateParam", - "<2,2,202,4,2>": "@WINDOW" - }, + "<2,2,202,3>": "LSL2*STPROCEXE**SRP_UTILITY", + "<2,2,202,4>": "", "<2,2,202,5>": "", "<2,2,202,6>": "" }, "<2,2,203>": { "<2,2,203,1>": "R", "<2,2,203,2>": "EXECUTE", - "<2,2,203,3>": "LSL2*STPROCEXE**EXPORT_INTERFACE_DICTS", - "<2,2,203,4>": "", + "<2,2,203,3>": "SYSPROG*OIWINEXE**JCH_INDEX", + "<2,2,203,4>": { + "<2,2,203,4,1>": "CreateParam", + "<2,2,203,4,2>": "@WINDOW" + }, "<2,2,203,5>": "", "<2,2,203,6>": "" }, "<2,2,204>": { "<2,2,204,1>": "R", "<2,2,204,2>": "EXECUTE", - "<2,2,204,3>": "LSL2*STPROCEXE**THRUPUT_REPORT_NEW", + "<2,2,204,3>": "LSL2*STPROCEXE**EXPORT_INTERFACE_DICTS", "<2,2,204,4>": "", "<2,2,204,5>": "", "<2,2,204,6>": "" @@ -11232,27 +11278,18 @@ "<2,2,205>": { "<2,2,205,1>": "R", "<2,2,205,2>": "EXECUTE", - "<2,2,205,3>": "LSL2*OIWINEXE**AD_TEST", - "<2,2,205,4>": { - "<2,2,205,4,1>": "CreateParam", - "<2,2,205,4,2>": "@WINDOW" - }, + "<2,2,205,3>": "LSL2*STPROCEXE**THRUPUT_REPORT_NEW", + "<2,2,205,4>": "", "<2,2,205,5>": "", "<2,2,205,6>": "" }, "<2,2,206>": { "<2,2,206,1>": "R", "<2,2,206,2>": "EXECUTE", - "<2,2,206,3>": "SYSPROG*STPROCEXE**OBJ_CALL_EVENT", + "<2,2,206,3>": "LSL2*OIWINEXE**AD_TEST", "<2,2,206,4>": { - "<2,2,206,4,1>": "@SELF", - "<2,2,206,4,2>": "@EVENT", - "<2,2,206,4,3>": "@PARAM1", - "<2,2,206,4,4>": "@PARAM2", - "<2,2,206,4,5>": "@PARAM3", - "<2,2,206,4,6>": "@PARAM4", - "<2,2,206,4,7>": "@PARAM5", - "<2,2,206,4,8>": "@PARAM6" + "<2,2,206,4,1>": "CreateParam", + "<2,2,206,4,2>": "@WINDOW" }, "<2,2,206,5>": "", "<2,2,206,6>": "" @@ -11260,34 +11297,40 @@ "<2,2,207>": { "<2,2,207,1>": "R", "<2,2,207,2>": "EXECUTE", - "<2,2,207,3>": "LSL2*STPROCEXE**JONATHAN_TEST", - "<2,2,207,4>": "", + "<2,2,207,3>": "SYSPROG*STPROCEXE**OBJ_CALL_EVENT", + "<2,2,207,4>": { + "<2,2,207,4,1>": "@SELF", + "<2,2,207,4,2>": "@EVENT", + "<2,2,207,4,3>": "@PARAM1", + "<2,2,207,4,4>": "@PARAM2", + "<2,2,207,4,5>": "@PARAM3", + "<2,2,207,4,6>": "@PARAM4", + "<2,2,207,4,7>": "@PARAM5", + "<2,2,207,4,8>": "@PARAM6" + }, "<2,2,207,5>": "", "<2,2,207,6>": "" }, "<2,2,208>": { "<2,2,208,1>": "R", "<2,2,208,2>": "EXECUTE", - "<2,2,208,3>": "LSL2*STPROCEXE**PRINT_REACT_MODE_LOG_SERVICES", - "<2,2,208,4>": "RunAllReport", + "<2,2,208,3>": "LSL2*STPROCEXE**JONATHAN_TEST", + "<2,2,208,4>": "", "<2,2,208,5>": "", "<2,2,208,6>": "" }, "<2,2,209>": { "<2,2,209,1>": "R", "<2,2,209,2>": "EXECUTE", - "<2,2,209,3>": "LSL2*OIWINEXE**NDW_AUDIT_TRAIL", - "<2,2,209,4>": { - "<2,2,209,4,1>": "CreateParam", - "<2,2,209,4,2>": "@WINDOW" - }, + "<2,2,209,3>": "LSL2*STPROCEXE**PRINT_REACT_MODE_LOG_SERVICES", + "<2,2,209,4>": "RunAllReport", "<2,2,209,5>": "", "<2,2,209,6>": "" }, "<2,2,210>": { "<2,2,210,1>": "R", "<2,2,210,2>": "EXECUTE", - "<2,2,210,3>": "LSL2*OIWINEXE**DBW_AUDIT_MANAGER", + "<2,2,210,3>": "LSL2*OIWINEXE**NDW_AUDIT_TRAIL", "<2,2,210,4>": { "<2,2,210,4,1>": "CreateParam", "<2,2,210,4,2>": "@WINDOW" @@ -11298,7 +11341,7 @@ "<2,2,211>": { "<2,2,211,1>": "R", "<2,2,211,2>": "EXECUTE", - "<2,2,211,3>": "LSL2*OIWINEXE**NDW_TOOLS_MODE_CHG", + "<2,2,211,3>": "LSL2*OIWINEXE**DBW_AUDIT_MANAGER", "<2,2,211,4>": { "<2,2,211,4,1>": "CreateParam", "<2,2,211,4,2>": "@WINDOW" @@ -11309,7 +11352,7 @@ "<2,2,212>": { "<2,2,212,1>": "R", "<2,2,212,2>": "EXECUTE", - "<2,2,212,3>": "LSL2*OIWINEXE**NDW_REACTORS_MODE_CHG", + "<2,2,212,3>": "LSL2*OIWINEXE**NDW_TOOLS_MODE_CHG", "<2,2,212,4>": { "<2,2,212,4,1>": "CreateParam", "<2,2,212,4,2>": "@WINDOW" @@ -11327,6 +11370,17 @@ }, "<2,2,213,5>": "", "<2,2,213,6>": "" + }, + "<2,2,214>": { + "<2,2,214,1>": "R", + "<2,2,214,2>": "EXECUTE", + "<2,2,214,3>": "LSL2*OIWINEXE**NDW_REACTORS_MODE_CHG", + "<2,2,214,4>": { + "<2,2,214,4,1>": "CreateParam", + "<2,2,214,4,2>": "@WINDOW" + }, + "<2,2,214,5>": "", + "<2,2,214,6>": "" } }, "<2,3>": { @@ -11491,58 +11545,59 @@ "<2,3,159>": "RPT.MAINT.REPORT1", "<2,3,160>": "RPT.DATA_EXPORT.EXCEL_SPREAD", "<2,3,161>": "MESSAGES", - "<2,3,162>": "ADMIN.EXPORTS", - "<2,3,163>": "ADMIN.SAP_INTERFACE.POSTING_ERROR_LOG", - "<2,3,164>": "ADMIN.SAP_INTERFACE.SAP_COMM_ERROR_LOG", - "<2,3,165>": "ADMIN.SAP_INTERFACE.SAP_COMM_BUFFER", - "<2,3,166>": "ADMIN.SAP_INTERFACE.SAP_COMM_MONITOR", - "<2,3,167>": "ADMIN.SAP_INTERFACE.PRINT_MB1B_EXCEPTIONS", - "<2,3,168>": "ADMIN.SAP_INTERFACE.PURGE_MB1B_EXCEPTIONS", - "<2,3,169>": "ADMIN.FABTIME_SUPPORT.WO_MAT__INV_FIX", - "<2,3,170>": "ADMIN.FABTIME_SUPPORT.WO_BATCH_FIX", - "<2,3,171>": "ADM.USERS", - "<2,3,172>": "ADM.TABLENAMES", - "<2,3,173>": "ADM.LISTBOX_CONFIG", - "<2,3,174>": "ADM.SECURITY_GROUPS", - "<2,3,175>": "ADM.QUOTE_SIGNATURES", - "<2,3,176>": "ADM.SYSTEM_CONFIG.NOTIFICATIONS", - "<2,3,177>": "ADM.SEMI_VEND_CODE", - "<2,3,178>": "ADMIN.TEST_WAFER_SYSTEM.MANAGE_TEST_WAFER_PRODUCTS", - "<2,3,179>": "ADM.REACTOR_CONFIG", - "<2,3,180>": "ADM.TOOLS.REACTOR_MODES_CONFIG", - "<2,3,181>": "ADMIN.TOOLS.REACTOR_MAINT._SERVICES", - "<2,3,182>": "ADM.TOOL", - "<2,3,183>": "ADM.TOOLS.TOOL_CLASS", - "<2,3,184>": "ADM.EPI_SUSCEPTOR", - "<2,3,185>": "ADM.TEST_POINT_MAP", - "<2,3,186>": "ADM.PRINT_AKRION_TEST", - "<2,3,187>": "ADM.WH.LOCATION", - "<2,3,188>": "ADM.WH.WAREHOUSE", - "<2,3,189>": "ADM.WH.GENERIC_BAR_CODE_LABEL", - "<2,3,190>": "ADM.NIGHTLY_PROCESS_SETUP", - "<2,3,191>": "ADM.RUN_NIGHTLY_PROCESS", - "<2,3,192>": "ADMI.CUST_PROD_TEST_WAFER", - "<2,3,193>": "ADM.THRUPUT_TARGETS.FISCAL_YEAR", - "<2,3,194>": "ADM.THRUPUT_TARGETS.FISCAL_QUARTER", - "<2,3,195>": "ADM.RAS.AC", - "<2,3,196>": "ADM.RAS.DE_GROUPS", - "<2,3,197>": "ADM.RAS.LOSS_CODES", - "<2,3,198>": "ADM.TEST_WFR_USE_CD", - "<2,3,199>": "ADM.DEV.KEEP_ALIVES", - "<2,3,200>": "ADMIN.DEVELOPER.MES_TASK", - "<2,3,201>": "ADMIN.DEVELOPER.SRP_UTILITY", - "<2,3,202>": "ADMIN.DEVELOPER.DICTIONARY_LISTINGS", - "<2,3,203>": "ADM.DEVELOPER.INTERFACE_DICT_EXPORT", - "<2,3,204>": "ADMIN.DEVELOPER.THRUPUT_TEST", - "<2,3,205>": "ADMIN.DEVELOPER.AD_TEST", - "<2,3,206>": "ADMIN.DEVELOPER.SESSION_MANAGER", - "<2,3,207>": "ADMIN.DEVELOPER.WEBTEST", - "<2,3,208>": "ADMIN.DEVELOPER.ALL_REACTOR_MODES", - "<2,3,209>": "ADM.DEV.ARCHIVE.AUDIT_TRAIL", - "<2,3,210>": "ADM.DEV.ARCHIVE.AUDIT_MANAGER", - "<2,3,211>": "ADMIN.MASS_TOOL_MODE_CHANGE", - "<2,3,212>": "ADMIN.MASS_REACTOR_MODE_CHANGE", - "<2,3,213>": "ADMIN.TOOLS_EVAC" + "<2,3,162>": "ADMIN.FEATURE_FLAGS", + "<2,3,163>": "ADMIN.EXPORTS", + "<2,3,164>": "ADMIN.SAP_INTERFACE.POSTING_ERROR_LOG", + "<2,3,165>": "ADMIN.SAP_INTERFACE.SAP_COMM_ERROR_LOG", + "<2,3,166>": "ADMIN.SAP_INTERFACE.SAP_COMM_BUFFER", + "<2,3,167>": "ADMIN.SAP_INTERFACE.SAP_COMM_MONITOR", + "<2,3,168>": "ADMIN.SAP_INTERFACE.PRINT_MB1B_EXCEPTIONS", + "<2,3,169>": "ADMIN.SAP_INTERFACE.PURGE_MB1B_EXCEPTIONS", + "<2,3,170>": "ADMIN.FABTIME_SUPPORT.WO_MAT__INV_FIX", + "<2,3,171>": "ADMIN.FABTIME_SUPPORT.WO_BATCH_FIX", + "<2,3,172>": "ADM.USERS", + "<2,3,173>": "ADM.TABLENAMES", + "<2,3,174>": "ADM.LISTBOX_CONFIG", + "<2,3,175>": "ADM.SECURITY_GROUPS", + "<2,3,176>": "ADM.QUOTE_SIGNATURES", + "<2,3,177>": "ADM.SYSTEM_CONFIG.NOTIFICATIONS", + "<2,3,178>": "ADM.SEMI_VEND_CODE", + "<2,3,179>": "ADMIN.TEST_WAFER_SYSTEM.MANAGE_TEST_WAFER_PRODUCTS", + "<2,3,180>": "ADM.REACTOR_CONFIG", + "<2,3,181>": "ADM.TOOLS.REACTOR_MODES_CONFIG", + "<2,3,182>": "ADMIN.TOOLS.REACTOR_MAINT._SERVICES", + "<2,3,183>": "ADM.TOOL", + "<2,3,184>": "ADM.TOOLS.TOOL_CLASS", + "<2,3,185>": "ADM.EPI_SUSCEPTOR", + "<2,3,186>": "ADM.TEST_POINT_MAP", + "<2,3,187>": "ADM.PRINT_AKRION_TEST", + "<2,3,188>": "ADM.WH.LOCATION", + "<2,3,189>": "ADM.WH.WAREHOUSE", + "<2,3,190>": "ADM.WH.GENERIC_BAR_CODE_LABEL", + "<2,3,191>": "ADM.NIGHTLY_PROCESS_SETUP", + "<2,3,192>": "ADM.RUN_NIGHTLY_PROCESS", + "<2,3,193>": "ADMI.CUST_PROD_TEST_WAFER", + "<2,3,194>": "ADM.THRUPUT_TARGETS.FISCAL_YEAR", + "<2,3,195>": "ADM.THRUPUT_TARGETS.FISCAL_QUARTER", + "<2,3,196>": "ADM.RAS.AC", + "<2,3,197>": "ADM.RAS.DE_GROUPS", + "<2,3,198>": "ADM.RAS.LOSS_CODES", + "<2,3,199>": "ADM.TEST_WFR_USE_CD", + "<2,3,200>": "ADM.DEV.KEEP_ALIVES", + "<2,3,201>": "ADMIN.DEVELOPER.MES_TASK", + "<2,3,202>": "ADMIN.DEVELOPER.SRP_UTILITY", + "<2,3,203>": "ADMIN.DEVELOPER.DICTIONARY_LISTINGS", + "<2,3,204>": "ADM.DEVELOPER.INTERFACE_DICT_EXPORT", + "<2,3,205>": "ADMIN.DEVELOPER.THRUPUT_TEST", + "<2,3,206>": "ADMIN.DEVELOPER.AD_TEST", + "<2,3,207>": "ADMIN.DEVELOPER.SESSION_MANAGER", + "<2,3,208>": "ADMIN.DEVELOPER.WEBTEST", + "<2,3,209>": "ADMIN.DEVELOPER.ALL_REACTOR_MODES", + "<2,3,210>": "ADM.DEV.ARCHIVE.AUDIT_TRAIL", + "<2,3,211>": "ADM.DEV.ARCHIVE.AUDIT_MANAGER", + "<2,3,212>": "ADMIN.MASS_TOOL_MODE_CHANGE", + "<2,3,213>": "ADMIN.MASS_REACTOR_MODE_CHANGE", + "<2,3,214>": "ADMIN.TOOLS_EVAC" }, "<2,4>": "0" } diff --git a/LSL2/OIWIN/REACT_SERVS.json b/LSL2/OIWIN/REACT_SERVS.json index 68822f4..12d9b8d 100644 --- a/LSL2/OIWIN/REACT_SERVS.json +++ b/LSL2/OIWIN/REACT_SERVS.json @@ -6,7 +6,7 @@ "body": { "record1": { "<1>": "1010", - "<2>": "54", + "<2>": "57", "<3>": "" }, "record2": { @@ -22,15 +22,19 @@ "<1,9>": "Reactor Services", "<1,10>": { "<1,10,1>": "0x82CF0000", - "<1,10,2>": "0x0" + "<1,10,2>": "0x100" }, "<1,11>": { - "<1,11,1>": "0x100", + "<1,11,1>": "0x8100", "<1,11,2>": "0x80000000" }, - "<1,12>": "0", - "<1,13>": "-2", - "<1,14>": "0", + "<1,12>": "", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, + "<1,14>": "", "<1,15>": "", "<1,16>": "", "<1,17>": { @@ -55,8 +59,18 @@ "<1,18,1,4,7>": "@PARAM5", "<1,18,1,4,8>": "@PARAM6" }, - "<1,18,1,5>": "", - "<1,18,1,6>": "" + "<1,18,1,5>": "@SELF", + "<1,18,1,6>": "DEFPROP", + "<1,18,1,7>": "P", + "<1,18,1,8>": "@RETVAL", + "<1,18,1,9>": "0", + "<1,18,1,10>": "", + "<1,18,1,11>": "", + "<1,18,1,12>": "", + "<1,18,1,13>": "", + "<1,18,1,14>": "", + "<1,18,1,15>": "STPROC", + "<1,18,1,16>": "0" }, "<1,18,2>": { "<1,18,2,1>": "R", @@ -73,32 +87,59 @@ "<1,18,2,4,8>": "@PARAM6" }, "<1,18,2,5>": "", - "<1,18,2,6>": "" + "<1,18,2,6>": "", + "<1,18,2,7>": "", + "<1,18,2,8>": "", + "<1,18,2,9>": "", + "<1,18,2,10>": "", + "<1,18,2,11>": "", + "<1,18,2,12>": "", + "<1,18,2,13>": "", + "<1,18,2,14>": "", + "<1,18,2,15>": "STPROC" }, "<1,18,3>": { "<1,18,3,1>": "R", "<1,18,3,2>": "EXECUTE", - "<1,18,3,3>": "LSL2*STPROCEXE**COMM_REACT_SERVS", - "<1,18,3,4>": { - "<1,18,3,4,1>": "@SELF", - "<1,18,3,4,2>": "@EVENT", - "<1,18,3,4,3>": "@PARAM1", - "<1,18,3,4,4>": "@PARAM2", - "<1,18,3,4,5>": "@PARAM3", - "<1,18,3,4,6>": "@PARAM4", - "<1,18,3,4,7>": "@PARAM5", - "<1,18,3,4,8>": "@PARAM6" - }, + "<1,18,3,3>": "LSL2*APPNOTE**REACT_SERVS.CONTEXT", + "<1,18,3,4>": "REACT_SERVS", "<1,18,3,5>": "", - "<1,18,3,6>": "" + "<1,18,3,6>": "", + "<1,18,3,7>": "", + "<1,18,3,8>": "", + "<1,18,3,9>": "", + "<1,18,3,10>": "", + "<1,18,3,11>": "", + "<1,18,3,12>": "", + "<1,18,3,13>": "", + "<1,18,3,14>": "", + "<1,18,3,15>": "APPNOTE" }, "<1,18,4>": { "<1,18,4,1>": "R", "<1,18,4,2>": "EXECUTE", - "<1,18,4,3>": "LSL2*APPNOTE**REACT_SERVS.CONTEXT", - "<1,18,4,4>": "REACT_SERVS", + "<1,18,4,3>": "LSL2*STPROCEXE**COMM_REACT_SERVS", + "<1,18,4,4>": { + "<1,18,4,4,1>": "@SELF", + "<1,18,4,4,2>": "@EVENT", + "<1,18,4,4,3>": "@PARAM1", + "<1,18,4,4,4>": "@PARAM2", + "<1,18,4,4,5>": "@PARAM3", + "<1,18,4,4,6>": "@PARAM4", + "<1,18,4,4,7>": "@PARAM5", + "<1,18,4,4,8>": "@PARAM6" + }, "<1,18,4,5>": "", - "<1,18,4,6>": "" + "<1,18,4,6>": "", + "<1,18,4,7>": "", + "<1,18,4,8>": "", + "<1,18,4,9>": "", + "<1,18,4,10>": "", + "<1,18,4,11>": "", + "<1,18,4,12>": "", + "<1,18,4,13>": "", + "<1,18,4,14>": "", + "<1,18,4,15>": "STPROC" }, "<1,18,5>": { "<1,18,5,1>": "R", @@ -115,7 +156,16 @@ "<1,18,5,4,8>": "@PARAM6" }, "<1,18,5,5>": "", - "<1,18,5,6>": "" + "<1,18,5,6>": "", + "<1,18,5,7>": "", + "<1,18,5,8>": "", + "<1,18,5,9>": "", + "<1,18,5,10>": "", + "<1,18,5,11>": "", + "<1,18,5,12>": "", + "<1,18,5,13>": "", + "<1,18,5,14>": "", + "<1,18,5,15>": "STPROC" }, "<1,18,6>": { "<1,18,6,1>": "R", @@ -132,7 +182,16 @@ "<1,18,6,4,8>": "@PARAM6" }, "<1,18,6,5>": "", - "<1,18,6,6>": "" + "<1,18,6,6>": "", + "<1,18,6,7>": "", + "<1,18,6,8>": "", + "<1,18,6,9>": "", + "<1,18,6,10>": "", + "<1,18,6,11>": "", + "<1,18,6,12>": "", + "<1,18,6,13>": "", + "<1,18,6,14>": "", + "<1,18,6,15>": "STPROC" }, "<1,18,7>": { "<1,18,7,1>": "R", @@ -149,7 +208,16 @@ "<1,18,7,4,8>": "@PARAM6" }, "<1,18,7,5>": "", - "<1,18,7,6>": "" + "<1,18,7,6>": "", + "<1,18,7,7>": "", + "<1,18,7,8>": "", + "<1,18,7,9>": "", + "<1,18,7,10>": "", + "<1,18,7,11>": "", + "<1,18,7,12>": "", + "<1,18,7,13>": "", + "<1,18,7,14>": "", + "<1,18,7,15>": "STPROC" }, "<1,18,8>": { "<1,18,8,1>": "R", @@ -166,7 +234,16 @@ "<1,18,8,4,8>": "@PARAM6" }, "<1,18,8,5>": "", - "<1,18,8,6>": "" + "<1,18,8,6>": "", + "<1,18,8,7>": "", + "<1,18,8,8>": "", + "<1,18,8,9>": "", + "<1,18,8,10>": "", + "<1,18,8,11>": "", + "<1,18,8,12>": "", + "<1,18,8,13>": "", + "<1,18,8,14>": "", + "<1,18,8,15>": "STPROC" }, "<1,18,9>": { "<1,18,9,1>": "R", @@ -183,7 +260,16 @@ "<1,18,9,4,8>": "@PARAM6" }, "<1,18,9,5>": "", - "<1,18,9,6>": "" + "<1,18,9,6>": "", + "<1,18,9,7>": "", + "<1,18,9,8>": "", + "<1,18,9,9>": "", + "<1,18,9,10>": "", + "<1,18,9,11>": "", + "<1,18,9,12>": "", + "<1,18,9,13>": "", + "<1,18,9,14>": "", + "<1,18,9,15>": "STPROC" }, "<1,18,10>": { "<1,18,10,1>": "R", @@ -200,7 +286,16 @@ "<1,18,10,4,8>": "@PARAM6" }, "<1,18,10,5>": "", - "<1,18,10,6>": "" + "<1,18,10,6>": "", + "<1,18,10,7>": "", + "<1,18,10,8>": "", + "<1,18,10,9>": "", + "<1,18,10,10>": "", + "<1,18,10,11>": "", + "<1,18,10,12>": "", + "<1,18,10,13>": "", + "<1,18,10,14>": "", + "<1,18,10,15>": "STPROC" }, "<1,18,11>": { "<1,18,11,1>": "R", @@ -217,7 +312,16 @@ "<1,18,11,4,8>": "@PARAM6" }, "<1,18,11,5>": "", - "<1,18,11,6>": "" + "<1,18,11,6>": "", + "<1,18,11,7>": "", + "<1,18,11,8>": "", + "<1,18,11,9>": "", + "<1,18,11,10>": "", + "<1,18,11,11>": "", + "<1,18,11,12>": "", + "<1,18,11,13>": "", + "<1,18,11,14>": "", + "<1,18,11,15>": "STPROC" }, "<1,18,12>": { "<1,18,12,1>": "R", @@ -234,7 +338,16 @@ "<1,18,12,4,8>": "@PARAM6" }, "<1,18,12,5>": "", - "<1,18,12,6>": "" + "<1,18,12,6>": "", + "<1,18,12,7>": "", + "<1,18,12,8>": "", + "<1,18,12,9>": "", + "<1,18,12,10>": "", + "<1,18,12,11>": "", + "<1,18,12,12>": "", + "<1,18,12,13>": "", + "<1,18,12,14>": "", + "<1,18,12,15>": "STPROC" }, "<1,18,13>": { "<1,18,13,1>": "R", @@ -251,15 +364,23 @@ "<1,18,13,4,8>": "@PARAM6" }, "<1,18,13,5>": "", - "<1,18,13,6>": "" - }, - "<1,18,14>": "" + "<1,18,13,6>": "", + "<1,18,13,7>": "", + "<1,18,13,8>": "", + "<1,18,13,9>": "", + "<1,18,13,10>": "", + "<1,18,13,11>": "", + "<1,18,13,12>": "", + "<1,18,13,13>": "", + "<1,18,13,14>": "", + "<1,18,13,15>": "STPROC" + } }, "<1,19>": { - "<1,19,1>": "CLEAR", + "<1,19,1>": "CREATE", "<1,19,2>": "CLOSE", - "<1,19,3>": "CREATE", - "<1,19,4>": "HELP", + "<1,19,3>": "HELP", + "<1,19,4>": "CLEAR", "<1,19,5>": "QBFABS", "<1,19,6>": "QBFCLOSE", "<1,19,7>": "QBFFIRST", @@ -268,46 +389,50 @@ "<1,19,10>": "QBFLOADLIST", "<1,19,11>": "QBFNEXT", "<1,19,12>": "QBFPREV", - "<1,19,13>": "QBFRUN", - "<1,19,14>": "" + "<1,19,13>": "QBFRUN" }, "<1,20>": "", "<1,21>": "", "<1,22>": "", "<1,23>": "REACT_SERVS", "<1,24>": { - "<1,24,1>": "0", + "<1,24,1>": "", "<1,24,2>": "0", "<1,24,3>": "0", "<1,24,4>": "0", - "<1,24,5>": "0", - "<1,24,6>": "0" + "<1,24,5>": "", + "<1,24,6>": "0", + "<1,24,7>": "", + "<1,24,8>": "", + "<1,24,9>": "", + "<1,24,10>": "0", + "<1,24,11>": "0", + "<1,24,12>": "0", + "<1,24,13>": "0", + "<1,24,14>": "0", + "<1,24,15>": "0", + "<1,24,16>": "0", + "<1,24,17>": "0" }, - "<1,25>": "0", - "<1,26>": "0", + "<1,25>": "", + "<1,26>": "", "<1,27>": "", "<1,28>": "", "<1,29>": "", "<1,30>": "", "<1,31>": "", - "<1,32>": { - "<1,32,1>": "0x7FFFE", - "<1,32,2>": "0xF001E808" - }, + "<1,32>": "", "<1,33>": "", - "<1,34>": "LSL2*IMAGE*ICO*DATASET", + "<1,34>": "", "<1,35>": "", "<1,36>": "", "<1,37>": { - "<1,37,1>": "0x10001", - "<1,37,2>": "0x10001" - }, - "<1,38>": { - "<1,38,1>": "1", - "<1,38,2>": "1" + "<1,37,1>": "0X10001", + "<1,37,2>": "0X10001" }, + "<1,38>": "", "<1,39>": "", - "<1,40>": "0", + "<1,40>": "", "<1,41>": "", "<1,42>": "", "<1,43>": "", @@ -319,31 +444,102 @@ "<1,49>": "", "<1,50>": "", "<1,51>": "", - "<1,52>": "" + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": "", + "<1,56>": "", + "<1,57>": "", + "<1,58>": "", + "<1,59>": "", + "<1,60>": "", + "<1,61>": "", + "<1,62>": { + "<1,62,1>": "0", + "<1,62,2>": "", + "<1,62,3>": "", + "<1,62,4>": "0", + "<1,62,5>": "0", + "<1,62,6>": "0", + "<1,62,7>": "", + "<1,62,8>": "0.50", + "<1,62,9>": "5.00", + "<1,62,10>": "0.00" + }, + "<1,63>": "", + "<1,64>": "", + "<1,65>": "", + "<1,66>": "", + "<1,67>": "", + "<1,68>": "", + "<1,69>": "", + "<1,70>": "", + "<1,71>": "", + "<1,72>": "", + "<1,73>": "", + "<1,74>": "", + "<1,75>": "", + "<1,76>": "", + "<1,77>": "", + "<1,78>": "", + "<1,79>": "", + "<1,80>": "", + "<1,81>": "", + "<1,82>": "", + "<1,83>": "", + "<1,84>": "", + "<1,85>": "", + "<1,86>": "", + "<1,87>": "", + "<1,88>": "", + "<1,89>": "", + "<1,90>": "", + "<1,91>": "", + "<1,92>": "", + "<1,93>": "", + "<1,94>": "", + "<1,95>": "", + "<1,96>": "", + "<1,97>": "", + "<1,98>": "", + "<1,99>": "", + "<1,100>": "", + "<1,101>": "", + "<1,102>": "", + "<1,103>": "", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "0", + "<1,107>": "", + "<1,108>": "" } }, "record3": { "<1>": { - "<1,1>": "SERV_ID", + "<1,1>": "GRP_INTRUSIVE_MAINT", "<1,2>": "", - "<1,3>": "EDITFIELD", + "<1,3>": "GROUPBOX", "<1,4>": "REACT_SERVS", - "<1,5>": "109", - "<1,6>": "79", - "<1,7>": "72", - "<1,8>": "18", - "<1,9>": "", + "<1,5>": "356", + "<1,6>": "376", + "<1,7>": "328", + "<1,8>": "48", + "<1,9>": "Intrusive Maintenace", "<1,10>": { - "<1,10,1>": "0x56800088", - "<1,10,2>": "0x200" + "<1,10,1>": "0x56000000", + "<1,10,2>": "0x0" }, "<1,11>": { - "<1,11,1>": "0x4", + "<1,11,1>": "0x0", "<1,11,2>": "0x80000000" }, - "<1,12>": "1", - "<1,13>": "8454143", - "<1,14>": "0", + "<1,12>": "54", + "<1,13>": { + "<1,13,1>": "-1", + "<1,13,2>": "-1", + "<1,13,3>": "" + }, + "<1,14>": "16711680", "<1,15>": { "<1,15,1>": { "<1,15,1,1>": "Tahoma", @@ -363,46 +559,22 @@ } }, "<1,16>": "", - "<1,17>": "OPTIONS", - "<1,18>": { - "<1,18,1>": { - "<1,18,1,1>": "R", - "<1,18,1,2>": "EXECUTE", - "<1,18,1,3>": "LSL2*APPNOTE**REACT_SERVS.SERV_ID", - "<1,18,1,4>": "REACT_SERVS", - "<1,18,1,5>": "", - "<1,18,1,6>": "" - }, - "<1,18,2>": "" - }, - "<1,19>": { - "<1,19,1>": "HELP", - "<1,19,2>": "" - }, + "<1,17>": "", + "<1,18>": "", + "<1,19>": "", "<1,20>": "", "<1,21>": "", "<1,22>": "", - "<1,23>": "REACT_SERVS", - "<1,24>": "SERV_ID", - "<1,25>": "0", - "<1,26>": "0", + "<1,23>": "", + "<1,24>": "", + "<1,25>": "", + "<1,26>": "", "<1,27>": "", - "<1,28>": { - "<1,28,1>": { - "<1,28,1,1>": { - "<1,28,1,1,1>": "[KEY_CONV,REACT_SERVS|DESCRIPTION_XREF|SHOW_REACT_SERVS]", - "<1,28,1,1,2>": "0N", - "<1,28,1,1,3>": "" - } - } - }, - "<1,29>": "[KEY_CONV,REACT_SERVS|DESCRIPTION_XREF|SHOW_REACT_SERVS]", - "<1,30>": "SEQKEY", - "<1,31>": "0", - "<1,32>": { - "<1,32,1>": "0x7fffe", - "<1,32,2>": "0xc0014008" - }, + "<1,28>": "", + "<1,29>": "", + "<1,30>": "", + "<1,31>": "", + "<1,32>": "", "<1,33>": "", "<1,34>": "", "<1,35>": "", @@ -422,28 +594,101 @@ "<1,49>": "", "<1,50>": "", "<1,51>": "", - "<1,52>": "" + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": "", + "<1,56>": "", + "<1,57>": "", + "<1,58>": "", + "<1,59>": "", + "<1,60>": "", + "<1,61>": "", + "<1,62>": "0", + "<1,63>": { + "<1,63,1>": "", + "<1,63,2>": "-2", + "<1,63,3>": "", + "<1,63,4>": "", + "<1,63,5>": "", + "<1,63,6>": "", + "<1,63,7>": "", + "<1,63,8>": "0" + }, + "<1,64>": { + "<1,64,1>": "", + "<1,64,2>": "", + "<1,64,3>": "" + }, + "<1,65>": "-2", + "<1,66>": "", + "<1,67>": "", + "<1,68>": "", + "<1,69>": "", + "<1,70>": "", + "<1,71>": "", + "<1,72>": "", + "<1,73>": "", + "<1,74>": "", + "<1,75>": "", + "<1,76>": "", + "<1,77>": "", + "<1,78>": "", + "<1,79>": "", + "<1,80>": "", + "<1,81>": "", + "<1,82>": "", + "<1,83>": "", + "<1,84>": "", + "<1,85>": "", + "<1,86>": "", + "<1,87>": "", + "<1,88>": "", + "<1,89>": "", + "<1,90>": "", + "<1,91>": "", + "<1,92>": "", + "<1,93>": "", + "<1,94>": "", + "<1,95>": "", + "<1,96>": "", + "<1,97>": "", + "<1,98>": "", + "<1,99>": "", + "<1,100>": "", + "<1,101>": "", + "<1,102>": "", + "<1,103>": "", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "", + "<1,107>": "", + "<1,108>": "" }, "<2>": { - "<2,1>": "SERV_CAT_ID", + "<2,1>": "STA_INTR_MAINT_FLOW", "<2,2>": "", - "<2,3>": "EDITFIELD", - "<2,4>": "REACT_SERVS", - "<2,5>": "109", - "<2,6>": "271", - "<2,7>": "54", - "<2,8>": "18", - "<2,9>": "", + "<2,3>": "STATIC", + "<2,4>": "REACT_SERVS.GRP_INTRUSIVE_MAINT", + "<2,5>": "104", + "<2,6>": "22", + "<2,7>": "161", + "<2,8>": "13", + "<2,9>": "Intrusive Maintenance Flow Id:", "<2,10>": { - "<2,10,1>": "0x56800080", - "<2,10,2>": "0x200" + "<2,10,1>": "0x56000800", + "<2,10,2>": "0x0" }, "<2,11>": { "<2,11,1>": "0x0", "<2,11,2>": "0x80000000" }, - "<2,12>": "2", - "<2,13>": "-2", + "<2,12>": "57", + "<2,13>": { + "<2,13,1>": "-1", + "<2,13,2>": "-1", + "<2,13,3>": "" + }, "<2,14>": "0", "<2,15>": { "<2,15,1>": { @@ -464,43 +709,22 @@ } }, "<2,16>": "", - "<2,17>": { - "<2,17,1>": { - "<2,17,1,1>": "GOTFOCUS", - "<2,17,1,2>": "OPTIONS" - } - }, - "<2,18>": { - "<2,18,1>": { - "<2,18,1,1>": "R", - "<2,18,1,2>": "EXECUTE", - "<2,18,1,3>": "LSL2*APPNOTE**REACTOR_LOG.SERV_ID", - "<2,18,1,4>": "REACTOR_LOG", - "<2,18,1,5>": "", - "<2,18,1,6>": "" - }, - "<2,18,2>": "" - }, - "<2,19>": { - "<2,19,1>": "HELP", - "<2,19,2>": "" - }, + "<2,17>": "", + "<2,18>": "", + "<2,19>": "", "<2,20>": "", "<2,21>": "", "<2,22>": "", - "<2,23>": "REACT_SERVS", - "<2,24>": "REACT_SERV_CAT_ID", - "<2,25>": "0", - "<2,26>": "0", + "<2,23>": "", + "<2,24>": "", + "<2,25>": "", + "<2,26>": "", "<2,27>": "", - "<2,28>": "[KEY_CONV,REACT_SERV_CAT|REACTOR_SERVICE_CATEGORY_XREF|SHOW_REACT_SERV_CAT]", - "<2,29>": "[KEY_CONV,REACT_SERV_CAT|REACTOR_SERVICE_CATEGORY_XREF|SHOW_REACT_SERV_CAT]", - "<2,30>": "<>", - "<2,31>": "0", - "<2,32>": { - "<2,32,1>": "0x7fffe", - "<2,32,2>": "0xc0016408" - }, + "<2,28>": "", + "<2,29>": "", + "<2,30>": "", + "<2,31>": "", + "<2,32>": "", "<2,33>": "", "<2,34>": "", "<2,35>": "", @@ -520,28 +744,101 @@ "<2,49>": "", "<2,50>": "", "<2,51>": "", - "<2,52>": "" + "<2,52>": "", + "<2,53>": "", + "<2,54>": "", + "<2,55>": "", + "<2,56>": "", + "<2,57>": "", + "<2,58>": "", + "<2,59>": "", + "<2,60>": "", + "<2,61>": "", + "<2,62>": "0", + "<2,63>": { + "<2,63,1>": "", + "<2,63,2>": "", + "<2,63,3>": "", + "<2,63,4>": "", + "<2,63,5>": "", + "<2,63,6>": "", + "<2,63,7>": "", + "<2,63,8>": "" + }, + "<2,64>": { + "<2,64,1>": "", + "<2,64,2>": "", + "<2,64,3>": "" + }, + "<2,65>": "-2", + "<2,66>": "", + "<2,67>": "", + "<2,68>": "", + "<2,69>": "", + "<2,70>": "", + "<2,71>": "", + "<2,72>": "", + "<2,73>": "", + "<2,74>": "", + "<2,75>": "", + "<2,76>": "", + "<2,77>": "", + "<2,78>": "", + "<2,79>": "", + "<2,80>": "", + "<2,81>": "", + "<2,82>": "", + "<2,83>": "", + "<2,84>": "", + "<2,85>": "", + "<2,86>": "", + "<2,87>": "", + "<2,88>": "", + "<2,89>": "", + "<2,90>": "0", + "<2,91>": "0", + "<2,92>": "", + "<2,93>": "", + "<2,94>": "", + "<2,95>": "", + "<2,96>": "", + "<2,97>": "", + "<2,98>": "", + "<2,99>": "", + "<2,100>": "", + "<2,101>": "", + "<2,102>": "", + "<2,103>": "", + "<2,104>": "", + "<2,105>": "", + "<2,106>": "", + "<2,107>": "", + "<2,108>": "" }, "<3>": { - "<3,1>": "SERV_ID_LABEL", + "<3,1>": "CHB_IS_INTRUSIVE", "<3,2>": "", - "<3,3>": "STATIC", - "<3,4>": "REACT_SERVS", - "<3,5>": "22", - "<3,6>": "80", - "<3,7>": "84", - "<3,8>": "15", - "<3,9>": "Service ID: [SF2]", + "<3,3>": "CHECKBOX", + "<3,4>": "REACT_SERVS.GRP_INTRUSIVE_MAINT", + "<3,5>": "18", + "<3,6>": "21", + "<3,7>": "72", + "<3,8>": "16", + "<3,9>": "Intrusive", "<3,10>": { - "<3,10,1>": "0x56000002", + "<3,10,1>": "0x56000103", "<3,10,2>": "0x0" }, "<3,11>": { "<3,11,1>": "0x0", "<3,11,2>": "0x80000000" }, - "<3,12>": "3", - "<3,13>": "-1", + "<3,12>": "56", + "<3,13>": { + "<3,13,1>": "-1", + "<3,13,2>": "-1", + "<3,13,3>": "" + }, "<3,14>": "0", "<3,15>": { "<3,15,1>": { @@ -563,28 +860,53 @@ }, "<3,16>": "", "<3,17>": "", - "<3,18>": "", - "<3,19>": "", + "<3,18>": { + "<3,18,1>": { + "<3,18,1,1>": "X", + "<3,18,1,2>": "EXECUTE", + "<3,18,1,3>": "COMM_REACT_SERVS", + "<3,18,1,4>": { + "<3,18,1,4,1>": "@SELF", + "<3,18,1,4,2>": "@EVENT", + "<3,18,1,4,3>": "@PARAM1", + "<3,18,1,4,4>": "@PARAM2", + "<3,18,1,4,5>": "@PARAM3", + "<3,18,1,4,6>": "@PARAM4", + "<3,18,1,4,7>": "@PARAM5", + "<3,18,1,4,8>": "@PARAM6" + }, + "<3,18,1,5>": "", + "<3,18,1,6>": "", + "<3,18,1,7>": "", + "<3,18,1,8>": "", + "<3,18,1,9>": "", + "<3,18,1,10>": "", + "<3,18,1,11>": "", + "<3,18,1,12>": "", + "<3,18,1,13>": "", + "<3,18,1,14>": "", + "<3,18,1,15>": "STPROC", + "<3,18,1,16>": "0" + } + }, + "<3,19>": "CLICK", "<3,20>": "", "<3,21>": "", "<3,22>": "", - "<3,23>": "", - "<3,24>": "", - "<3,25>": "0", - "<3,26>": "0", + "<3,23>": "REACT_SERVS", + "<3,24>": "IS_INTRUSIVE", + "<3,25>": "", + "<3,26>": "", "<3,27>": "", - "<3,28>": "<>", - "<3,29>": "<>", - "<3,30>": "<>", - "<3,31>": "0", - "<3,32>": { - "<3,32,1>": "0x7fffe", - "<3,32,2>": "0xf0016808" - }, + "<3,28>": "", + "<3,29>": "", + "<3,30>": "", + "<3,31>": "", + "<3,32>": "", "<3,33>": "", "<3,34>": "", "<3,35>": "", - "<3,36>": "", + "<3,36>": "0", "<3,37>": "", "<3,38>": "", "<3,39>": "", @@ -600,33 +922,106 @@ "<3,49>": "", "<3,50>": "", "<3,51>": "", - "<3,52>": "" + "<3,52>": "", + "<3,53>": "", + "<3,54>": "", + "<3,55>": "", + "<3,56>": "", + "<3,57>": "", + "<3,58>": "", + "<3,59>": "", + "<3,60>": "", + "<3,61>": "", + "<3,62>": "0", + "<3,63>": { + "<3,63,1>": "", + "<3,63,2>": "", + "<3,63,3>": "", + "<3,63,4>": "", + "<3,63,5>": "", + "<3,63,6>": "", + "<3,63,7>": "", + "<3,63,8>": "" + }, + "<3,64>": { + "<3,64,1>": "", + "<3,64,2>": "", + "<3,64,3>": "" + }, + "<3,65>": "-2", + "<3,66>": "", + "<3,67>": "", + "<3,68>": "", + "<3,69>": "", + "<3,70>": "", + "<3,71>": "", + "<3,72>": "", + "<3,73>": "", + "<3,74>": "", + "<3,75>": "", + "<3,76>": "", + "<3,77>": "", + "<3,78>": "", + "<3,79>": "", + "<3,80>": "", + "<3,81>": "", + "<3,82>": "", + "<3,83>": "", + "<3,84>": "", + "<3,85>": "", + "<3,86>": "", + "<3,87>": "", + "<3,88>": "", + "<3,89>": "", + "<3,90>": "0", + "<3,91>": "0", + "<3,92>": "", + "<3,93>": "", + "<3,94>": "", + "<3,95>": "", + "<3,96>": "", + "<3,97>": "", + "<3,98>": "", + "<3,99>": "", + "<3,100>": "", + "<3,101>": "", + "<3,102>": "", + "<3,103>": "", + "<3,104>": "", + "<3,105>": "", + "<3,106>": "", + "<3,107>": "", + "<3,108>": "" }, "<4>": { - "<4,1>": "DESCRIPTION_LABEL", + "<4,1>": "CBO_INTR_MAINT_FLOW", "<4,2>": "", - "<4,3>": "STATIC", - "<4,4>": "REACT_SERVS", - "<4,5>": "46", - "<4,6>": "105", - "<4,7>": "60", - "<4,8>": "15", - "<4,9>": "Description:", + "<4,3>": "COMBOBOX", + "<4,4>": "REACT_SERVS.GRP_INTRUSIVE_MAINT", + "<4,5>": "269", + "<4,6>": "17", + "<4,7>": "40", + "<4,8>": "23", + "<4,9>": "", "<4,10>": { - "<4,10,1>": "0x56000002", + "<4,10,1>": "0x5E000003", "<4,10,2>": "0x0" }, "<4,11>": { "<4,11,1>": "0x0", - "<4,11,2>": "0x80000000" + "<4,11,2>": "0x80000C00" }, - "<4,12>": "4", - "<4,13>": "-1", - "<4,14>": "0", + "<4,12>": "55", + "<4,13>": { + "<4,13,1>": "-2", + "<4,13,2>": "-2", + "<4,13,3>": "" + }, + "<4,14>": "-2", "<4,15>": { "<4,15,1>": { - "<4,15,1,1>": "Tahoma", - "<4,15,1,2>": "-11", + "<4,15,1,1>": "Segoe UI", + "<4,15,1,2>": "-12", "<4,15,1,3>": "400", "<4,15,1,4>": "0", "<4,15,1,5>": "0", @@ -636,9 +1031,7 @@ "<4,15,1,9>": "0", "<4,15,1,10>": "3", "<4,15,1,11>": "2", - "<4,15,1,12>": "1", - "<4,15,1,13>": "0", - "<4,15,1,14>": "0" + "<4,15,1,12>": "1" } }, "<4,16>": "", @@ -648,22 +1041,31 @@ "<4,20>": "", "<4,21>": "", "<4,22>": "", - "<4,23>": "", - "<4,24>": "", - "<4,25>": "0", - "<4,26>": "0", + "<4,23>": "REACT_SERVS", + "<4,24>": "INTR_MAINT_FLOW_ID", + "<4,25>": "", + "<4,26>": "", "<4,27>": "", "<4,28>": "<>", "<4,29>": "<>", "<4,30>": "<>", "<4,31>": "0", - "<4,32>": { - "<4,32,1>": "0x7fffe", - "<4,32,2>": "0xf0016808" - }, + "<4,32>": "", "<4,33>": "", "<4,34>": "", - "<4,35>": "", + "<4,35>": { + "<4,35,1>": "", + "<4,35,2>": "A", + "<4,35,3>": "B", + "<4,35,4>": "C", + "<4,35,5>": "D", + "<4,35,6>": "E", + "<4,35,7>": "F", + "<4,35,8>": "G", + "<4,35,9>": "H", + "<4,35,10>": "I", + "<4,35,11>": "J" + }, "<4,36>": "", "<4,37>": "", "<4,38>": "", @@ -680,28 +1082,96 @@ "<4,49>": "", "<4,50>": "", "<4,51>": "", - "<4,52>": "" + "<4,52>": "", + "<4,53>": "", + "<4,54>": "", + "<4,55>": "", + "<4,56>": "", + "<4,57>": "", + "<4,58>": "", + "<4,59>": "", + "<4,60>": "", + "<4,61>": "", + "<4,62>": "0", + "<4,63>": "", + "<4,64>": { + "<4,64,1>": "", + "<4,64,2>": "", + "<4,64,3>": "" + }, + "<4,65>": "-2", + "<4,66>": { + "<4,66,1>": "", + "<4,66,2>": "", + "<4,66,3>": "" + }, + "<4,67>": "-2", + "<4,68>": "", + "<4,69>": "", + "<4,70>": "", + "<4,71>": "", + "<4,72>": "", + "<4,73>": "", + "<4,74>": "", + "<4,75>": "", + "<4,76>": "", + "<4,77>": "", + "<4,78>": "", + "<4,79>": "", + "<4,80>": "", + "<4,81>": "", + "<4,82>": "", + "<4,83>": "", + "<4,84>": "", + "<4,85>": "", + "<4,86>": "", + "<4,87>": "", + "<4,88>": "", + "<4,89>": "", + "<4,90>": "", + "<4,91>": "", + "<4,92>": "", + "<4,93>": "", + "<4,94>": "", + "<4,95>": "", + "<4,96>": "", + "<4,97>": "", + "<4,98>": "", + "<4,99>": "", + "<4,100>": "", + "<4,101>": "", + "<4,102>": "", + "<4,103>": "", + "<4,104>": "", + "<4,105>": "", + "<4,106>": "", + "<4,107>": "", + "<4,108>": "" }, "<5>": { - "<5,1>": "DESCRIPTION", + "<5,1>": "SERV_ID", "<5,2>": "", "<5,3>": "EDITFIELD", "<5,4>": "REACT_SERVS", "<5,5>": "109", - "<5,6>": "102", - "<5,7>": "429", + "<5,6>": "79", + "<5,7>": "72", "<5,8>": "18", "<5,9>": "", "<5,10>": { - "<5,10,1>": "0x56800080", + "<5,10,1>": "0x56000088", "<5,10,2>": "0x200" }, "<5,11>": { - "<5,11,1>": "0x0", + "<5,11,1>": "0x4", "<5,11,2>": "0x80000000" }, - "<5,12>": "5", - "<5,13>": "-2", + "<5,12>": "1", + "<5,13>": { + "<5,13,1>": "8454143", + "<5,13,2>": "8454143", + "<5,13,3>": "" + }, "<5,14>": "0", "<5,15>": { "<5,15,1>": { @@ -722,42 +1192,57 @@ } }, "<5,16>": "", - "<5,17>": "", + "<5,17>": "OPTIONS", "<5,18>": { "<5,18,1>": { "<5,18,1,1>": "R", "<5,18,1,2>": "EXECUTE", - "<5,18,1,3>": "LSL2*APPNOTE**REACT_SERVS.DESCRIPTION", + "<5,18,1,3>": "LSL2*APPNOTE**REACT_SERVS.SERV_ID", "<5,18,1,4>": "REACT_SERVS", "<5,18,1,5>": "", - "<5,18,1,6>": "" - }, - "<5,18,2>": "" - }, - "<5,19>": { - "<5,19,1>": "HELP", - "<5,19,2>": "" + "<5,18,1,6>": "", + "<5,18,1,7>": "", + "<5,18,1,8>": "", + "<5,18,1,9>": "", + "<5,18,1,10>": "", + "<5,18,1,11>": "", + "<5,18,1,12>": "", + "<5,18,1,13>": "", + "<5,18,1,14>": "", + "<5,18,1,15>": "APPNOTE" + } }, + "<5,19>": "HELP", "<5,20>": "", "<5,21>": "", "<5,22>": "", "<5,23>": "REACT_SERVS", - "<5,24>": "DESCRIPTION", - "<5,25>": "0", - "<5,26>": "0", + "<5,24>": "SERV_ID", + "<5,25>": "", + "<5,26>": "", "<5,27>": "", - "<5,28>": "", - "<5,29>": "", - "<5,30>": "<>", - "<5,31>": "0", - "<5,32>": { - "<5,32,1>": "0x7fffe", - "<5,32,2>": "0xc0016c08" + "<5,28>": { + "<5,28,1>": { + "<5,28,1,1>": { + "<5,28,1,1,1>": "[KEY_CONV,REACT_SERVS", + "<5,28,1,1,2>": "DESCRIPTION_XREF", + "<5,28,1,1,3>": "SHOW_REACT_SERVS]", + "<5,28,1,1,4>": "0N", + "<5,28,1,1,5>": "" + } + } }, + "<5,29>": "[KEY_CONV,REACT_SERVS|DESCRIPTION_XREF|SHOW_REACT_SERVS]", + "<5,30>": "SEQKEY", + "<5,31>": "0", + "<5,32>": "", "<5,33>": "", "<5,34>": "", "<5,35>": "", - "<5,36>": "", + "<5,36>": { + "<5,36,1>": "0", + "<5,36,2>": "0" + }, "<5,37>": "", "<5,38>": "", "<5,39>": "", @@ -773,28 +1258,88 @@ "<5,49>": "", "<5,50>": "", "<5,51>": "", - "<5,52>": "" + "<5,52>": "", + "<5,53>": "", + "<5,54>": "", + "<5,55>": "", + "<5,56>": "", + "<5,57>": "", + "<5,58>": "", + "<5,59>": "", + "<5,60>": "", + "<5,61>": "", + "<5,62>": "0", + "<5,63>": "", + "<5,64>": "", + "<5,65>": "", + "<5,66>": "", + "<5,67>": "", + "<5,68>": "", + "<5,69>": "", + "<5,70>": "", + "<5,71>": "", + "<5,72>": "", + "<5,73>": "", + "<5,74>": "", + "<5,75>": "", + "<5,76>": "", + "<5,77>": "", + "<5,78>": "", + "<5,79>": "", + "<5,80>": "", + "<5,81>": "", + "<5,82>": "", + "<5,83>": "", + "<5,84>": "", + "<5,85>": "", + "<5,86>": "", + "<5,87>": "", + "<5,88>": "", + "<5,89>": "", + "<5,90>": "", + "<5,91>": "", + "<5,92>": "", + "<5,93>": "", + "<5,94>": "", + "<5,95>": "", + "<5,96>": "", + "<5,97>": "", + "<5,98>": "", + "<5,99>": "", + "<5,100>": "", + "<5,101>": "", + "<5,102>": "", + "<5,103>": "", + "<5,104>": "", + "<5,105>": "", + "<5,106>": "", + "<5,107>": "", + "<5,108>": "" }, "<6>": { - "<6,1>": "ENTRY_ID", + "<6,1>": "SERV_CAT_ID", "<6,2>": "", "<6,3>": "EDITFIELD", "<6,4>": "REACT_SERVS", - "<6,5>": "264", - "<6,6>": "79", - "<6,7>": "132", + "<6,5>": "109", + "<6,6>": "271", + "<6,7>": "54", "<6,8>": "18", "<6,9>": "", "<6,10>": { - "<6,10,1>": "0x56800080", + "<6,10,1>": "0x56000080", "<6,10,2>": "0x200" }, "<6,11>": { "<6,11,1>": "0x0", "<6,11,2>": "0x80000000" }, - "<6,12>": "6", - "<6,13>": "-2", + "<6,12>": "2", + "<6,13>": { + "<6,13,1>": "-2", + "<6,13,2>": "-2", + "<6,13,3>": "" + }, "<6,14>": "0", "<6,15>": { "<6,15,1>": { @@ -815,29 +1360,60 @@ } }, "<6,16>": "", - "<6,17>": "", - "<6,18>": "", - "<6,19>": "", + "<6,17>": { + "<6,17,1>": { + "<6,17,1,1>": "OPTIONS", + "<6,17,1,2>": "GOTFOCUS" + } + }, + "<6,18>": { + "<6,18,1>": { + "<6,18,1,1>": "R", + "<6,18,1,2>": "EXECUTE", + "<6,18,1,3>": "LSL2*APPNOTE**REACTOR_LOG.SERV_ID", + "<6,18,1,4>": "REACTOR_LOG", + "<6,18,1,5>": "", + "<6,18,1,6>": "", + "<6,18,1,7>": "", + "<6,18,1,8>": "", + "<6,18,1,9>": "", + "<6,18,1,10>": "", + "<6,18,1,11>": "", + "<6,18,1,12>": "", + "<6,18,1,13>": "", + "<6,18,1,14>": "", + "<6,18,1,15>": "APPNOTE" + } + }, + "<6,19>": "HELP", "<6,20>": "", "<6,21>": "", "<6,22>": "", "<6,23>": "REACT_SERVS", - "<6,24>": "ENTRY_ID", - "<6,25>": "0", - "<6,26>": "0", + "<6,24>": "REACT_SERV_CAT_ID", + "<6,25>": "", + "<6,26>": "", "<6,27>": "", - "<6,28>": "", - "<6,29>": "[XLATE_CONV,LSL_USERS*FIRST_LAST]", + "<6,28>": { + "<6,28,1>": { + "<6,28,1,1>": { + "<6,28,1,1,1>": "[KEY_CONV,REACT_SERV_CAT", + "<6,28,1,1,2>": "REACTOR_SERVICE_CATEGORY_XREF", + "<6,28,1,1,3>": "SHOW_REACT_SERV_CAT]" + } + } + }, + "<6,29>": "[KEY_CONV,REACT_SERV_CAT|REACTOR_SERVICE_CATEGORY_XREF|SHOW_REACT_SERV_CAT]", "<6,30>": "<>", "<6,31>": "0", - "<6,32>": { - "<6,32,1>": "0x7fffe", - "<6,32,2>": "0xc0012c08" - }, + "<6,32>": "", "<6,33>": "", "<6,34>": "", "<6,35>": "", - "<6,36>": "", + "<6,36>": { + "<6,36,1>": "0", + "<6,36,2>": "0" + }, "<6,37>": "", "<6,38>": "", "<6,39>": "", @@ -853,28 +1429,88 @@ "<6,49>": "", "<6,50>": "", "<6,51>": "", - "<6,52>": "" + "<6,52>": "", + "<6,53>": "", + "<6,54>": "", + "<6,55>": "", + "<6,56>": "", + "<6,57>": "", + "<6,58>": "", + "<6,59>": "", + "<6,60>": "", + "<6,61>": "", + "<6,62>": "0", + "<6,63>": "", + "<6,64>": "", + "<6,65>": "", + "<6,66>": "", + "<6,67>": "", + "<6,68>": "", + "<6,69>": "", + "<6,70>": "", + "<6,71>": "", + "<6,72>": "", + "<6,73>": "", + "<6,74>": "", + "<6,75>": "", + "<6,76>": "", + "<6,77>": "", + "<6,78>": "", + "<6,79>": "", + "<6,80>": "", + "<6,81>": "", + "<6,82>": "", + "<6,83>": "", + "<6,84>": "", + "<6,85>": "", + "<6,86>": "", + "<6,87>": "", + "<6,88>": "", + "<6,89>": "", + "<6,90>": "", + "<6,91>": "", + "<6,92>": "", + "<6,93>": "", + "<6,94>": "", + "<6,95>": "", + "<6,96>": "", + "<6,97>": "", + "<6,98>": "", + "<6,99>": "", + "<6,100>": "", + "<6,101>": "", + "<6,102>": "", + "<6,103>": "", + "<6,104>": "", + "<6,105>": "", + "<6,106>": "", + "<6,107>": "", + "<6,108>": "" }, "<7>": { - "<7,1>": "ENTRY_DATE", + "<7,1>": "SERV_ID_LABEL", "<7,2>": "", - "<7,3>": "EDITFIELD", + "<7,3>": "STATIC", "<7,4>": "REACT_SERVS", - "<7,5>": "471", - "<7,6>": "79", - "<7,7>": "66", - "<7,8>": "18", - "<7,9>": "", + "<7,5>": "22", + "<7,6>": "80", + "<7,7>": "84", + "<7,8>": "15", + "<7,9>": "Service ID: [SF2]", "<7,10>": { - "<7,10,1>": "0x56800080", - "<7,10,2>": "0x200" + "<7,10,1>": "0x56000800", + "<7,10,2>": "0x0" }, "<7,11>": { "<7,11,1>": "0x0", "<7,11,2>": "0x80000000" }, - "<7,12>": "7", - "<7,13>": "-2", + "<7,12>": "3", + "<7,13>": { + "<7,13,1>": "-1", + "<7,13,2>": "-1", + "<7,13,3>": "" + }, "<7,14>": "0", "<7,15>": { "<7,15,1>": { @@ -901,19 +1537,16 @@ "<7,20>": "", "<7,21>": "", "<7,22>": "", - "<7,23>": "REACT_SERVS", - "<7,24>": "ENTRY_DATE", - "<7,25>": "0", - "<7,26>": "0", + "<7,23>": "", + "<7,24>": "", + "<7,25>": "", + "<7,26>": "", "<7,27>": "", "<7,28>": "", "<7,29>": "", - "<7,30>": "<>", - "<7,31>": "0", - "<7,32>": { - "<7,32,1>": "0x7fffe", - "<7,32,2>": "0xc0012c08" - }, + "<7,30>": "", + "<7,31>": "", + "<7,32>": "", "<7,33>": "", "<7,34>": "", "<7,35>": "", @@ -933,28 +1566,101 @@ "<7,49>": "", "<7,50>": "", "<7,51>": "", - "<7,52>": "" + "<7,52>": "", + "<7,53>": "", + "<7,54>": "", + "<7,55>": "", + "<7,56>": "", + "<7,57>": "", + "<7,58>": "", + "<7,59>": "", + "<7,60>": "", + "<7,61>": "", + "<7,62>": "0", + "<7,63>": { + "<7,63,1>": "", + "<7,63,2>": "", + "<7,63,3>": "", + "<7,63,4>": "", + "<7,63,5>": "", + "<7,63,6>": "", + "<7,63,7>": "", + "<7,63,8>": "" + }, + "<7,64>": { + "<7,64,1>": "", + "<7,64,2>": "", + "<7,64,3>": "" + }, + "<7,65>": "-2", + "<7,66>": "", + "<7,67>": "", + "<7,68>": "", + "<7,69>": "", + "<7,70>": "", + "<7,71>": "", + "<7,72>": "", + "<7,73>": "", + "<7,74>": "", + "<7,75>": "", + "<7,76>": "", + "<7,77>": "", + "<7,78>": "", + "<7,79>": "", + "<7,80>": "", + "<7,81>": "", + "<7,82>": "", + "<7,83>": "", + "<7,84>": "", + "<7,85>": "", + "<7,86>": "", + "<7,87>": "", + "<7,88>": "", + "<7,89>": "", + "<7,90>": "0", + "<7,91>": "0", + "<7,92>": "", + "<7,93>": "", + "<7,94>": "", + "<7,95>": "", + "<7,96>": "", + "<7,97>": "", + "<7,98>": "", + "<7,99>": "", + "<7,100>": "", + "<7,101>": "", + "<7,102>": "", + "<7,103>": "", + "<7,104>": "", + "<7,105>": "", + "<7,106>": "", + "<7,107>": "", + "<7,108>": "" }, "<8>": { - "<8,1>": "ENTRY_DATE_LABEL", + "<8,1>": "DESCRIPTION_LABEL", "<8,2>": "", "<8,3>": "STATIC", "<8,4>": "REACT_SERVS", - "<8,5>": "405", - "<8,6>": "80", - "<8,7>": "63", - "<8,8>": "12", - "<8,9>": "Entry Date:", + "<8,5>": "46", + "<8,6>": "105", + "<8,7>": "60", + "<8,8>": "15", + "<8,9>": "Description:", "<8,10>": { - "<8,10,1>": "0x56000002", + "<8,10,1>": "0x56000800", "<8,10,2>": "0x0" }, "<8,11>": { "<8,11,1>": "0x0", "<8,11,2>": "0x80000000" }, - "<8,12>": "8", - "<8,13>": "-1", + "<8,12>": "4", + "<8,13>": { + "<8,13,1>": "-1", + "<8,13,2>": "-1", + "<8,13,3>": "" + }, "<8,14>": "0", "<8,15>": { "<8,15,1>": { @@ -983,17 +1689,14 @@ "<8,22>": "", "<8,23>": "", "<8,24>": "", - "<8,25>": "0", - "<8,26>": "0", + "<8,25>": "", + "<8,26>": "", "<8,27>": "", - "<8,28>": "<>", - "<8,29>": "<>", - "<8,30>": "<>", - "<8,31>": "0", - "<8,32>": { - "<8,32,1>": "0x7fffe", - "<8,32,2>": "0xf0016808" - }, + "<8,28>": "", + "<8,29>": "", + "<8,30>": "", + "<8,31>": "", + "<8,32>": "", "<8,33>": "", "<8,34>": "", "<8,35>": "", @@ -1013,28 +1716,101 @@ "<8,49>": "", "<8,50>": "", "<8,51>": "", - "<8,52>": "" + "<8,52>": "", + "<8,53>": "", + "<8,54>": "", + "<8,55>": "", + "<8,56>": "", + "<8,57>": "", + "<8,58>": "", + "<8,59>": "", + "<8,60>": "", + "<8,61>": "", + "<8,62>": "0", + "<8,63>": { + "<8,63,1>": "", + "<8,63,2>": "", + "<8,63,3>": "", + "<8,63,4>": "", + "<8,63,5>": "", + "<8,63,6>": "", + "<8,63,7>": "", + "<8,63,8>": "" + }, + "<8,64>": { + "<8,64,1>": "", + "<8,64,2>": "", + "<8,64,3>": "" + }, + "<8,65>": "-2", + "<8,66>": "", + "<8,67>": "", + "<8,68>": "", + "<8,69>": "", + "<8,70>": "", + "<8,71>": "", + "<8,72>": "", + "<8,73>": "", + "<8,74>": "", + "<8,75>": "", + "<8,76>": "", + "<8,77>": "", + "<8,78>": "", + "<8,79>": "", + "<8,80>": "", + "<8,81>": "", + "<8,82>": "", + "<8,83>": "", + "<8,84>": "", + "<8,85>": "", + "<8,86>": "", + "<8,87>": "", + "<8,88>": "", + "<8,89>": "", + "<8,90>": "0", + "<8,91>": "0", + "<8,92>": "", + "<8,93>": "", + "<8,94>": "", + "<8,95>": "", + "<8,96>": "", + "<8,97>": "", + "<8,98>": "", + "<8,99>": "", + "<8,100>": "", + "<8,101>": "", + "<8,102>": "", + "<8,103>": "", + "<8,104>": "", + "<8,105>": "", + "<8,106>": "", + "<8,107>": "", + "<8,108>": "" }, "<9>": { - "<9,1>": "ENTRY_BY_LABEL", + "<9,1>": "DESCRIPTION", "<9,2>": "", - "<9,3>": "STATIC", + "<9,3>": "EDITFIELD", "<9,4>": "REACT_SERVS", - "<9,5>": "206", - "<9,6>": "80", - "<9,7>": "54", - "<9,8>": "15", - "<9,9>": "Entry By:", + "<9,5>": "109", + "<9,6>": "102", + "<9,7>": "429", + "<9,8>": "18", + "<9,9>": "", "<9,10>": { - "<9,10,1>": "0x56000002", - "<9,10,2>": "0x0" + "<9,10,1>": "0x56000080", + "<9,10,2>": "0x200" }, "<9,11>": { "<9,11,1>": "0x0", "<9,11,2>": "0x80000000" }, - "<9,12>": "9", - "<9,13>": "-1", + "<9,12>": "5", + "<9,13>": { + "<9,13,1>": "-2", + "<9,13,2>": "-2", + "<9,13,3>": "" + }, "<9,14>": "0", "<9,15>": { "<9,15,1>": { @@ -1056,28 +1832,46 @@ }, "<9,16>": "", "<9,17>": "", - "<9,18>": "", - "<9,19>": "", + "<9,18>": { + "<9,18,1>": { + "<9,18,1,1>": "R", + "<9,18,1,2>": "EXECUTE", + "<9,18,1,3>": "LSL2*APPNOTE**REACT_SERVS.DESCRIPTION", + "<9,18,1,4>": "REACT_SERVS", + "<9,18,1,5>": "", + "<9,18,1,6>": "", + "<9,18,1,7>": "", + "<9,18,1,8>": "", + "<9,18,1,9>": "", + "<9,18,1,10>": "", + "<9,18,1,11>": "", + "<9,18,1,12>": "", + "<9,18,1,13>": "", + "<9,18,1,14>": "", + "<9,18,1,15>": "APPNOTE" + } + }, + "<9,19>": "HELP", "<9,20>": "", "<9,21>": "", "<9,22>": "", - "<9,23>": "", - "<9,24>": "", - "<9,25>": "0", - "<9,26>": "0", + "<9,23>": "REACT_SERVS", + "<9,24>": "DESCRIPTION", + "<9,25>": "", + "<9,26>": "", "<9,27>": "", - "<9,28>": "<>", - "<9,29>": "<>", + "<9,28>": "", + "<9,29>": "", "<9,30>": "<>", "<9,31>": "0", - "<9,32>": { - "<9,32,1>": "0x7fffe", - "<9,32,2>": "0xf0016808" - }, + "<9,32>": "", "<9,33>": "", "<9,34>": "", "<9,35>": "", - "<9,36>": "", + "<9,36>": { + "<9,36,1>": "0", + "<9,36,2>": "0" + }, "<9,37>": "", "<9,38>": "", "<9,39>": "", @@ -1093,28 +1887,88 @@ "<9,49>": "", "<9,50>": "", "<9,51>": "", - "<9,52>": "" + "<9,52>": "", + "<9,53>": "", + "<9,54>": "", + "<9,55>": "", + "<9,56>": "", + "<9,57>": "", + "<9,58>": "", + "<9,59>": "", + "<9,60>": "", + "<9,61>": "", + "<9,62>": "0", + "<9,63>": "", + "<9,64>": "", + "<9,65>": "", + "<9,66>": "", + "<9,67>": "", + "<9,68>": "", + "<9,69>": "", + "<9,70>": "", + "<9,71>": "", + "<9,72>": "", + "<9,73>": "", + "<9,74>": "", + "<9,75>": "", + "<9,76>": "", + "<9,77>": "", + "<9,78>": "", + "<9,79>": "", + "<9,80>": "", + "<9,81>": "", + "<9,82>": "", + "<9,83>": "", + "<9,84>": "", + "<9,85>": "", + "<9,86>": "", + "<9,87>": "", + "<9,88>": "", + "<9,89>": "", + "<9,90>": "", + "<9,91>": "", + "<9,92>": "", + "<9,93>": "", + "<9,94>": "", + "<9,95>": "", + "<9,96>": "", + "<9,97>": "", + "<9,98>": "", + "<9,99>": "", + "<9,100>": "", + "<9,101>": "", + "<9,102>": "", + "<9,103>": "", + "<9,104>": "", + "<9,105>": "", + "<9,106>": "", + "<9,107>": "", + "<9,108>": "" }, "<10>": { - "<10,1>": "INJECTOR_CHANGE", + "<10,1>": "ENTRY_ID", "<10,2>": "", - "<10,3>": "CHECKBOX", + "<10,3>": "EDITFIELD", "<10,4>": "REACT_SERVS", - "<10,5>": "591", - "<10,6>": "95", - "<10,7>": "138", - "<10,8>": "15", - "<10,9>": "Injector Change Service", + "<10,5>": "264", + "<10,6>": "79", + "<10,7>": "132", + "<10,8>": "18", + "<10,9>": "", "<10,10>": { - "<10,10,1>": "0x56000003", - "<10,10,2>": "0x0" + "<10,10,1>": "0x56000080", + "<10,10,2>": "0x200" }, "<10,11>": { - "<10,11,1>": "0x100", + "<10,11,1>": "0x0", "<10,11,2>": "0x80000000" }, - "<10,12>": "10", - "<10,13>": "-1", + "<10,12>": "6", + "<10,13>": { + "<10,13,1>": "-2", + "<10,13,2>": "-2", + "<10,13,3>": "" + }, "<10,14>": "0", "<10,15>": { "<10,15,1>": { @@ -1142,26 +1996,26 @@ "<10,21>": "", "<10,22>": "", "<10,23>": "REACT_SERVS", - "<10,24>": "INJECTOR_CHANGE", - "<10,25>": "0", - "<10,26>": "0", + "<10,24>": "ENTRY_ID", + "<10,25>": "", + "<10,26>": "", "<10,27>": "", - "<10,28>": "<>", - "<10,29>": "<>", - "<10,30>": "", + "<10,28>": "", + "<10,29>": "[XLATE_CONV,LSL_USERS*FIRST_LAST]", + "<10,30>": "<>", "<10,31>": "0", - "<10,32>": { - "<10,32,1>": "0x7fffe", - "<10,32,2>": "0xc0016008" - }, + "<10,32>": "", "<10,33>": "", "<10,34>": "", "<10,35>": "", - "<10,36>": "0", + "<10,36>": { + "<10,36,1>": "0", + "<10,36,2>": "0" + }, "<10,37>": "", "<10,38>": "", "<10,39>": "", - "<10,40>": "1", + "<10,40>": "", "<10,41>": "", "<10,42>": "", "<10,43>": "", @@ -1173,28 +2027,88 @@ "<10,49>": "", "<10,50>": "", "<10,51>": "", - "<10,52>": "" + "<10,52>": "", + "<10,53>": "", + "<10,54>": "", + "<10,55>": "", + "<10,56>": "", + "<10,57>": "", + "<10,58>": "", + "<10,59>": "", + "<10,60>": "", + "<10,61>": "", + "<10,62>": "0", + "<10,63>": "", + "<10,64>": "", + "<10,65>": "", + "<10,66>": "", + "<10,67>": "", + "<10,68>": "", + "<10,69>": "", + "<10,70>": "", + "<10,71>": "", + "<10,72>": "", + "<10,73>": "", + "<10,74>": "", + "<10,75>": "", + "<10,76>": "", + "<10,77>": "", + "<10,78>": "", + "<10,79>": "", + "<10,80>": "", + "<10,81>": "", + "<10,82>": "", + "<10,83>": "", + "<10,84>": "", + "<10,85>": "", + "<10,86>": "", + "<10,87>": "", + "<10,88>": "", + "<10,89>": "", + "<10,90>": "", + "<10,91>": "", + "<10,92>": "", + "<10,93>": "", + "<10,94>": "", + "<10,95>": "", + "<10,96>": "", + "<10,97>": "", + "<10,98>": "", + "<10,99>": "", + "<10,100>": "", + "<10,101>": "", + "<10,102>": "", + "<10,103>": "", + "<10,104>": "", + "<10,105>": "", + "<10,106>": "", + "<10,107>": "", + "<10,108>": "" }, "<11>": { - "<11,1>": "PM_DAYS", + "<11,1>": "ENTRY_DATE", "<11,2>": "", "<11,3>": "EDITFIELD", "<11,4>": "REACT_SERVS", - "<11,5>": "487", - "<11,6>": "331", - "<11,7>": "51", - "<11,8>": "21", + "<11,5>": "471", + "<11,6>": "79", + "<11,7>": "66", + "<11,8>": "18", "<11,9>": "", "<11,10>": { - "<11,10,1>": "0x56800080", + "<11,10,1>": "0x56000080", "<11,10,2>": "0x200" }, "<11,11>": { "<11,11,1>": "0x0", "<11,11,2>": "0x80000000" }, - "<11,12>": "11", - "<11,13>": "-2", + "<11,12>": "7", + "<11,13>": { + "<11,13,1>": "-2", + "<11,13,2>": "-2", + "<11,13,3>": "" + }, "<11,14>": "0", "<11,15>": { "<11,15,1>": { @@ -1222,22 +2136,22 @@ "<11,21>": "", "<11,22>": "", "<11,23>": "REACT_SERVS", - "<11,24>": "PM_DAYS", - "<11,25>": "0", - "<11,26>": "0", + "<11,24>": "ENTRY_DATE", + "<11,25>": "", + "<11,26>": "", "<11,27>": "", "<11,28>": "", "<11,29>": "", - "<11,30>": "<>", + "<11,30>": "<>", "<11,31>": "0", - "<11,32>": { - "<11,32,1>": "0x7fffe", - "<11,32,2>": "0xc0016c08" - }, + "<11,32>": "", "<11,33>": "", "<11,34>": "", "<11,35>": "", - "<11,36>": "", + "<11,36>": { + "<11,36,1>": "0", + "<11,36,2>": "0" + }, "<11,37>": "", "<11,38>": "", "<11,39>": "", @@ -1253,28 +2167,88 @@ "<11,49>": "", "<11,50>": "", "<11,51>": "", - "<11,52>": "" + "<11,52>": "", + "<11,53>": "", + "<11,54>": "", + "<11,55>": "", + "<11,56>": "", + "<11,57>": "", + "<11,58>": "", + "<11,59>": "", + "<11,60>": "", + "<11,61>": "", + "<11,62>": "0", + "<11,63>": "", + "<11,64>": "", + "<11,65>": "", + "<11,66>": "", + "<11,67>": "", + "<11,68>": "", + "<11,69>": "", + "<11,70>": "", + "<11,71>": "", + "<11,72>": "", + "<11,73>": "", + "<11,74>": "", + "<11,75>": "", + "<11,76>": "", + "<11,77>": "", + "<11,78>": "", + "<11,79>": "", + "<11,80>": "", + "<11,81>": "", + "<11,82>": "", + "<11,83>": "", + "<11,84>": "", + "<11,85>": "", + "<11,86>": "", + "<11,87>": "", + "<11,88>": "", + "<11,89>": "", + "<11,90>": "", + "<11,91>": "", + "<11,92>": "", + "<11,93>": "", + "<11,94>": "", + "<11,95>": "", + "<11,96>": "", + "<11,97>": "", + "<11,98>": "", + "<11,99>": "", + "<11,100>": "", + "<11,101>": "", + "<11,102>": "", + "<11,103>": "", + "<11,104>": "", + "<11,105>": "", + "<11,106>": "", + "<11,107>": "", + "<11,108>": "" }, "<12>": { - "<12,1>": "PM_DAYS_LABEL", + "<12,1>": "ENTRY_DATE_LABEL", "<12,2>": "", "<12,3>": "STATIC", "<12,4>": "REACT_SERVS", "<12,5>": "405", - "<12,6>": "334", - "<12,7>": "78", - "<12,8>": "15", - "<12,9>": "PM Sched Days:", + "<12,6>": "80", + "<12,7>": "63", + "<12,8>": "12", + "<12,9>": "Entry Date:", "<12,10>": { - "<12,10,1>": "0x56000002", + "<12,10,1>": "0x56000800", "<12,10,2>": "0x0" }, "<12,11>": { "<12,11,1>": "0x0", "<12,11,2>": "0x80000000" }, - "<12,12>": "12", - "<12,13>": "-1", + "<12,12>": "8", + "<12,13>": { + "<12,13,1>": "-1", + "<12,13,2>": "-1", + "<12,13,3>": "" + }, "<12,14>": "0", "<12,15>": { "<12,15,1>": { @@ -1303,17 +2277,14 @@ "<12,22>": "", "<12,23>": "", "<12,24>": "", - "<12,25>": "0", - "<12,26>": "0", + "<12,25>": "", + "<12,26>": "", "<12,27>": "", - "<12,28>": "<>", - "<12,29>": "<>", - "<12,30>": "<>", - "<12,31>": "0", - "<12,32>": { - "<12,32,1>": "0x7fffe", - "<12,32,2>": "0xf0016808" - }, + "<12,28>": "", + "<12,29>": "", + "<12,30>": "", + "<12,31>": "", + "<12,32>": "", "<12,33>": "", "<12,34>": "", "<12,35>": "", @@ -1333,28 +2304,101 @@ "<12,49>": "", "<12,50>": "", "<12,51>": "", - "<12,52>": "" + "<12,52>": "", + "<12,53>": "", + "<12,54>": "", + "<12,55>": "", + "<12,56>": "", + "<12,57>": "", + "<12,58>": "", + "<12,59>": "", + "<12,60>": "", + "<12,61>": "", + "<12,62>": "0", + "<12,63>": { + "<12,63,1>": "", + "<12,63,2>": "", + "<12,63,3>": "", + "<12,63,4>": "", + "<12,63,5>": "", + "<12,63,6>": "", + "<12,63,7>": "", + "<12,63,8>": "" + }, + "<12,64>": { + "<12,64,1>": "", + "<12,64,2>": "", + "<12,64,3>": "" + }, + "<12,65>": "-2", + "<12,66>": "", + "<12,67>": "", + "<12,68>": "", + "<12,69>": "", + "<12,70>": "", + "<12,71>": "", + "<12,72>": "", + "<12,73>": "", + "<12,74>": "", + "<12,75>": "", + "<12,76>": "", + "<12,77>": "", + "<12,78>": "", + "<12,79>": "", + "<12,80>": "", + "<12,81>": "", + "<12,82>": "", + "<12,83>": "", + "<12,84>": "", + "<12,85>": "", + "<12,86>": "", + "<12,87>": "", + "<12,88>": "", + "<12,89>": "", + "<12,90>": "0", + "<12,91>": "0", + "<12,92>": "", + "<12,93>": "", + "<12,94>": "", + "<12,95>": "", + "<12,96>": "", + "<12,97>": "", + "<12,98>": "", + "<12,99>": "", + "<12,100>": "", + "<12,101>": "", + "<12,102>": "", + "<12,103>": "", + "<12,104>": "", + "<12,105>": "", + "<12,106>": "", + "<12,107>": "", + "<12,108>": "" }, "<13>": { - "<13,1>": "SERV_CAT_DESC", + "<13,1>": "ENTRY_BY_LABEL", "<13,2>": "", - "<13,3>": "EDITFIELD", + "<13,3>": "STATIC", "<13,4>": "REACT_SERVS", - "<13,5>": "205", - "<13,6>": "271", - "<13,7>": "333", - "<13,8>": "18", - "<13,9>": "", + "<13,5>": "206", + "<13,6>": "80", + "<13,7>": "54", + "<13,8>": "15", + "<13,9>": "Entry By:", "<13,10>": { - "<13,10,1>": "0x56800080", - "<13,10,2>": "0x200" + "<13,10,1>": "0x56000800", + "<13,10,2>": "0x0" }, "<13,11>": { "<13,11,1>": "0x0", "<13,11,2>": "0x80000000" }, - "<13,12>": "13", - "<13,13>": "12639424", + "<13,12>": "9", + "<13,13>": { + "<13,13,1>": "-1", + "<13,13,2>": "-1", + "<13,13,3>": "" + }, "<13,14>": "0", "<13,15>": { "<13,15,1>": { @@ -1381,19 +2425,16 @@ "<13,20>": "", "<13,21>": "", "<13,22>": "", - "<13,23>": "REACT_SERVS", - "<13,24>": "REACT_SERV_CAT_DESC", - "<13,25>": "0", - "<13,26>": "0", + "<13,23>": "", + "<13,24>": "", + "<13,25>": "", + "<13,26>": "", "<13,27>": "", "<13,28>": "", "<13,29>": "", - "<13,30>": "<>", - "<13,31>": "0", - "<13,32>": { - "<13,32,1>": "0x7fffe", - "<13,32,2>": "0xc0010408" - }, + "<13,30>": "", + "<13,31>": "", + "<13,32>": "", "<13,33>": "", "<13,34>": "", "<13,35>": "", @@ -1413,28 +2454,101 @@ "<13,49>": "", "<13,50>": "", "<13,51>": "", - "<13,52>": "" + "<13,52>": "", + "<13,53>": "", + "<13,54>": "", + "<13,55>": "", + "<13,56>": "", + "<13,57>": "", + "<13,58>": "", + "<13,59>": "", + "<13,60>": "", + "<13,61>": "", + "<13,62>": "0", + "<13,63>": { + "<13,63,1>": "", + "<13,63,2>": "", + "<13,63,3>": "", + "<13,63,4>": "", + "<13,63,5>": "", + "<13,63,6>": "", + "<13,63,7>": "", + "<13,63,8>": "" + }, + "<13,64>": { + "<13,64,1>": "", + "<13,64,2>": "", + "<13,64,3>": "" + }, + "<13,65>": "-2", + "<13,66>": "", + "<13,67>": "", + "<13,68>": "", + "<13,69>": "", + "<13,70>": "", + "<13,71>": "", + "<13,72>": "", + "<13,73>": "", + "<13,74>": "", + "<13,75>": "", + "<13,76>": "", + "<13,77>": "", + "<13,78>": "", + "<13,79>": "", + "<13,80>": "", + "<13,81>": "", + "<13,82>": "", + "<13,83>": "", + "<13,84>": "", + "<13,85>": "", + "<13,86>": "", + "<13,87>": "", + "<13,88>": "", + "<13,89>": "", + "<13,90>": "0", + "<13,91>": "0", + "<13,92>": "", + "<13,93>": "", + "<13,94>": "", + "<13,95>": "", + "<13,96>": "", + "<13,97>": "", + "<13,98>": "", + "<13,99>": "", + "<13,100>": "", + "<13,101>": "", + "<13,102>": "", + "<13,103>": "", + "<13,104>": "", + "<13,105>": "", + "<13,106>": "", + "<13,107>": "", + "<13,108>": "" }, "<14>": { - "<14,1>": "SERV_BUTTON", + "<14,1>": "INJECTOR_CHANGE", "<14,2>": "", - "<14,3>": "PUSHBMP", + "<14,3>": "CHECKBOX", "<14,4>": "REACT_SERVS", - "<14,5>": "168", - "<14,6>": "271", - "<14,7>": "18", - "<14,8>": "18", - "<14,9>": "", + "<14,5>": "591", + "<14,6>": "95", + "<14,7>": "138", + "<14,8>": "15", + "<14,9>": "Injector Change Service", "<14,10>": { - "<14,10,1>": "0x5600000B", + "<14,10,1>": "0x56000103", "<14,10,2>": "0x0" }, "<14,11>": { "<14,11,1>": "0x0", "<14,11,2>": "0x80000000" }, - "<14,12>": "14", - "<14,13>": "-2", + "<14,12>": "10", + "<14,13>": { + "<14,13,1>": "-1", + "<14,13,2>": "-1", + "<14,13,3>": "" + }, "<14,14>": "0", "<14,15>": { "<14,15,1>": { @@ -1455,29 +2569,26 @@ } }, "<14,16>": "", - "<14,17>": "CLICK", + "<14,17>": "", "<14,18>": "", "<14,19>": "", "<14,20>": "", "<14,21>": "", "<14,22>": "", - "<14,23>": "", - "<14,24>": "", - "<14,25>": "0", - "<14,26>": "0", + "<14,23>": "REACT_SERVS", + "<14,24>": "INJECTOR_CHANGE", + "<14,25>": "", + "<14,26>": "", "<14,27>": "", - "<14,28>": "<>", - "<14,29>": "<>", - "<14,30>": "<>", - "<14,31>": "0", - "<14,32>": { - "<14,32,1>": "0x7fffc", - "<14,32,2>": "0xf0016000" - }, - "<14,33>": "LSL2*IMAGE*BMP*SEARCH", + "<14,28>": "", + "<14,29>": "", + "<14,30>": "", + "<14,31>": "", + "<14,32>": "", + "<14,33>": "", "<14,34>": "", "<14,35>": "", - "<14,36>": "", + "<14,36>": "0", "<14,37>": "", "<14,38>": "", "<14,39>": "", @@ -1495,35 +2606,99 @@ "<14,51>": "", "<14,52>": "", "<14,53>": "", - "<14,54>": { - "<14,54,1>": "-5", - "<14,54,2>": "2", - "<14,54,3>": "", - "<14,54,4>": "", - "<14,54,5>": "", - "<14,54,6>": "3" - } + "<14,54>": "", + "<14,55>": "", + "<14,56>": "", + "<14,57>": "", + "<14,58>": "", + "<14,59>": "", + "<14,60>": "", + "<14,61>": "", + "<14,62>": "0", + "<14,63>": { + "<14,63,1>": "", + "<14,63,2>": "", + "<14,63,3>": "", + "<14,63,4>": "", + "<14,63,5>": "", + "<14,63,6>": "", + "<14,63,7>": "", + "<14,63,8>": "" + }, + "<14,64>": { + "<14,64,1>": "", + "<14,64,2>": "", + "<14,64,3>": "" + }, + "<14,65>": "-2", + "<14,66>": "", + "<14,67>": "", + "<14,68>": "", + "<14,69>": "", + "<14,70>": "", + "<14,71>": "", + "<14,72>": "", + "<14,73>": "", + "<14,74>": "", + "<14,75>": "", + "<14,76>": "", + "<14,77>": "", + "<14,78>": "", + "<14,79>": "", + "<14,80>": "", + "<14,81>": "", + "<14,82>": "", + "<14,83>": "", + "<14,84>": "", + "<14,85>": "", + "<14,86>": "", + "<14,87>": "", + "<14,88>": "", + "<14,89>": "", + "<14,90>": "0", + "<14,91>": "0", + "<14,92>": "", + "<14,93>": "", + "<14,94>": "", + "<14,95>": "", + "<14,96>": "", + "<14,97>": "", + "<14,98>": "", + "<14,99>": "", + "<14,100>": "", + "<14,101>": "", + "<14,102>": "", + "<14,103>": "", + "<14,104>": "", + "<14,105>": "", + "<14,106>": "", + "<14,107>": "", + "<14,108>": "" }, "<15>": { - "<15,1>": "SERV_CAT_LABEL", + "<15,1>": "PM_DAYS", "<15,2>": "", - "<15,3>": "STATIC", + "<15,3>": "EDITFIELD", "<15,4>": "REACT_SERVS", - "<15,5>": "34", - "<15,6>": "273", - "<15,7>": "72", - "<15,8>": "15", - "<15,9>": "Serv Cat ID:", + "<15,5>": "487", + "<15,6>": "331", + "<15,7>": "51", + "<15,8>": "21", + "<15,9>": "", "<15,10>": { - "<15,10,1>": "0x56000002", - "<15,10,2>": "0x0" + "<15,10,1>": "0x56000080", + "<15,10,2>": "0x200" }, "<15,11>": { "<15,11,1>": "0x0", "<15,11,2>": "0x80000000" }, - "<15,12>": "15", - "<15,13>": "-1", + "<15,12>": "11", + "<15,13>": { + "<15,13,1>": "-2", + "<15,13,2>": "-2", + "<15,13,3>": "" + }, "<15,14>": "0", "<15,15>": { "<15,15,1>": { @@ -1550,23 +2725,23 @@ "<15,20>": "", "<15,21>": "", "<15,22>": "", - "<15,23>": "", - "<15,24>": "", - "<15,25>": "0", - "<15,26>": "0", + "<15,23>": "REACT_SERVS", + "<15,24>": "PM_DAYS", + "<15,25>": "", + "<15,26>": "", "<15,27>": "", - "<15,28>": "<>", - "<15,29>": "<>", - "<15,30>": "<>", + "<15,28>": "", + "<15,29>": "", + "<15,30>": "<>", "<15,31>": "0", - "<15,32>": { - "<15,32,1>": "0x7fffe", - "<15,32,2>": "0xf0016808" - }, + "<15,32>": "", "<15,33>": "", "<15,34>": "", "<15,35>": "", - "<15,36>": "", + "<15,36>": { + "<15,36,1>": "0", + "<15,36,2>": "0" + }, "<15,37>": "", "<15,38>": "", "<15,39>": "", @@ -1582,28 +2757,88 @@ "<15,49>": "", "<15,50>": "", "<15,51>": "", - "<15,52>": "" + "<15,52>": "", + "<15,53>": "", + "<15,54>": "", + "<15,55>": "", + "<15,56>": "", + "<15,57>": "", + "<15,58>": "", + "<15,59>": "", + "<15,60>": "", + "<15,61>": "", + "<15,62>": "0", + "<15,63>": "", + "<15,64>": "", + "<15,65>": "", + "<15,66>": "", + "<15,67>": "", + "<15,68>": "", + "<15,69>": "", + "<15,70>": "", + "<15,71>": "", + "<15,72>": "", + "<15,73>": "", + "<15,74>": "", + "<15,75>": "", + "<15,76>": "", + "<15,77>": "", + "<15,78>": "", + "<15,79>": "", + "<15,80>": "", + "<15,81>": "", + "<15,82>": "", + "<15,83>": "", + "<15,84>": "", + "<15,85>": "", + "<15,86>": "", + "<15,87>": "", + "<15,88>": "", + "<15,89>": "", + "<15,90>": "", + "<15,91>": "", + "<15,92>": "", + "<15,93>": "", + "<15,94>": "", + "<15,95>": "", + "<15,96>": "", + "<15,97>": "", + "<15,98>": "", + "<15,99>": "", + "<15,100>": "", + "<15,101>": "", + "<15,102>": "", + "<15,103>": "", + "<15,104>": "", + "<15,105>": "", + "<15,106>": "", + "<15,107>": "", + "<15,108>": "" }, "<16>": { - "<16,1>": "STATUS", + "<16,1>": "PM_DAYS_LABEL", "<16,2>": "", - "<16,3>": "RADIOGROUP", + "<16,3>": "STATIC", "<16,4>": "REACT_SERVS", - "<16,5>": "599", - "<16,6>": "295", - "<16,7>": "123", + "<16,5>": "405", + "<16,6>": "334", + "<16,7>": "78", "<16,8>": "15", - "<16,9>": "", + "<16,9>": "PM Sched Days:", "<16,10>": { - "<16,10,1>": "0x56000000", + "<16,10,1>": "0x56000800", "<16,10,2>": "0x0" }, "<16,11>": { - "<16,11,1>": "0x210", + "<16,11,1>": "0x0", "<16,11,2>": "0x80000000" }, - "<16,12>": "16", - "<16,13>": "-1", + "<16,12>": "12", + "<16,13>": { + "<16,13,1>": "-1", + "<16,13,2>": "-1", + "<16,13,3>": "" + }, "<16,14>": "0", "<16,15>": { "<16,15,1>": { @@ -1630,26 +2865,20 @@ "<16,20>": "", "<16,21>": "", "<16,22>": "", - "<16,23>": "REACT_SERVS", - "<16,24>": "STATUS", - "<16,25>": "0", - "<16,26>": "0", + "<16,23>": "", + "<16,24>": "", + "<16,25>": "", + "<16,26>": "", "<16,27>": "", - "<16,28>": "<>", - "<16,29>": "<>", + "<16,28>": "", + "<16,29>": "", "<16,30>": "", - "<16,31>": "0", - "<16,32>": { - "<16,32,1>": "0x3eff6", - "<16,32,2>": "0x0" - }, + "<16,31>": "", + "<16,32>": "", "<16,33>": "", "<16,34>": "", - "<16,35>": { - "<16,35,1>": "A", - "<16,35,2>": "I" - }, - "<16,36>": "A", + "<16,35>": "", + "<16,36>": "", "<16,37>": "", "<16,38>": "", "<16,39>": "", @@ -1657,10 +2886,7 @@ "<16,41>": "", "<16,42>": "", "<16,43>": "", - "<16,44>": { - "<16,44,1>": "Active", - "<16,44,2>": "Inactive" - }, + "<16,44>": "", "<16,45>": "", "<16,46>": "", "<16,47>": "", @@ -1668,28 +2894,101 @@ "<16,49>": "", "<16,50>": "", "<16,51>": "", - "<16,52>": "" + "<16,52>": "", + "<16,53>": "", + "<16,54>": "", + "<16,55>": "", + "<16,56>": "", + "<16,57>": "", + "<16,58>": "", + "<16,59>": "", + "<16,60>": "", + "<16,61>": "", + "<16,62>": "0", + "<16,63>": { + "<16,63,1>": "", + "<16,63,2>": "", + "<16,63,3>": "", + "<16,63,4>": "", + "<16,63,5>": "", + "<16,63,6>": "", + "<16,63,7>": "", + "<16,63,8>": "" + }, + "<16,64>": { + "<16,64,1>": "", + "<16,64,2>": "", + "<16,64,3>": "" + }, + "<16,65>": "-2", + "<16,66>": "", + "<16,67>": "", + "<16,68>": "", + "<16,69>": "", + "<16,70>": "", + "<16,71>": "", + "<16,72>": "", + "<16,73>": "", + "<16,74>": "", + "<16,75>": "", + "<16,76>": "", + "<16,77>": "", + "<16,78>": "", + "<16,79>": "", + "<16,80>": "", + "<16,81>": "", + "<16,82>": "", + "<16,83>": "", + "<16,84>": "", + "<16,85>": "", + "<16,86>": "", + "<16,87>": "", + "<16,88>": "", + "<16,89>": "", + "<16,90>": "0", + "<16,91>": "0", + "<16,92>": "", + "<16,93>": "", + "<16,94>": "", + "<16,95>": "", + "<16,96>": "", + "<16,97>": "", + "<16,98>": "", + "<16,99>": "", + "<16,100>": "", + "<16,101>": "", + "<16,102>": "", + "<16,103>": "", + "<16,104>": "", + "<16,105>": "", + "<16,106>": "", + "<16,107>": "", + "<16,108>": "" }, "<17>": { - "<17,1>": "INACTIVE_DATE", + "<17,1>": "SERV_CAT_DESC", "<17,2>": "", "<17,3>": "EDITFIELD", "<17,4>": "REACT_SERVS", - "<17,5>": "652", - "<17,6>": "321", - "<17,7>": "84", + "<17,5>": "205", + "<17,6>": "271", + "<17,7>": "333", "<17,8>": "18", "<17,9>": "", "<17,10>": { - "<17,10,1>": "0x56800080", + "<17,10,1>": "0x56000080", "<17,10,2>": "0x200" }, "<17,11>": { "<17,11,1>": "0x0", "<17,11,2>": "0x80000000" }, - "<17,12>": "17", - "<17,13>": "-2", + "<17,12>": "13", + "<17,13>": { + "<17,13,1>": "12639424", + "<17,13,2>": "12639424", + "<17,13,3>": "" + }, "<17,14>": "0", "<17,15>": { "<17,15,1>": { @@ -1717,22 +3016,22 @@ "<17,21>": "", "<17,22>": "", "<17,23>": "REACT_SERVS", - "<17,24>": "INACTIVE_DATE", - "<17,25>": "0", - "<17,26>": "0", + "<17,24>": "REACT_SERV_CAT_DESC", + "<17,25>": "", + "<17,26>": "", "<17,27>": "", "<17,28>": "", "<17,29>": "", - "<17,30>": "DATE", + "<17,30>": "<>", "<17,31>": "0", - "<17,32>": { - "<17,32,1>": "0x7fffe", - "<17,32,2>": "0xc0016c08" - }, + "<17,32>": "", "<17,33>": "", "<17,34>": "", "<17,35>": "", - "<17,36>": "", + "<17,36>": { + "<17,36,1>": "0", + "<17,36,2>": "0" + }, "<17,37>": "", "<17,38>": "", "<17,39>": "", @@ -1748,41 +3047,101 @@ "<17,49>": "", "<17,50>": "", "<17,51>": "", - "<17,52>": "" + "<17,52>": "", + "<17,53>": "", + "<17,54>": "", + "<17,55>": "", + "<17,56>": "", + "<17,57>": "", + "<17,58>": "", + "<17,59>": "", + "<17,60>": "", + "<17,61>": "", + "<17,62>": "0", + "<17,63>": "", + "<17,64>": "", + "<17,65>": "", + "<17,66>": "", + "<17,67>": "", + "<17,68>": "", + "<17,69>": "", + "<17,70>": "", + "<17,71>": "", + "<17,72>": "", + "<17,73>": "", + "<17,74>": "", + "<17,75>": "", + "<17,76>": "", + "<17,77>": "", + "<17,78>": "", + "<17,79>": "", + "<17,80>": "", + "<17,81>": "", + "<17,82>": "", + "<17,83>": "", + "<17,84>": "", + "<17,85>": "", + "<17,86>": "", + "<17,87>": "", + "<17,88>": "", + "<17,89>": "", + "<17,90>": "", + "<17,91>": "", + "<17,92>": "", + "<17,93>": "", + "<17,94>": "", + "<17,95>": "", + "<17,96>": "", + "<17,97>": "", + "<17,98>": "", + "<17,99>": "", + "<17,100>": "", + "<17,101>": "", + "<17,102>": "", + "<17,103>": "", + "<17,104>": "", + "<17,105>": "", + "<17,106>": "", + "<17,107>": "", + "<17,108>": "" }, "<18>": { - "<18,1>": "PHX_BTN_DELETE", + "<18,1>": "SERV_BUTTON", "<18,2>": "", "<18,3>": "PUSHBMP", "<18,4>": "REACT_SERVS", - "<18,5>": "64", - "<18,6>": "5", - "<18,7>": "24", - "<18,8>": "24", - "<18,9>": "|Delete the entire Record", + "<18,5>": "168", + "<18,6>": "271", + "<18,7>": "18", + "<18,8>": "18", + "<18,9>": "", "<18,10>": { - "<18,10,1>": "0x5600000B", + "<18,10,1>": "0x56000300", "<18,10,2>": "0x0" }, "<18,11>": { "<18,11,1>": "0x0", "<18,11,2>": "0x80000000" }, - "<18,12>": "18", - "<18,13>": "-2", + "<18,12>": "14", + "<18,13>": { + "<18,13,1>": "-2", + "<18,13,2>": "-2", + "<18,13,3>": "0" + }, "<18,14>": "0", "<18,15>": { "<18,15,1>": { - "<18,15,1,1>": "MS Sans Serif", + "<18,15,1,1>": "Tahoma", "<18,15,1,2>": "-11", - "<18,15,1,3>": "700", + "<18,15,1,3>": "400", "<18,15,1,4>": "0", "<18,15,1,5>": "0", "<18,15,1,6>": "0", "<18,15,1,7>": "0", "<18,15,1,8>": "34", "<18,15,1,9>": "0", - "<18,15,1,10>": "1", + "<18,15,1,10>": "3", "<18,15,1,11>": "2", "<18,15,1,12>": "1", "<18,15,1,13>": "0", @@ -1790,47 +3149,34 @@ } }, "<18,16>": "", - "<18,17>": "", - "<18,18>": { - "<18,18,1>": { - "<18,18,1,1>": "E", - "<18,18,1,2>": "DELETE", - "<18,18,1,3>": "@WINDOW", - "<18,18,1,4>": "", - "<18,18,1,5>": "", - "<18,18,1,6>": "" - }, - "<18,18,2>": "" - }, - "<18,19>": { - "<18,19,1>": "CLICK", - "<18,19,2>": "" - }, + "<18,17>": "CLICK", + "<18,18>": "", + "<18,19>": "", "<18,20>": "", "<18,21>": "", "<18,22>": "", "<18,23>": "", "<18,24>": "", - "<18,25>": "0", - "<18,26>": "0", + "<18,25>": "", + "<18,26>": "", "<18,27>": "", - "<18,28>": "<>", - "<18,29>": "<>", - "<18,30>": "<>", - "<18,31>": "0", - "<18,32>": { - "<18,32,1>": "0x7fffc", - "<18,32,2>": "0xf0016000" - }, - "<18,33>": "LSL2*IMAGE*BMP*DELETE2", + "<18,28>": "", + "<18,29>": "", + "<18,30>": "", + "<18,31>": "", + "<18,32>": "", + "<18,33>": "LSL2*IMAGE*BMP*SEARCH", "<18,34>": "", "<18,35>": "", "<18,36>": "", "<18,37>": "", "<18,38>": "", "<18,39>": "", - "<18,40>": "", - "<18,41>": "", + "<18,40>": "-1", + "<18,41>": { + "<18,41,1>": "", + "<18,41,2>": "-1" + }, "<18,42>": "", "<18,43>": "", "<18,44>": "", @@ -1845,46 +3191,112 @@ "<18,53>": "", "<18,54>": { "<18,54,1>": "-5", - "<18,54,2>": "0", + "<18,54,2>": "2", "<18,54,3>": "", "<18,54,4>": "", "<18,54,5>": "", - "<18,54,6>": "3" - } + "<18,54,6>": "3", + "<18,54,7>": "", + "<18,54,8>": "", + "<18,54,9>": "", + "<18,54,10>": "0" + }, + "<18,55>": "", + "<18,56>": "", + "<18,57>": "", + "<18,58>": "", + "<18,59>": "", + "<18,60>": "", + "<18,61>": "", + "<18,62>": "0", + "<18,63>": "", + "<18,64>": { + "<18,64,1>": "-2", + "<18,64,2>": "-2", + "<18,64,3>": "0" + }, + "<18,65>": "-2", + "<18,66>": "", + "<18,67>": "", + "<18,68>": "", + "<18,69>": "", + "<18,70>": "", + "<18,71>": "", + "<18,72>": "", + "<18,73>": "", + "<18,74>": "", + "<18,75>": "", + "<18,76>": "", + "<18,77>": "", + "<18,78>": "", + "<18,79>": "", + "<18,80>": "", + "<18,81>": "", + "<18,82>": "", + "<18,83>": "", + "<18,84>": "", + "<18,85>": "", + "<18,86>": "", + "<18,87>": "", + "<18,88>": "", + "<18,89>": "", + "<18,90>": "0", + "<18,91>": "0", + "<18,92>": "", + "<18,93>": "", + "<18,94>": "", + "<18,95>": "", + "<18,96>": "", + "<18,97>": "", + "<18,98>": "", + "<18,99>": "", + "<18,100>": "", + "<18,101>": "", + "<18,102>": "", + "<18,103>": "", + "<18,104>": "", + "<18,105>": "", + "<18,106>": "", + "<18,107>": "", + "<18,108>": "" }, "<19>": { - "<19,1>": "PHX_BTN_WRITE", + "<19,1>": "SERV_CAT_LABEL", "<19,2>": "", - "<19,3>": "PUSHBMP", + "<19,3>": "STATIC", "<19,4>": "REACT_SERVS", - "<19,5>": "6", - "<19,6>": "5", - "<19,7>": "27", - "<19,8>": "24", - "<19,9>": "|Save the Data", + "<19,5>": "34", + "<19,6>": "273", + "<19,7>": "72", + "<19,8>": "15", + "<19,9>": "Serv Cat ID:", "<19,10>": { - "<19,10,1>": "0x5600000B", + "<19,10,1>": "0x56000800", "<19,10,2>": "0x0" }, "<19,11>": { "<19,11,1>": "0x0", "<19,11,2>": "0x80000000" }, - "<19,12>": "19", - "<19,13>": "-2", + "<19,12>": "15", + "<19,13>": { + "<19,13,1>": "-1", + "<19,13,2>": "-1", + "<19,13,3>": "" + }, "<19,14>": "0", "<19,15>": { "<19,15,1>": { - "<19,15,1,1>": "MS Sans Serif", + "<19,15,1,1>": "Tahoma", "<19,15,1,2>": "-11", - "<19,15,1,3>": "700", + "<19,15,1,3>": "400", "<19,15,1,4>": "0", "<19,15,1,5>": "0", "<19,15,1,6>": "0", "<19,15,1,7>": "0", "<19,15,1,8>": "34", "<19,15,1,9>": "0", - "<19,15,1,10>": "1", + "<19,15,1,10>": "3", "<19,15,1,11>": "2", "<19,15,1,12>": "1", "<19,15,1,13>": "0", @@ -1893,38 +3305,22 @@ }, "<19,16>": "", "<19,17>": "", - "<19,18>": { - "<19,18,1>": { - "<19,18,1,1>": "E", - "<19,18,1,2>": "WRITE", - "<19,18,1,3>": "@WINDOW", - "<19,18,1,4>": "", - "<19,18,1,5>": "", - "<19,18,1,6>": "" - }, - "<19,18,2>": "" - }, - "<19,19>": { - "<19,19,1>": "CLICK", - "<19,19,2>": "" - }, + "<19,18>": "", + "<19,19>": "", "<19,20>": "", "<19,21>": "", "<19,22>": "", "<19,23>": "", "<19,24>": "", - "<19,25>": "0", - "<19,26>": "0", + "<19,25>": "", + "<19,26>": "", "<19,27>": "", - "<19,28>": "<>", - "<19,29>": "<>", - "<19,30>": "<>", - "<19,31>": "0", - "<19,32>": { - "<19,32,1>": "0x7fffc", - "<19,32,2>": "0xf0016000" - }, - "<19,33>": "LSL2*IMAGE*BMP*POPSAVE", + "<19,28>": "", + "<19,29>": "", + "<19,30>": "", + "<19,31>": "", + "<19,32>": "", + "<19,33>": "", "<19,34>": "", "<19,35>": "", "<19,36>": "", @@ -1945,48 +3341,112 @@ "<19,51>": "", "<19,52>": "", "<19,53>": "", - "<19,54>": { - "<19,54,1>": "-5", - "<19,54,2>": "0", - "<19,54,3>": "", - "<19,54,4>": "", - "<19,54,5>": "", - "<19,54,6>": "4" - } + "<19,54>": "", + "<19,55>": "", + "<19,56>": "", + "<19,57>": "", + "<19,58>": "", + "<19,59>": "", + "<19,60>": "", + "<19,61>": "", + "<19,62>": "0", + "<19,63>": { + "<19,63,1>": "", + "<19,63,2>": "", + "<19,63,3>": "", + "<19,63,4>": "", + "<19,63,5>": "", + "<19,63,6>": "", + "<19,63,7>": "", + "<19,63,8>": "" + }, + "<19,64>": { + "<19,64,1>": "", + "<19,64,2>": "", + "<19,64,3>": "" + }, + "<19,65>": "-2", + "<19,66>": "", + "<19,67>": "", + "<19,68>": "", + "<19,69>": "", + "<19,70>": "", + "<19,71>": "", + "<19,72>": "", + "<19,73>": "", + "<19,74>": "", + "<19,75>": "", + "<19,76>": "", + "<19,77>": "", + "<19,78>": "", + "<19,79>": "", + "<19,80>": "", + "<19,81>": "", + "<19,82>": "", + "<19,83>": "", + "<19,84>": "", + "<19,85>": "", + "<19,86>": "", + "<19,87>": "", + "<19,88>": "", + "<19,89>": "", + "<19,90>": "0", + "<19,91>": "0", + "<19,92>": "", + "<19,93>": "", + "<19,94>": "", + "<19,95>": "", + "<19,96>": "", + "<19,97>": "", + "<19,98>": "", + "<19,99>": "", + "<19,100>": "", + "<19,101>": "", + "<19,102>": "", + "<19,103>": "", + "<19,104>": "", + "<19,105>": "", + "<19,106>": "", + "<19,107>": "", + "<19,108>": "" }, "<20>": { - "<20,1>": "PHX_QBF_LAST", + "<20,1>": "STATUS", "<20,2>": "", - "<20,3>": "PUSHBMP", + "<20,3>": "RADIOGROUP", "<20,4>": "REACT_SERVS", - "<20,5>": "172", - "<20,6>": "5", - "<20,7>": "25", - "<20,8>": "23", - "<20,9>": "|Last record in the list", + "<20,5>": "599", + "<20,6>": "295", + "<20,7>": "123", + "<20,8>": "15", + "<20,9>": "", "<20,10>": { - "<20,10,1>": "0x5600000B", + "<20,10,1>": "0x56000000", "<20,10,2>": "0x0" }, "<20,11>": { - "<20,11,1>": "0x0", + "<20,11,1>": "0x210", "<20,11,2>": "0x80000000" }, - "<20,12>": "20", - "<20,13>": "-2", + "<20,12>": "16", + "<20,13>": { + "<20,13,1>": "-1", + "<20,13,2>": "-1", + "<20,13,3>": "" + }, "<20,14>": "0", "<20,15>": { "<20,15,1>": { - "<20,15,1,1>": "MS Sans Serif", + "<20,15,1,1>": "Tahoma", "<20,15,1,2>": "-11", - "<20,15,1,3>": "700", + "<20,15,1,3>": "400", "<20,15,1,4>": "0", "<20,15,1,5>": "0", "<20,15,1,6>": "0", "<20,15,1,7>": "0", "<20,15,1,8>": "34", "<20,15,1,9>": "0", - "<20,15,1,10>": "1", + "<20,15,1,10>": "3", "<20,15,1,11>": "2", "<20,15,1,12>": "1", "<20,15,1,13>": "0", @@ -1994,29 +3454,29 @@ } }, "<20,16>": "", - "<20,17>": "CLICK", + "<20,17>": "", "<20,18>": "", "<20,19>": "", "<20,20>": "", "<20,21>": "", "<20,22>": "", - "<20,23>": "", - "<20,24>": "", - "<20,25>": "0", - "<20,26>": "0", + "<20,23>": "REACT_SERVS", + "<20,24>": "STATUS", + "<20,25>": "", + "<20,26>": "", "<20,27>": "", - "<20,28>": "<>", - "<20,29>": "<>", - "<20,30>": "<>", - "<20,31>": "0", - "<20,32>": { - "<20,32,1>": "0x7fffc", - "<20,32,2>": "0xf0016000" - }, - "<20,33>": "LSL2*IMAGE*BMP*END3", + "<20,28>": "", + "<20,29>": "", + "<20,30>": "", + "<20,31>": "", + "<20,32>": "", + "<20,33>": "", "<20,34>": "", - "<20,35>": "", - "<20,36>": "", + "<20,35>": { + "<20,35,1>": "A", + "<20,35,2>": "I" + }, + "<20,36>": "A", "<20,37>": "", "<20,38>": "", "<20,39>": "", @@ -2024,7 +3484,10 @@ "<20,41>": "", "<20,42>": "", "<20,43>": "", - "<20,44>": "", + "<20,44>": { + "<20,44,1>": "Active", + "<20,44,2>": "Inactive" + }, "<20,45>": "", "<20,46>": "", "<20,47>": "", @@ -2034,48 +3497,103 @@ "<20,51>": "", "<20,52>": "", "<20,53>": "", - "<20,54>": { - "<20,54,1>": "-5", - "<20,54,2>": "0", - "<20,54,3>": "", - "<20,54,4>": "", - "<20,54,5>": "", - "<20,54,6>": "4" - } + "<20,54>": "", + "<20,55>": "", + "<20,56>": "", + "<20,57>": "", + "<20,58>": "", + "<20,59>": "", + "<20,60>": "", + "<20,61>": "", + "<20,62>": "0", + "<20,63>": "", + "<20,64>": { + "<20,64,1>": "", + "<20,64,2>": "", + "<20,64,3>": "" + }, + "<20,65>": "-2", + "<20,66>": "", + "<20,67>": "", + "<20,68>": "", + "<20,69>": "", + "<20,70>": "", + "<20,71>": "", + "<20,72>": "", + "<20,73>": "", + "<20,74>": "", + "<20,75>": "", + "<20,76>": "", + "<20,77>": "", + "<20,78>": "", + "<20,79>": "", + "<20,80>": "", + "<20,81>": "", + "<20,82>": "", + "<20,83>": "", + "<20,84>": "", + "<20,85>": "", + "<20,86>": "", + "<20,87>": "", + "<20,88>": "", + "<20,89>": "", + "<20,90>": "0", + "<20,91>": "0", + "<20,92>": "", + "<20,93>": "", + "<20,94>": "", + "<20,95>": "", + "<20,96>": "", + "<20,97>": "", + "<20,98>": "", + "<20,99>": "", + "<20,100>": "", + "<20,101>": "", + "<20,102>": "", + "<20,103>": "", + "<20,104>": "", + "<20,105>": "", + "<20,106>": "", + "<20,107>": "", + "<20,108>": "" }, "<21>": { - "<21,1>": "PHX_QBF_NEXT", + "<21,1>": "INACTIVE_DATE", "<21,2>": "", - "<21,3>": "PUSHBMP", + "<21,3>": "EDITFIELD", "<21,4>": "REACT_SERVS", - "<21,5>": "147", - "<21,6>": "5", - "<21,7>": "25", - "<21,8>": "22", - "<21,9>": "|Next record in the list", + "<21,5>": "652", + "<21,6>": "321", + "<21,7>": "84", + "<21,8>": "18", + "<21,9>": "", "<21,10>": { - "<21,10,1>": "0x5600000B", - "<21,10,2>": "0x0" + "<21,10,1>": "0x56000080", + "<21,10,2>": "0x200" }, "<21,11>": { "<21,11,1>": "0x0", "<21,11,2>": "0x80000000" }, - "<21,12>": "21", - "<21,13>": "-2", + "<21,12>": "17", + "<21,13>": { + "<21,13,1>": "-2", + "<21,13,2>": "-2", + "<21,13,3>": "" + }, "<21,14>": "0", "<21,15>": { "<21,15,1>": { - "<21,15,1,1>": "MS Sans Serif", + "<21,15,1,1>": "Tahoma", "<21,15,1,2>": "-11", - "<21,15,1,3>": "700", + "<21,15,1,3>": "400", "<21,15,1,4>": "0", "<21,15,1,5>": "0", "<21,15,1,6>": "0", "<21,15,1,7>": "0", "<21,15,1,8>": "34", "<21,15,1,9>": "0", - "<21,15,1,10>": "1", + "<21,15,1,10>": "3", "<21,15,1,11>": "2", "<21,15,1,12>": "1", "<21,15,1,13>": "0", @@ -2083,29 +3601,29 @@ } }, "<21,16>": "", - "<21,17>": "CLICK", + "<21,17>": "", "<21,18>": "", "<21,19>": "", "<21,20>": "", "<21,21>": "", "<21,22>": "", - "<21,23>": "", - "<21,24>": "", - "<21,25>": "0", - "<21,26>": "0", + "<21,23>": "REACT_SERVS", + "<21,24>": "INACTIVE_DATE", + "<21,25>": "", + "<21,26>": "", "<21,27>": "", - "<21,28>": "<>", - "<21,29>": "<>", - "<21,30>": "<>", + "<21,28>": "", + "<21,29>": "", + "<21,30>": "DATE", "<21,31>": "0", - "<21,32>": { - "<21,32,1>": "0x7fffc", - "<21,32,2>": "0xf0016000" - }, - "<21,33>": "LSL2*IMAGE*BMP*FORWARD2", + "<21,32>": "", + "<21,33>": "", "<21,34>": "", "<21,35>": "", - "<21,36>": "", + "<21,36>": { + "<21,36,1>": "0", + "<21,36,2>": "0" + }, "<21,37>": "", "<21,38>": "", "<21,39>": "", @@ -2123,35 +3641,86 @@ "<21,51>": "", "<21,52>": "", "<21,53>": "", - "<21,54>": { - "<21,54,1>": "-5", - "<21,54,2>": "0", - "<21,54,3>": "", - "<21,54,4>": "", - "<21,54,5>": "", - "<21,54,6>": "4" - } + "<21,54>": "", + "<21,55>": "", + "<21,56>": "", + "<21,57>": "", + "<21,58>": "", + "<21,59>": "", + "<21,60>": "", + "<21,61>": "", + "<21,62>": "0", + "<21,63>": "", + "<21,64>": "", + "<21,65>": "", + "<21,66>": "", + "<21,67>": "", + "<21,68>": "", + "<21,69>": "", + "<21,70>": "", + "<21,71>": "", + "<21,72>": "", + "<21,73>": "", + "<21,74>": "", + "<21,75>": "", + "<21,76>": "", + "<21,77>": "", + "<21,78>": "", + "<21,79>": "", + "<21,80>": "", + "<21,81>": "", + "<21,82>": "", + "<21,83>": "", + "<21,84>": "", + "<21,85>": "", + "<21,86>": "", + "<21,87>": "", + "<21,88>": "", + "<21,89>": "", + "<21,90>": "", + "<21,91>": "", + "<21,92>": "", + "<21,93>": "", + "<21,94>": "", + "<21,95>": "", + "<21,96>": "", + "<21,97>": "", + "<21,98>": "", + "<21,99>": "", + "<21,100>": "", + "<21,101>": "", + "<21,102>": "", + "<21,103>": "", + "<21,104>": "", + "<21,105>": "", + "<21,106>": "", + "<21,107>": "", + "<21,108>": "" }, "<22>": { - "<22,1>": "PHX_QBF_PREV", + "<22,1>": "PHX_BTN_DELETE", "<22,2>": "", "<22,3>": "PUSHBMP", "<22,4>": "REACT_SERVS", - "<22,5>": "122", + "<22,5>": "64", "<22,6>": "5", - "<22,7>": "25", - "<22,8>": "23", - "<22,9>": "|Previous record in the list", + "<22,7>": "24", + "<22,8>": "24", + "<22,9>": "|Delete the entire Record", "<22,10>": { - "<22,10,1>": "0x5600000B", + "<22,10,1>": "0x56000300", "<22,10,2>": "0x0" }, "<22,11>": { "<22,11,1>": "0x0", "<22,11,2>": "0x80000000" }, - "<22,12>": "22", - "<22,13>": "-2", + "<22,12>": "18", + "<22,13>": { + "<22,13,1>": "-2", + "<22,13,2>": "-2", + "<22,13,3>": "0" + }, "<22,14>": "0", "<22,15>": { "<22,15,1>": { @@ -2172,34 +3741,52 @@ } }, "<22,16>": "", - "<22,17>": "CLICK", - "<22,18>": "", - "<22,19>": "", + "<22,17>": "", + "<22,18>": { + "<22,18,1>": { + "<22,18,1,1>": "E", + "<22,18,1,2>": "DELETE", + "<22,18,1,3>": "@WINDOW", + "<22,18,1,4>": "", + "<22,18,1,5>": "", + "<22,18,1,6>": "", + "<22,18,1,7>": "", + "<22,18,1,8>": "", + "<22,18,1,9>": "", + "<22,18,1,10>": "", + "<22,18,1,11>": "", + "<22,18,1,12>": "", + "<22,18,1,13>": "", + "<22,18,1,14>": "", + "<22,18,1,15>": "GEN" + } + }, + "<22,19>": "CLICK", "<22,20>": "", "<22,21>": "", "<22,22>": "", "<22,23>": "", "<22,24>": "", - "<22,25>": "0", - "<22,26>": "0", + "<22,25>": "", + "<22,26>": "", "<22,27>": "", - "<22,28>": "<>", - "<22,29>": "<>", - "<22,30>": "<>", - "<22,31>": "0", - "<22,32>": { - "<22,32,1>": "0x7fffc", - "<22,32,2>": "0xf0016000" - }, - "<22,33>": "LSL2*IMAGE*BMP*BACKWARD2", + "<22,28>": "", + "<22,29>": "", + "<22,30>": "", + "<22,31>": "", + "<22,32>": "", + "<22,33>": "LSL2*IMAGE*BMP*DELETE2", "<22,34>": "", "<22,35>": "", "<22,36>": "", "<22,37>": "", "<22,38>": "", "<22,39>": "", - "<22,40>": "", - "<22,41>": "", + "<22,40>": "-1", + "<22,41>": { + "<22,41,1>": "", + "<22,41,2>": "-1" + }, "<22,42>": "", "<22,43>": "", "<22,44>": "", @@ -2218,29 +3805,95 @@ "<22,54,3>": "", "<22,54,4>": "", "<22,54,5>": "", - "<22,54,6>": "4" - } + "<22,54,6>": "3", + "<22,54,7>": "", + "<22,54,8>": "", + "<22,54,9>": "", + "<22,54,10>": "0" + }, + "<22,55>": "", + "<22,56>": "", + "<22,57>": "", + "<22,58>": "", + "<22,59>": "", + "<22,60>": "", + "<22,61>": "", + "<22,62>": "0", + "<22,63>": "", + "<22,64>": { + "<22,64,1>": "-2", + "<22,64,2>": "-2", + "<22,64,3>": "0" + }, + "<22,65>": "-2", + "<22,66>": "", + "<22,67>": "", + "<22,68>": "", + "<22,69>": "", + "<22,70>": "", + "<22,71>": "", + "<22,72>": "", + "<22,73>": "", + "<22,74>": "", + "<22,75>": "", + "<22,76>": "", + "<22,77>": "", + "<22,78>": "", + "<22,79>": "", + "<22,80>": "", + "<22,81>": "", + "<22,82>": "", + "<22,83>": "", + "<22,84>": "", + "<22,85>": "", + "<22,86>": "", + "<22,87>": "", + "<22,88>": "", + "<22,89>": "", + "<22,90>": "0", + "<22,91>": "0", + "<22,92>": "", + "<22,93>": "", + "<22,94>": "", + "<22,95>": "", + "<22,96>": "", + "<22,97>": "", + "<22,98>": "", + "<22,99>": "", + "<22,100>": "", + "<22,101>": "", + "<22,102>": "", + "<22,103>": "", + "<22,104>": "", + "<22,105>": "", + "<22,106>": "", + "<22,107>": "", + "<22,108>": "" }, "<23>": { - "<23,1>": "PHX_QBF_FIRST", + "<23,1>": "PHX_BTN_WRITE", "<23,2>": "", "<23,3>": "PUSHBMP", "<23,4>": "REACT_SERVS", - "<23,5>": "97", + "<23,5>": "6", "<23,6>": "5", - "<23,7>": "25", - "<23,8>": "22", - "<23,9>": "|First record in list", + "<23,7>": "27", + "<23,8>": "24", + "<23,9>": "|Save the Data", "<23,10>": { - "<23,10,1>": "0x5600000B", + "<23,10,1>": "0x56000300", "<23,10,2>": "0x0" }, "<23,11>": { "<23,11,1>": "0x0", "<23,11,2>": "0x80000000" }, - "<23,12>": "23", - "<23,13>": "-2", + "<23,12>": "19", + "<23,13>": { + "<23,13,1>": "-2", + "<23,13,2>": "-2", + "<23,13,3>": "0" + }, "<23,14>": "0", "<23,15>": { "<23,15,1>": { @@ -2261,34 +3914,52 @@ } }, "<23,16>": "", - "<23,17>": "CLICK", - "<23,18>": "", - "<23,19>": "", + "<23,17>": "", + "<23,18>": { + "<23,18,1>": { + "<23,18,1,1>": "E", + "<23,18,1,2>": "WRITE", + "<23,18,1,3>": "@WINDOW", + "<23,18,1,4>": "", + "<23,18,1,5>": "", + "<23,18,1,6>": "", + "<23,18,1,7>": "", + "<23,18,1,8>": "", + "<23,18,1,9>": "", + "<23,18,1,10>": "", + "<23,18,1,11>": "", + "<23,18,1,12>": "", + "<23,18,1,13>": "", + "<23,18,1,14>": "", + "<23,18,1,15>": "GEN" + } + }, + "<23,19>": "CLICK", "<23,20>": "", "<23,21>": "", "<23,22>": "", "<23,23>": "", "<23,24>": "", - "<23,25>": "0", - "<23,26>": "0", + "<23,25>": "", + "<23,26>": "", "<23,27>": "", - "<23,28>": "<>", - "<23,29>": "<>", - "<23,30>": "<>", - "<23,31>": "0", - "<23,32>": { - "<23,32,1>": "0x7fffc", - "<23,32,2>": "0xf0016000" - }, - "<23,33>": "LSL2*IMAGE*BMP*BEGIN3", + "<23,28>": "", + "<23,29>": "", + "<23,30>": "", + "<23,31>": "", + "<23,32>": "", + "<23,33>": "SYSPROG*IMAGE*BMP*POPSAVE", "<23,34>": "", "<23,35>": "", "<23,36>": "", "<23,37>": "", "<23,38>": "", "<23,39>": "", - "<23,40>": "", - "<23,41>": "", + "<23,40>": "-1", + "<23,41>": { + "<23,41,1>": "", + "<23,41,2>": "-1" + }, "<23,42>": "", "<23,43>": "", "<23,44>": "", @@ -2307,29 +3978,95 @@ "<23,54,3>": "", "<23,54,4>": "", "<23,54,5>": "", - "<23,54,6>": "4" - } + "<23,54,6>": "4", + "<23,54,7>": "", + "<23,54,8>": "", + "<23,54,9>": "", + "<23,54,10>": "0" + }, + "<23,55>": "", + "<23,56>": "", + "<23,57>": "", + "<23,58>": "", + "<23,59>": "", + "<23,60>": "", + "<23,61>": "", + "<23,62>": "0", + "<23,63>": "", + "<23,64>": { + "<23,64,1>": "-2", + "<23,64,2>": "-2", + "<23,64,3>": "0" + }, + "<23,65>": "-2", + "<23,66>": "", + "<23,67>": "", + "<23,68>": "", + "<23,69>": "", + "<23,70>": "", + "<23,71>": "", + "<23,72>": "", + "<23,73>": "", + "<23,74>": "", + "<23,75>": "", + "<23,76>": "", + "<23,77>": "", + "<23,78>": "", + "<23,79>": "", + "<23,80>": "", + "<23,81>": "", + "<23,82>": "", + "<23,83>": "", + "<23,84>": "", + "<23,85>": "", + "<23,86>": "", + "<23,87>": "", + "<23,88>": "", + "<23,89>": "", + "<23,90>": "0", + "<23,91>": "0", + "<23,92>": "", + "<23,93>": "", + "<23,94>": "", + "<23,95>": "", + "<23,96>": "", + "<23,97>": "", + "<23,98>": "", + "<23,99>": "", + "<23,100>": "", + "<23,101>": "", + "<23,102>": "", + "<23,103>": "", + "<23,104>": "", + "<23,105>": "", + "<23,106>": "", + "<23,107>": "", + "<23,108>": "" }, "<24>": { - "<24,1>": "PHX_BTN_CLEAR", + "<24,1>": "PHX_QBF_LAST", "<24,2>": "", "<24,3>": "PUSHBMP", "<24,4>": "REACT_SERVS", - "<24,5>": "32", + "<24,5>": "172", "<24,6>": "5", - "<24,7>": "24", - "<24,8>": "21", - "<24,9>": "|Clear the Screen", + "<24,7>": "25", + "<24,8>": "23", + "<24,9>": "|Last record in the list", "<24,10>": { - "<24,10,1>": "0x5600000B", + "<24,10,1>": "0x56000300", "<24,10,2>": "0x0" }, "<24,11>": { "<24,11,1>": "0x0", "<24,11,2>": "0x80000000" }, - "<24,12>": "24", - "<24,13>": "-2", + "<24,12>": "20", + "<24,13>": { + "<24,13,1>": "-2", + "<24,13,2>": "-2", + "<24,13,3>": "0" + }, "<24,14>": "0", "<24,15>": { "<24,15,1>": { @@ -2351,46 +4088,33 @@ }, "<24,16>": "", "<24,17>": "CLICK", - "<24,18>": { - "<24,18,1>": { - "<24,18,1,1>": "E", - "<24,18,1,2>": "CLEAR", - "<24,18,1,3>": "@WINDOW", - "<24,18,1,4>": "", - "<24,18,1,5>": "", - "<24,18,1,6>": "" - }, - "<24,18,2>": "" - }, - "<24,19>": { - "<24,19,1>": "CLICK", - "<24,19,2>": "" - }, + "<24,18>": "", + "<24,19>": "", "<24,20>": "", "<24,21>": "", "<24,22>": "", "<24,23>": "", "<24,24>": "", - "<24,25>": "0", - "<24,26>": "0", + "<24,25>": "", + "<24,26>": "", "<24,27>": "", - "<24,28>": "<>", - "<24,29>": "<>", - "<24,30>": "<>", - "<24,31>": "0", - "<24,32>": { - "<24,32,1>": "0x7fffc", - "<24,32,2>": "0xf0016000" - }, - "<24,33>": "LSL2*IMAGE*BMP*CLEAR", + "<24,28>": "", + "<24,29>": "", + "<24,30>": "", + "<24,31>": "", + "<24,32>": "", + "<24,33>": "LSL2*IMAGE*BMP*END3", "<24,34>": "", "<24,35>": "", "<24,36>": "", "<24,37>": "", "<24,38>": "", "<24,39>": "", - "<24,40>": "", - "<24,41>": "", + "<24,40>": "-1", + "<24,41>": { + "<24,41,1>": "", + "<24,41,2>": "-1" + }, "<24,42>": "", "<24,43>": "", "<24,44>": "", @@ -2405,46 +4129,112 @@ "<24,53>": "", "<24,54>": { "<24,54,1>": "-5", - "<24,54,2>": "2", + "<24,54,2>": "0", "<24,54,3>": "", "<24,54,4>": "", "<24,54,5>": "", - "<24,54,6>": "4" - } + "<24,54,6>": "4", + "<24,54,7>": "", + "<24,54,8>": "", + "<24,54,9>": "", + "<24,54,10>": "0" + }, + "<24,55>": "", + "<24,56>": "", + "<24,57>": "", + "<24,58>": "", + "<24,59>": "", + "<24,60>": "", + "<24,61>": "", + "<24,62>": "0", + "<24,63>": "", + "<24,64>": { + "<24,64,1>": "-2", + "<24,64,2>": "-2", + "<24,64,3>": "0" + }, + "<24,65>": "-2", + "<24,66>": "", + "<24,67>": "", + "<24,68>": "", + "<24,69>": "", + "<24,70>": "", + "<24,71>": "", + "<24,72>": "", + "<24,73>": "", + "<24,74>": "", + "<24,75>": "", + "<24,76>": "", + "<24,77>": "", + "<24,78>": "", + "<24,79>": "", + "<24,80>": "", + "<24,81>": "", + "<24,82>": "", + "<24,83>": "", + "<24,84>": "", + "<24,85>": "", + "<24,86>": "", + "<24,87>": "", + "<24,88>": "", + "<24,89>": "", + "<24,90>": "0", + "<24,91>": "0", + "<24,92>": "", + "<24,93>": "", + "<24,94>": "", + "<24,95>": "", + "<24,96>": "", + "<24,97>": "", + "<24,98>": "", + "<24,99>": "", + "<24,100>": "", + "<24,101>": "", + "<24,102>": "", + "<24,103>": "", + "<24,104>": "", + "<24,105>": "", + "<24,106>": "", + "<24,107>": "", + "<24,108>": "" }, "<25>": { - "<25,1>": "TC_CHANGE_SERVICE", + "<25,1>": "PHX_QBF_NEXT", "<25,2>": "", - "<25,3>": "CHECKBOX", + "<25,3>": "PUSHBMP", "<25,4>": "REACT_SERVS", - "<25,5>": "591", - "<25,6>": "113", - "<25,7>": "114", - "<25,8>": "15", - "<25,9>": "TC Change Service", + "<25,5>": "147", + "<25,6>": "5", + "<25,7>": "25", + "<25,8>": "22", + "<25,9>": "|Next record in the list", "<25,10>": { - "<25,10,1>": "0x56000003", + "<25,10,1>": "0x56000300", "<25,10,2>": "0x0" }, "<25,11>": { - "<25,11,1>": "0x100", + "<25,11,1>": "0x0", "<25,11,2>": "0x80000000" }, - "<25,12>": "25", - "<25,13>": "-1", + "<25,12>": "21", + "<25,13>": { + "<25,13,1>": "-2", + "<25,13,2>": "-2", + "<25,13,3>": "0" + }, "<25,14>": "0", "<25,15>": { "<25,15,1>": { - "<25,15,1,1>": "Tahoma", + "<25,15,1,1>": "MS Sans Serif", "<25,15,1,2>": "-11", - "<25,15,1,3>": "400", + "<25,15,1,3>": "700", "<25,15,1,4>": "0", "<25,15,1,5>": "0", "<25,15,1,6>": "0", "<25,15,1,7>": "0", "<25,15,1,8>": "34", "<25,15,1,9>": "0", - "<25,15,1,10>": "3", + "<25,15,1,10>": "1", "<25,15,1,11>": "2", "<25,15,1,12>": "1", "<25,15,1,13>": "0", @@ -2452,34 +4242,34 @@ } }, "<25,16>": "", - "<25,17>": "", + "<25,17>": "CLICK", "<25,18>": "", "<25,19>": "", "<25,20>": "", "<25,21>": "", "<25,22>": "", - "<25,23>": "REACT_SERVS", - "<25,24>": "TC_CHANGE_SERVICE", - "<25,25>": "0", - "<25,26>": "0", + "<25,23>": "", + "<25,24>": "", + "<25,25>": "", + "<25,26>": "", "<25,27>": "", - "<25,28>": "<>", - "<25,29>": "<>", + "<25,28>": "", + "<25,29>": "", "<25,30>": "", - "<25,31>": "0", - "<25,32>": { - "<25,32,1>": "0x7fffe", - "<25,32,2>": "0xc0016408" - }, - "<25,33>": "", + "<25,31>": "", + "<25,32>": "", + "<25,33>": "LSL2*IMAGE*BMP*FORWARD2", "<25,34>": "", "<25,35>": "", - "<25,36>": "0", + "<25,36>": "", "<25,37>": "", "<25,38>": "", "<25,39>": "", - "<25,40>": "1", - "<25,41>": "", + "<25,40>": "-1", + "<25,41>": { + "<25,41,1>": "", + "<25,41,2>": "-1" + }, "<25,42>": "", "<25,43>": "", "<25,44>": "", @@ -2490,41 +4280,116 @@ "<25,49>": "", "<25,50>": "", "<25,51>": "", - "<25,52>": "" + "<25,52>": "", + "<25,53>": "", + "<25,54>": { + "<25,54,1>": "-5", + "<25,54,2>": "0", + "<25,54,3>": "", + "<25,54,4>": "", + "<25,54,5>": "", + "<25,54,6>": "4", + "<25,54,7>": "", + "<25,54,8>": "", + "<25,54,9>": "", + "<25,54,10>": "0" + }, + "<25,55>": "", + "<25,56>": "", + "<25,57>": "", + "<25,58>": "", + "<25,59>": "", + "<25,60>": "", + "<25,61>": "", + "<25,62>": "0", + "<25,63>": "", + "<25,64>": { + "<25,64,1>": "-2", + "<25,64,2>": "-2", + "<25,64,3>": "0" + }, + "<25,65>": "-2", + "<25,66>": "", + "<25,67>": "", + "<25,68>": "", + "<25,69>": "", + "<25,70>": "", + "<25,71>": "", + "<25,72>": "", + "<25,73>": "", + "<25,74>": "", + "<25,75>": "", + "<25,76>": "", + "<25,77>": "", + "<25,78>": "", + "<25,79>": "", + "<25,80>": "", + "<25,81>": "", + "<25,82>": "", + "<25,83>": "", + "<25,84>": "", + "<25,85>": "", + "<25,86>": "", + "<25,87>": "", + "<25,88>": "", + "<25,89>": "", + "<25,90>": "0", + "<25,91>": "0", + "<25,92>": "", + "<25,93>": "", + "<25,94>": "", + "<25,95>": "", + "<25,96>": "", + "<25,97>": "", + "<25,98>": "", + "<25,99>": "", + "<25,100>": "", + "<25,101>": "", + "<25,102>": "", + "<25,103>": "", + "<25,104>": "", + "<25,105>": "", + "<25,106>": "", + "<25,107>": "", + "<25,108>": "" }, "<26>": { - "<26,1>": "DBCHECK_3", + "<26,1>": "PHX_QBF_PREV", "<26,2>": "", - "<26,3>": "CHECKBOX", + "<26,3>": "PUSHBMP", "<26,4>": "REACT_SERVS", - "<26,5>": "591", - "<26,6>": "77", - "<26,7>": "165", - "<26,8>": "15", - "<26,9>": "Arm and Wand Data Required", + "<26,5>": "122", + "<26,6>": "5", + "<26,7>": "25", + "<26,8>": "23", + "<26,9>": "|Previous record in the list", "<26,10>": { - "<26,10,1>": "0x56000003", + "<26,10,1>": "0x56000300", "<26,10,2>": "0x0" }, "<26,11>": { - "<26,11,1>": "0x100", + "<26,11,1>": "0x0", "<26,11,2>": "0x80000000" }, - "<26,12>": "26", - "<26,13>": "-1", + "<26,12>": "22", + "<26,13>": { + "<26,13,1>": "-2", + "<26,13,2>": "-2", + "<26,13,3>": "0" + }, "<26,14>": "0", "<26,15>": { "<26,15,1>": { - "<26,15,1,1>": "Tahoma", + "<26,15,1,1>": "MS Sans Serif", "<26,15,1,2>": "-11", - "<26,15,1,3>": "400", + "<26,15,1,3>": "700", "<26,15,1,4>": "0", "<26,15,1,5>": "0", "<26,15,1,6>": "0", "<26,15,1,7>": "0", "<26,15,1,8>": "34", "<26,15,1,9>": "0", - "<26,15,1,10>": "3", + "<26,15,1,10>": "1", "<26,15,1,11>": "2", "<26,15,1,12>": "1", "<26,15,1,13>": "0", @@ -2532,34 +4397,34 @@ } }, "<26,16>": "", - "<26,17>": "", + "<26,17>": "CLICK", "<26,18>": "", "<26,19>": "", "<26,20>": "", "<26,21>": "", "<26,22>": "", - "<26,23>": "REACT_SERVS", - "<26,24>": "REQ_ARM_WAND_DATA", - "<26,25>": "0", - "<26,26>": "0", + "<26,23>": "", + "<26,24>": "", + "<26,25>": "", + "<26,26>": "", "<26,27>": "", - "<26,28>": "<>", - "<26,29>": "<>", + "<26,28>": "", + "<26,29>": "", "<26,30>": "", - "<26,31>": "0", - "<26,32>": { - "<26,32,1>": "0x7ffee", - "<26,32,2>": "0xc0016408" - }, - "<26,33>": "", + "<26,31>": "", + "<26,32>": "", + "<26,33>": "LSL2*IMAGE*BMP*BACKWARD2", "<26,34>": "", "<26,35>": "", - "<26,36>": "0", + "<26,36>": "", "<26,37>": "", "<26,38>": "", "<26,39>": "", - "<26,40>": "1", - "<26,41>": "", + "<26,40>": "-1", + "<26,41>": { + "<26,41,1>": "", + "<26,41,2>": "-1" + }, "<26,42>": "", "<26,43>": "", "<26,44>": "", @@ -2570,41 +4435,116 @@ "<26,49>": "", "<26,50>": "", "<26,51>": "", - "<26,52>": "" + "<26,52>": "", + "<26,53>": "", + "<26,54>": { + "<26,54,1>": "-5", + "<26,54,2>": "0", + "<26,54,3>": "", + "<26,54,4>": "", + "<26,54,5>": "", + "<26,54,6>": "4", + "<26,54,7>": "", + "<26,54,8>": "", + "<26,54,9>": "", + "<26,54,10>": "0" + }, + "<26,55>": "", + "<26,56>": "", + "<26,57>": "", + "<26,58>": "", + "<26,59>": "", + "<26,60>": "", + "<26,61>": "", + "<26,62>": "0", + "<26,63>": "", + "<26,64>": { + "<26,64,1>": "-2", + "<26,64,2>": "-2", + "<26,64,3>": "0" + }, + "<26,65>": "-2", + "<26,66>": "", + "<26,67>": "", + "<26,68>": "", + "<26,69>": "", + "<26,70>": "", + "<26,71>": "", + "<26,72>": "", + "<26,73>": "", + "<26,74>": "", + "<26,75>": "", + "<26,76>": "", + "<26,77>": "", + "<26,78>": "", + "<26,79>": "", + "<26,80>": "", + "<26,81>": "", + "<26,82>": "", + "<26,83>": "", + "<26,84>": "", + "<26,85>": "", + "<26,86>": "", + "<26,87>": "", + "<26,88>": "", + "<26,89>": "", + "<26,90>": "0", + "<26,91>": "0", + "<26,92>": "", + "<26,93>": "", + "<26,94>": "", + "<26,95>": "", + "<26,96>": "", + "<26,97>": "", + "<26,98>": "", + "<26,99>": "", + "<26,100>": "", + "<26,101>": "", + "<26,102>": "", + "<26,103>": "", + "<26,104>": "", + "<26,105>": "", + "<26,106>": "", + "<26,107>": "", + "<26,108>": "" }, "<27>": { - "<27,1>": "INACTIVE_DATE_LABEL", + "<27,1>": "PHX_QBF_FIRST", "<27,2>": "", - "<27,3>": "STATIC", + "<27,3>": "PUSHBMP", "<27,4>": "REACT_SERVS", - "<27,5>": "586", - "<27,6>": "323", - "<27,7>": "60", - "<27,8>": "15", - "<27,9>": "Inactive Dt:", + "<27,5>": "97", + "<27,6>": "5", + "<27,7>": "25", + "<27,8>": "22", + "<27,9>": "|First record in list", "<27,10>": { - "<27,10,1>": "0x56000002", + "<27,10,1>": "0x56000300", "<27,10,2>": "0x0" }, "<27,11>": { "<27,11,1>": "0x0", "<27,11,2>": "0x80000000" }, - "<27,12>": "27", - "<27,13>": "-1", + "<27,12>": "23", + "<27,13>": { + "<27,13,1>": "-2", + "<27,13,2>": "-2", + "<27,13,3>": "0" + }, "<27,14>": "0", "<27,15>": { "<27,15,1>": { - "<27,15,1,1>": "Tahoma", + "<27,15,1,1>": "MS Sans Serif", "<27,15,1,2>": "-11", - "<27,15,1,3>": "400", + "<27,15,1,3>": "700", "<27,15,1,4>": "0", "<27,15,1,5>": "0", "<27,15,1,6>": "0", "<27,15,1,7>": "0", "<27,15,1,8>": "34", "<27,15,1,9>": "0", - "<27,15,1,10>": "3", + "<27,15,1,10>": "1", "<27,15,1,11>": "2", "<27,15,1,12>": "1", "<27,15,1,13>": "0", @@ -2612,7 +4552,7 @@ } }, "<27,16>": "", - "<27,17>": "", + "<27,17>": "CLICK", "<27,18>": "", "<27,19>": "", "<27,20>": "", @@ -2620,26 +4560,26 @@ "<27,22>": "", "<27,23>": "", "<27,24>": "", - "<27,25>": "0", - "<27,26>": "0", + "<27,25>": "", + "<27,26>": "", "<27,27>": "", - "<27,28>": "<>", - "<27,29>": "<>", - "<27,30>": "<>", - "<27,31>": "0", - "<27,32>": { - "<27,32,1>": "0x7fffe", - "<27,32,2>": "0xf0016808" - }, - "<27,33>": "", + "<27,28>": "", + "<27,29>": "", + "<27,30>": "", + "<27,31>": "", + "<27,32>": "", + "<27,33>": "LSL2*IMAGE*BMP*BEGIN3", "<27,34>": "", "<27,35>": "", "<27,36>": "", "<27,37>": "", "<27,38>": "", "<27,39>": "", - "<27,40>": "", - "<27,41>": "", + "<27,40>": "-1", + "<27,41>": { + "<27,41,1>": "", + "<27,41,2>": "-1" + }, "<27,42>": "", "<27,43>": "", "<27,44>": "", @@ -2650,41 +4590,116 @@ "<27,49>": "", "<27,50>": "", "<27,51>": "", - "<27,52>": "" + "<27,52>": "", + "<27,53>": "", + "<27,54>": { + "<27,54,1>": "-5", + "<27,54,2>": "0", + "<27,54,3>": "", + "<27,54,4>": "", + "<27,54,5>": "", + "<27,54,6>": "4", + "<27,54,7>": "", + "<27,54,8>": "", + "<27,54,9>": "", + "<27,54,10>": "0" + }, + "<27,55>": "", + "<27,56>": "", + "<27,57>": "", + "<27,58>": "", + "<27,59>": "", + "<27,60>": "", + "<27,61>": "", + "<27,62>": "0", + "<27,63>": "", + "<27,64>": { + "<27,64,1>": "-2", + "<27,64,2>": "-2", + "<27,64,3>": "0" + }, + "<27,65>": "-2", + "<27,66>": "", + "<27,67>": "", + "<27,68>": "", + "<27,69>": "", + "<27,70>": "", + "<27,71>": "", + "<27,72>": "", + "<27,73>": "", + "<27,74>": "", + "<27,75>": "", + "<27,76>": "", + "<27,77>": "", + "<27,78>": "", + "<27,79>": "", + "<27,80>": "", + "<27,81>": "", + "<27,82>": "", + "<27,83>": "", + "<27,84>": "", + "<27,85>": "", + "<27,86>": "", + "<27,87>": "", + "<27,88>": "", + "<27,89>": "", + "<27,90>": "0", + "<27,91>": "0", + "<27,92>": "", + "<27,93>": "", + "<27,94>": "", + "<27,95>": "", + "<27,96>": "", + "<27,97>": "", + "<27,98>": "", + "<27,99>": "", + "<27,100>": "", + "<27,101>": "", + "<27,102>": "", + "<27,103>": "", + "<27,104>": "", + "<27,105>": "", + "<27,106>": "", + "<27,107>": "", + "<27,108>": "" }, "<28>": { - "<28,1>": "WINDOW_LABEL_FIX", + "<28,1>": "PHX_BTN_CLEAR", "<28,2>": "", - "<28,3>": "STATIC", + "<28,3>": "PUSHBMP", "<28,4>": "REACT_SERVS", - "<28,5>": "590", - "<28,6>": "39", - "<28,7>": "186", - "<28,8>": "33", - "<28,9>": "Reactor Services", + "<28,5>": "32", + "<28,6>": "5", + "<28,7>": "24", + "<28,8>": "21", + "<28,9>": "|Clear the Screen", "<28,10>": { - "<28,10,1>": "0x56000001", + "<28,10,1>": "0x56000300", "<28,10,2>": "0x0" }, "<28,11>": { "<28,11,1>": "0x0", "<28,11,2>": "0x80000000" }, - "<28,12>": "28", - "<28,13>": "-1", - "<28,14>": "8421376", + "<28,12>": "24", + "<28,13>": { + "<28,13,1>": "-2", + "<28,13,2>": "-2", + "<28,13,3>": "0" + }, + "<28,14>": "0", "<28,15>": { "<28,15,1>": { - "<28,15,1,1>": "Tahoma", - "<28,15,1,2>": "-24", - "<28,15,1,3>": "400", + "<28,15,1,1>": "MS Sans Serif", + "<28,15,1,2>": "-11", + "<28,15,1,3>": "700", "<28,15,1,4>": "0", "<28,15,1,5>": "0", "<28,15,1,6>": "0", "<28,15,1,7>": "0", "<28,15,1,8>": "34", "<28,15,1,9>": "0", - "<28,15,1,10>": "3", + "<28,15,1,10>": "1", "<28,15,1,11>": "2", "<28,15,1,12>": "1", "<28,15,1,13>": "0", @@ -2692,34 +4707,52 @@ } }, "<28,16>": "", - "<28,17>": "", - "<28,18>": "", - "<28,19>": "", + "<28,17>": "CLICK", + "<28,18>": { + "<28,18,1>": { + "<28,18,1,1>": "E", + "<28,18,1,2>": "CLEAR", + "<28,18,1,3>": "@WINDOW", + "<28,18,1,4>": "", + "<28,18,1,5>": "", + "<28,18,1,6>": "", + "<28,18,1,7>": "", + "<28,18,1,8>": "", + "<28,18,1,9>": "", + "<28,18,1,10>": "", + "<28,18,1,11>": "", + "<28,18,1,12>": "", + "<28,18,1,13>": "", + "<28,18,1,14>": "", + "<28,18,1,15>": "GEN" + } + }, + "<28,19>": "CLICK", "<28,20>": "", "<28,21>": "", "<28,22>": "", "<28,23>": "", "<28,24>": "", - "<28,25>": "0", - "<28,26>": "0", + "<28,25>": "", + "<28,26>": "", "<28,27>": "", - "<28,28>": "<>", - "<28,29>": "<>", - "<28,30>": "<>", - "<28,31>": "0", - "<28,32>": { - "<28,32,1>": "0x7fffe", - "<28,32,2>": "0xf0012808" - }, - "<28,33>": "", + "<28,28>": "", + "<28,29>": "", + "<28,30>": "", + "<28,31>": "", + "<28,32>": "", + "<28,33>": "LSL2*IMAGE*BMP*CLEAR", "<28,34>": "", "<28,35>": "", "<28,36>": "", "<28,37>": "", "<28,38>": "", "<28,39>": "", - "<28,40>": "", - "<28,41>": "", + "<28,40>": "-1", + "<28,41>": { + "<28,41,1>": "", + "<28,41,2>": "-1" + }, "<28,42>": "", "<28,43>": "", "<28,44>": "", @@ -2730,28 +4763,103 @@ "<28,49>": "", "<28,50>": "", "<28,51>": "", - "<28,52>": "" + "<28,52>": "", + "<28,53>": "", + "<28,54>": { + "<28,54,1>": "-5", + "<28,54,2>": "2", + "<28,54,3>": "", + "<28,54,4>": "", + "<28,54,5>": "", + "<28,54,6>": "4", + "<28,54,7>": "", + "<28,54,8>": "", + "<28,54,9>": "", + "<28,54,10>": "0" + }, + "<28,55>": "", + "<28,56>": "", + "<28,57>": "", + "<28,58>": "", + "<28,59>": "", + "<28,60>": "", + "<28,61>": "", + "<28,62>": "0", + "<28,63>": "", + "<28,64>": { + "<28,64,1>": "-2", + "<28,64,2>": "-2", + "<28,64,3>": "0" + }, + "<28,65>": "-2", + "<28,66>": "", + "<28,67>": "", + "<28,68>": "", + "<28,69>": "", + "<28,70>": "", + "<28,71>": "", + "<28,72>": "", + "<28,73>": "", + "<28,74>": "", + "<28,75>": "", + "<28,76>": "", + "<28,77>": "", + "<28,78>": "", + "<28,79>": "", + "<28,80>": "", + "<28,81>": "", + "<28,82>": "", + "<28,83>": "", + "<28,84>": "", + "<28,85>": "", + "<28,86>": "", + "<28,87>": "", + "<28,88>": "", + "<28,89>": "", + "<28,90>": "0", + "<28,91>": "0", + "<28,92>": "", + "<28,93>": "", + "<28,94>": "", + "<28,95>": "", + "<28,96>": "", + "<28,97>": "", + "<28,98>": "", + "<28,99>": "", + "<28,100>": "", + "<28,101>": "", + "<28,102>": "", + "<28,103>": "", + "<28,104>": "", + "<28,105>": "", + "<28,106>": "", + "<28,107>": "", + "<28,108>": "" }, "<29>": { - "<29,1>": "ACTION", + "<29,1>": "TC_CHANGE_SERVICE", "<29,2>": "", - "<29,3>": "EDITFIELD", + "<29,3>": "CHECKBOX", "<29,4>": "REACT_SERVS", - "<29,5>": "279", - "<29,6>": "196", - "<29,7>": "102", - "<29,8>": "18", - "<29,9>": "", + "<29,5>": "591", + "<29,6>": "113", + "<29,7>": "114", + "<29,8>": "15", + "<29,9>": "TC Change Service", "<29,10>": { - "<29,10,1>": "0x56000080", - "<29,10,2>": "0x200" + "<29,10,1>": "0x56000103", + "<29,10,2>": "0x0" }, "<29,11>": { "<29,11,1>": "0x0", "<29,11,2>": "0x80000000" }, - "<29,12>": "29", - "<29,13>": "16777215", + "<29,12>": "25", + "<29,13>": { + "<29,13,1>": "-1", + "<29,13,2>": "-1", + "<29,13,3>": "" + }, "<29,14>": "0", "<29,15>": { "<29,15,1>": { @@ -2773,41 +4881,25 @@ }, "<29,16>": "", "<29,17>": "", - "<29,18>": { - "<29,18,1>": { - "<29,18,1,1>": "R", - "<29,18,1,2>": "EXECUTE", - "<29,18,1,3>": "LSL2*POPUP**MAINT_ACTION", - "<29,18,1,4>": "@WINDOW", - "<29,18,1,5>": "@SELF", - "<29,18,1,6>": "TEXT" - }, - "<29,18,2>": "" - }, - "<29,19>": { - "<29,19,1>": "OPTIONS", - "<29,19,2>": "" - }, + "<29,18>": "", + "<29,19>": "", "<29,20>": "", "<29,21>": "", "<29,22>": "", "<29,23>": "REACT_SERVS", - "<29,24>": "ACTION", - "<29,25>": "0", - "<29,26>": "0", + "<29,24>": "TC_CHANGE_SERVICE", + "<29,25>": "", + "<29,26>": "", "<29,27>": "", "<29,28>": "", "<29,29>": "", - "<29,30>": "<>", - "<29,31>": "0", - "<29,32>": { - "<29,32,1>": "0x7fffe", - "<29,32,2>": "0xc0014c08" - }, + "<29,30>": "", + "<29,31>": "", + "<29,32>": "", "<29,33>": "", "<29,34>": "", "<29,35>": "", - "<29,36>": "", + "<29,36>": "0", "<29,37>": "", "<29,38>": "", "<29,39>": "", @@ -2823,28 +4915,101 @@ "<29,49>": "", "<29,50>": "", "<29,51>": "", - "<29,52>": "" + "<29,52>": "", + "<29,53>": "", + "<29,54>": "", + "<29,55>": "", + "<29,56>": "", + "<29,57>": "", + "<29,58>": "", + "<29,59>": "", + "<29,60>": "", + "<29,61>": "", + "<29,62>": "0", + "<29,63>": { + "<29,63,1>": "", + "<29,63,2>": "", + "<29,63,3>": "", + "<29,63,4>": "", + "<29,63,5>": "", + "<29,63,6>": "", + "<29,63,7>": "", + "<29,63,8>": "" + }, + "<29,64>": { + "<29,64,1>": "", + "<29,64,2>": "", + "<29,64,3>": "" + }, + "<29,65>": "-2", + "<29,66>": "", + "<29,67>": "", + "<29,68>": "", + "<29,69>": "", + "<29,70>": "", + "<29,71>": "", + "<29,72>": "", + "<29,73>": "", + "<29,74>": "", + "<29,75>": "", + "<29,76>": "", + "<29,77>": "", + "<29,78>": "", + "<29,79>": "", + "<29,80>": "", + "<29,81>": "", + "<29,82>": "", + "<29,83>": "", + "<29,84>": "", + "<29,85>": "", + "<29,86>": "", + "<29,87>": "", + "<29,88>": "", + "<29,89>": "", + "<29,90>": "0", + "<29,91>": "0", + "<29,92>": "", + "<29,93>": "", + "<29,94>": "", + "<29,95>": "", + "<29,96>": "", + "<29,97>": "", + "<29,98>": "", + "<29,99>": "", + "<29,100>": "", + "<29,101>": "", + "<29,102>": "", + "<29,103>": "", + "<29,104>": "", + "<29,105>": "", + "<29,106>": "", + "<29,107>": "", + "<29,108>": "" }, "<30>": { - "<30,1>": "ACTION_LABEL", + "<30,1>": "DBCHECK_3", "<30,2>": "", - "<30,3>": "STATIC", + "<30,3>": "CHECKBOX", "<30,4>": "REACT_SERVS", - "<30,5>": "233", - "<30,6>": "197", - "<30,7>": "36", + "<30,5>": "591", + "<30,6>": "77", + "<30,7>": "165", "<30,8>": "15", - "<30,9>": "Action:", + "<30,9>": "Arm and Wand Data Required", "<30,10>": { - "<30,10,1>": "0x56000002", + "<30,10,1>": "0x56000103", "<30,10,2>": "0x0" }, "<30,11>": { "<30,11,1>": "0x0", "<30,11,2>": "0x80000000" }, - "<30,12>": "30", - "<30,13>": "-1", + "<30,12>": "26", + "<30,13>": { + "<30,13,1>": "-1", + "<30,13,2>": "-1", + "<30,13,3>": "" + }, "<30,14>": "0", "<30,15>": { "<30,15,1>": { @@ -2871,23 +5036,20 @@ "<30,20>": "", "<30,21>": "", "<30,22>": "", - "<30,23>": "", - "<30,24>": "", - "<30,25>": "0", - "<30,26>": "0", + "<30,23>": "REACT_SERVS", + "<30,24>": "REQ_ARM_WAND_DATA", + "<30,25>": "", + "<30,26>": "", "<30,27>": "", - "<30,28>": "<>", - "<30,29>": "<>", - "<30,30>": "<>", - "<30,31>": "0", - "<30,32>": { - "<30,32,1>": "0x7fffe", - "<30,32,2>": "0xf0016808" - }, + "<30,28>": "", + "<30,29>": "", + "<30,30>": "", + "<30,31>": "", + "<30,32>": "", "<30,33>": "", "<30,34>": "", "<30,35>": "", - "<30,36>": "", + "<30,36>": "0", "<30,37>": "", "<30,38>": "", "<30,39>": "", @@ -2903,28 +5065,101 @@ "<30,49>": "", "<30,50>": "", "<30,51>": "", - "<30,52>": "" + "<30,52>": "", + "<30,53>": "", + "<30,54>": "", + "<30,55>": "", + "<30,56>": "", + "<30,57>": "", + "<30,58>": "", + "<30,59>": "", + "<30,60>": "", + "<30,61>": "", + "<30,62>": "0", + "<30,63>": { + "<30,63,1>": "", + "<30,63,2>": "", + "<30,63,3>": "", + "<30,63,4>": "", + "<30,63,5>": "", + "<30,63,6>": "", + "<30,63,7>": "", + "<30,63,8>": "" + }, + "<30,64>": { + "<30,64,1>": "", + "<30,64,2>": "", + "<30,64,3>": "" + }, + "<30,65>": "-2", + "<30,66>": "", + "<30,67>": "", + "<30,68>": "", + "<30,69>": "", + "<30,70>": "", + "<30,71>": "", + "<30,72>": "", + "<30,73>": "", + "<30,74>": "", + "<30,75>": "", + "<30,76>": "", + "<30,77>": "", + "<30,78>": "", + "<30,79>": "", + "<30,80>": "", + "<30,81>": "", + "<30,82>": "", + "<30,83>": "", + "<30,84>": "", + "<30,85>": "", + "<30,86>": "", + "<30,87>": "", + "<30,88>": "", + "<30,89>": "", + "<30,90>": "0", + "<30,91>": "0", + "<30,92>": "", + "<30,93>": "", + "<30,94>": "", + "<30,95>": "", + "<30,96>": "", + "<30,97>": "", + "<30,98>": "", + "<30,99>": "", + "<30,100>": "", + "<30,101>": "", + "<30,102>": "", + "<30,103>": "", + "<30,104>": "", + "<30,105>": "", + "<30,106>": "", + "<30,107>": "", + "<30,108>": "" }, "<31>": { - "<31,1>": "SVC_DESC", + "<31,1>": "INACTIVE_DATE_LABEL", "<31,2>": "", - "<31,3>": "EDITFIELD", + "<31,3>": "STATIC", "<31,4>": "REACT_SERVS", - "<31,5>": "481", - "<31,6>": "196", - "<31,7>": "234", - "<31,8>": "18", - "<31,9>": "", + "<31,5>": "586", + "<31,6>": "323", + "<31,7>": "60", + "<31,8>": "15", + "<31,9>": "Inactive Dt:", "<31,10>": { - "<31,10,1>": "0x56000080", - "<31,10,2>": "0x200" + "<31,10,1>": "0x56000800", + "<31,10,2>": "0x0" }, "<31,11>": { "<31,11,1>": "0x0", "<31,11,2>": "0x80000000" }, - "<31,12>": "31", - "<31,13>": "16777215", + "<31,12>": "27", + "<31,13>": { + "<31,13,1>": "-1", + "<31,13,2>": "-1", + "<31,13,3>": "" + }, "<31,14>": "0", "<31,15>": { "<31,15,1>": { @@ -2951,19 +5186,16 @@ "<31,20>": "", "<31,21>": "", "<31,22>": "", - "<31,23>": "REACT_SERVS", - "<31,24>": "SVC_DESC", - "<31,25>": "0", - "<31,26>": "0", + "<31,23>": "", + "<31,24>": "", + "<31,25>": "", + "<31,26>": "", "<31,27>": "", "<31,28>": "", "<31,29>": "", - "<31,30>": "<>", - "<31,31>": "0", - "<31,32>": { - "<31,32,1>": "0x7fffe", - "<31,32,2>": "0xc0014c08" - }, + "<31,30>": "", + "<31,31>": "", + "<31,32>": "", "<31,33>": "", "<31,34>": "", "<31,35>": "", @@ -2983,33 +5215,106 @@ "<31,49>": "", "<31,50>": "", "<31,51>": "", - "<31,52>": "" + "<31,52>": "", + "<31,53>": "", + "<31,54>": "", + "<31,55>": "", + "<31,56>": "", + "<31,57>": "", + "<31,58>": "", + "<31,59>": "", + "<31,60>": "", + "<31,61>": "", + "<31,62>": "0", + "<31,63>": { + "<31,63,1>": "", + "<31,63,2>": "", + "<31,63,3>": "", + "<31,63,4>": "", + "<31,63,5>": "", + "<31,63,6>": "", + "<31,63,7>": "", + "<31,63,8>": "" + }, + "<31,64>": { + "<31,64,1>": "", + "<31,64,2>": "", + "<31,64,3>": "" + }, + "<31,65>": "-2", + "<31,66>": "", + "<31,67>": "", + "<31,68>": "", + "<31,69>": "", + "<31,70>": "", + "<31,71>": "", + "<31,72>": "", + "<31,73>": "", + "<31,74>": "", + "<31,75>": "", + "<31,76>": "", + "<31,77>": "", + "<31,78>": "", + "<31,79>": "", + "<31,80>": "", + "<31,81>": "", + "<31,82>": "", + "<31,83>": "", + "<31,84>": "", + "<31,85>": "", + "<31,86>": "", + "<31,87>": "", + "<31,88>": "", + "<31,89>": "", + "<31,90>": "0", + "<31,91>": "0", + "<31,92>": "", + "<31,93>": "", + "<31,94>": "", + "<31,95>": "", + "<31,96>": "", + "<31,97>": "", + "<31,98>": "", + "<31,99>": "", + "<31,100>": "", + "<31,101>": "", + "<31,102>": "", + "<31,103>": "", + "<31,104>": "", + "<31,105>": "", + "<31,106>": "", + "<31,107>": "", + "<31,108>": "" }, "<32>": { - "<32,1>": "SVC_DESC_LABEL", + "<32,1>": "WINDOW_LABEL_FIX", "<32,2>": "", "<32,3>": "STATIC", "<32,4>": "REACT_SERVS", - "<32,5>": "421", - "<32,6>": "197", - "<32,7>": "51", - "<32,8>": "15", - "<32,9>": "Svc Desc:", + "<32,5>": "590", + "<32,6>": "39", + "<32,7>": "186", + "<32,8>": "33", + "<32,9>": "Reactor Services", "<32,10>": { - "<32,10,1>": "0x56000002", + "<32,10,1>": "0x56000020", "<32,10,2>": "0x0" }, "<32,11>": { "<32,11,1>": "0x0", "<32,11,2>": "0x80000000" }, - "<32,12>": "32", - "<32,13>": "-1", - "<32,14>": "0", + "<32,12>": "28", + "<32,13>": { + "<32,13,1>": "-1", + "<32,13,2>": "-1", + "<32,13,3>": "" + }, + "<32,14>": "8421376", "<32,15>": { "<32,15,1>": { "<32,15,1,1>": "Tahoma", - "<32,15,1,2>": "-11", + "<32,15,1,2>": "-24", "<32,15,1,3>": "400", "<32,15,1,4>": "0", "<32,15,1,5>": "0", @@ -3033,17 +5338,14 @@ "<32,22>": "", "<32,23>": "", "<32,24>": "", - "<32,25>": "0", - "<32,26>": "0", + "<32,25>": "", + "<32,26>": "", "<32,27>": "", - "<32,28>": "<>", - "<32,29>": "<>", - "<32,30>": "<>", - "<32,31>": "0", - "<32,32>": { - "<32,32,1>": "0x7fffe", - "<32,32,2>": "0xf0016808" - }, + "<32,28>": "", + "<32,29>": "", + "<32,30>": "", + "<32,31>": "", + "<32,32>": "", "<32,33>": "", "<32,34>": "", "<32,35>": "", @@ -3063,28 +5365,101 @@ "<32,49>": "", "<32,50>": "", "<32,51>": "", - "<32,52>": "" + "<32,52>": "", + "<32,53>": "", + "<32,54>": "", + "<32,55>": "", + "<32,56>": "", + "<32,57>": "", + "<32,58>": "", + "<32,59>": "", + "<32,60>": "", + "<32,61>": "", + "<32,62>": "0", + "<32,63>": { + "<32,63,1>": "", + "<32,63,2>": "", + "<32,63,3>": "", + "<32,63,4>": "", + "<32,63,5>": "", + "<32,63,6>": "", + "<32,63,7>": "", + "<32,63,8>": "" + }, + "<32,64>": { + "<32,64,1>": "", + "<32,64,2>": "", + "<32,64,3>": "" + }, + "<32,65>": "-2", + "<32,66>": "", + "<32,67>": "", + "<32,68>": "", + "<32,69>": "", + "<32,70>": "", + "<32,71>": "", + "<32,72>": "", + "<32,73>": "", + "<32,74>": "", + "<32,75>": "", + "<32,76>": "", + "<32,77>": "", + "<32,78>": "", + "<32,79>": "", + "<32,80>": "", + "<32,81>": "", + "<32,82>": "", + "<32,83>": "", + "<32,84>": "", + "<32,85>": "", + "<32,86>": "", + "<32,87>": "", + "<32,88>": "", + "<32,89>": "", + "<32,90>": "0", + "<32,91>": "0", + "<32,92>": "", + "<32,93>": "", + "<32,94>": "", + "<32,95>": "", + "<32,96>": "", + "<32,97>": "", + "<32,98>": "", + "<32,99>": "", + "<32,100>": "", + "<32,101>": "", + "<32,102>": "", + "<32,103>": "", + "<32,104>": "", + "<32,105>": "", + "<32,106>": "", + "<32,107>": "", + "<32,108>": "" }, "<33>": { - "<33,1>": "LU_MAINT_ACTION", + "<33,1>": "ACTION", "<33,2>": "", - "<33,3>": "PUSHBMP", + "<33,3>": "EDITFIELD", "<33,4>": "REACT_SERVS", - "<33,5>": "395", - "<33,6>": "197", - "<33,7>": "18", + "<33,5>": "279", + "<33,6>": "196", + "<33,7>": "102", "<33,8>": "18", "<33,9>": "", "<33,10>": { - "<33,10,1>": "0x5600000B", - "<33,10,2>": "0x0" + "<33,10,1>": "0x56000080", + "<33,10,2>": "0x200" }, "<33,11>": { "<33,11,1>": "0x0", "<33,11,2>": "0x80000000" }, - "<33,12>": "33", - "<33,13>": "-2", + "<33,12>": "29", + "<33,13>": { + "<33,13,1>": "16777215", + "<33,13,2>": "16777215", + "<33,13,3>": "" + }, "<33,14>": "0", "<33,15>": { "<33,15,1>": { @@ -3105,29 +5480,47 @@ } }, "<33,16>": "", - "<33,17>": "CLICK", - "<33,18>": "", - "<33,19>": "", + "<33,17>": "", + "<33,18>": { + "<33,18,1>": { + "<33,18,1,1>": "R", + "<33,18,1,2>": "EXECUTE", + "<33,18,1,3>": "LSL2*POPUP**MAINT_ACTION", + "<33,18,1,4>": "@WINDOW", + "<33,18,1,5>": "@SELF", + "<33,18,1,6>": "TEXT", + "<33,18,1,7>": "", + "<33,18,1,8>": "", + "<33,18,1,9>": "", + "<33,18,1,10>": "", + "<33,18,1,11>": "", + "<33,18,1,12>": "", + "<33,18,1,13>": "", + "<33,18,1,14>": "", + "<33,18,1,15>": "POPUP" + } + }, + "<33,19>": "OPTIONS", "<33,20>": "", "<33,21>": "", "<33,22>": "", - "<33,23>": "", - "<33,24>": "", - "<33,25>": "0", - "<33,26>": "0", + "<33,23>": "REACT_SERVS", + "<33,24>": "ACTION", + "<33,25>": "", + "<33,26>": "", "<33,27>": "", - "<33,28>": "<>", - "<33,29>": "<>", - "<33,30>": "<>", + "<33,28>": "", + "<33,29>": "", + "<33,30>": "<>", "<33,31>": "0", - "<33,32>": { - "<33,32,1>": "0x7fffc", - "<33,32,2>": "0xf0016000" - }, - "<33,33>": "LSL2*IMAGE*BMP*SEARCH", + "<33,32>": "", + "<33,33>": "", "<33,34>": "", "<33,35>": "", - "<33,36>": "", + "<33,36>": { + "<33,36,1>": "0", + "<33,36,2>": "0" + }, "<33,37>": "", "<33,38>": "", "<33,39>": "", @@ -3145,35 +5538,86 @@ "<33,51>": "", "<33,52>": "", "<33,53>": "", - "<33,54>": { - "<33,54,1>": "-5", - "<33,54,2>": "2", - "<33,54,3>": "", - "<33,54,4>": "", - "<33,54,5>": "", - "<33,54,6>": "3" - } + "<33,54>": "", + "<33,55>": "", + "<33,56>": "", + "<33,57>": "", + "<33,58>": "", + "<33,59>": "", + "<33,60>": "", + "<33,61>": "", + "<33,62>": "0", + "<33,63>": "", + "<33,64>": "", + "<33,65>": "", + "<33,66>": "", + "<33,67>": "", + "<33,68>": "", + "<33,69>": "", + "<33,70>": "", + "<33,71>": "", + "<33,72>": "", + "<33,73>": "", + "<33,74>": "", + "<33,75>": "", + "<33,76>": "", + "<33,77>": "", + "<33,78>": "", + "<33,79>": "", + "<33,80>": "", + "<33,81>": "", + "<33,82>": "", + "<33,83>": "", + "<33,84>": "", + "<33,85>": "", + "<33,86>": "", + "<33,87>": "", + "<33,88>": "", + "<33,89>": "", + "<33,90>": "", + "<33,91>": "", + "<33,92>": "", + "<33,93>": "", + "<33,94>": "", + "<33,95>": "", + "<33,96>": "", + "<33,97>": "", + "<33,98>": "", + "<33,99>": "", + "<33,100>": "", + "<33,101>": "", + "<33,102>": "", + "<33,103>": "", + "<33,104>": "", + "<33,105>": "", + "<33,106>": "", + "<33,107>": "", + "<33,108>": "" }, "<34>": { - "<34,1>": "REACT_ITEM", + "<34,1>": "ACTION_LABEL", "<34,2>": "", - "<34,3>": "EDITFIELD", + "<34,3>": "STATIC", "<34,4>": "REACT_SERVS", - "<34,5>": "96", - "<34,6>": "196", - "<34,7>": "102", - "<34,8>": "18", - "<34,9>": "", + "<34,5>": "233", + "<34,6>": "197", + "<34,7>": "36", + "<34,8>": "15", + "<34,9>": "Action:", "<34,10>": { - "<34,10,1>": "0x56000080", - "<34,10,2>": "0x200" + "<34,10,1>": "0x56000800", + "<34,10,2>": "0x0" }, "<34,11>": { "<34,11,1>": "0x0", "<34,11,2>": "0x80000000" }, - "<34,12>": "34", - "<34,13>": "16777215", + "<34,12>": "30", + "<34,13>": { + "<34,13,1>": "-1", + "<34,13,2>": "-1", + "<34,13,3>": "" + }, "<34,14>": "0", "<34,15>": { "<34,15,1>": { @@ -3200,19 +5644,16 @@ "<34,20>": "", "<34,21>": "", "<34,22>": "", - "<34,23>": "REACT_SERVS", - "<34,24>": "REACT_ITEM", - "<34,25>": "0", - "<34,26>": "0", + "<34,23>": "", + "<34,24>": "", + "<34,25>": "", + "<34,26>": "", "<34,27>": "", "<34,28>": "", "<34,29>": "", - "<34,30>": "<>", - "<34,31>": "0", - "<34,32>": { - "<34,32,1>": "0x7fffe", - "<34,32,2>": "0xc0014c08" - }, + "<34,30>": "", + "<34,31>": "", + "<34,32>": "", "<34,33>": "", "<34,34>": "", "<34,35>": "", @@ -3232,28 +5673,101 @@ "<34,49>": "", "<34,50>": "", "<34,51>": "", - "<34,52>": "" + "<34,52>": "", + "<34,53>": "", + "<34,54>": "", + "<34,55>": "", + "<34,56>": "", + "<34,57>": "", + "<34,58>": "", + "<34,59>": "", + "<34,60>": "", + "<34,61>": "", + "<34,62>": "0", + "<34,63>": { + "<34,63,1>": "", + "<34,63,2>": "", + "<34,63,3>": "", + "<34,63,4>": "", + "<34,63,5>": "", + "<34,63,6>": "", + "<34,63,7>": "", + "<34,63,8>": "" + }, + "<34,64>": { + "<34,64,1>": "", + "<34,64,2>": "", + "<34,64,3>": "" + }, + "<34,65>": "-2", + "<34,66>": "", + "<34,67>": "", + "<34,68>": "", + "<34,69>": "", + "<34,70>": "", + "<34,71>": "", + "<34,72>": "", + "<34,73>": "", + "<34,74>": "", + "<34,75>": "", + "<34,76>": "", + "<34,77>": "", + "<34,78>": "", + "<34,79>": "", + "<34,80>": "", + "<34,81>": "", + "<34,82>": "", + "<34,83>": "", + "<34,84>": "", + "<34,85>": "", + "<34,86>": "", + "<34,87>": "", + "<34,88>": "", + "<34,89>": "", + "<34,90>": "0", + "<34,91>": "0", + "<34,92>": "", + "<34,93>": "", + "<34,94>": "", + "<34,95>": "", + "<34,96>": "", + "<34,97>": "", + "<34,98>": "", + "<34,99>": "", + "<34,100>": "", + "<34,101>": "", + "<34,102>": "", + "<34,103>": "", + "<34,104>": "", + "<34,105>": "", + "<34,106>": "", + "<34,107>": "", + "<34,108>": "" }, "<35>": { - "<35,1>": "REACT_ITEM_LABEL", + "<35,1>": "SVC_DESC", "<35,2>": "", - "<35,3>": "STATIC", + "<35,3>": "EDITFIELD", "<35,4>": "REACT_SERVS", - "<35,5>": "57", - "<35,6>": "197", - "<35,7>": "36", - "<35,8>": "15", - "<35,9>": "Item:", + "<35,5>": "481", + "<35,6>": "196", + "<35,7>": "234", + "<35,8>": "18", + "<35,9>": "", "<35,10>": { - "<35,10,1>": "0x56000002", - "<35,10,2>": "0x0" + "<35,10,1>": "0x56000080", + "<35,10,2>": "0x200" }, "<35,11>": { "<35,11,1>": "0x0", "<35,11,2>": "0x80000000" }, - "<35,12>": "35", - "<35,13>": "-1", + "<35,12>": "31", + "<35,13>": { + "<35,13,1>": "16777215", + "<35,13,2>": "16777215", + "<35,13,3>": "" + }, "<35,14>": "0", "<35,15>": { "<35,15,1>": { @@ -3280,23 +5794,23 @@ "<35,20>": "", "<35,21>": "", "<35,22>": "", - "<35,23>": "", - "<35,24>": "", - "<35,25>": "0", - "<35,26>": "0", + "<35,23>": "REACT_SERVS", + "<35,24>": "SVC_DESC", + "<35,25>": "", + "<35,26>": "", "<35,27>": "", - "<35,28>": "<>", - "<35,29>": "<>", + "<35,28>": "", + "<35,29>": "", "<35,30>": "<>", "<35,31>": "0", - "<35,32>": { - "<35,32,1>": "0x7fffe", - "<35,32,2>": "0xf0016808" - }, + "<35,32>": "", "<35,33>": "", "<35,34>": "", "<35,35>": "", - "<35,36>": "", + "<35,36>": { + "<35,36,1>": "0", + "<35,36,2>": "0" + }, "<35,37>": "", "<35,38>": "", "<35,39>": "", @@ -3312,28 +5826,88 @@ "<35,49>": "", "<35,50>": "", "<35,51>": "", - "<35,52>": "" + "<35,52>": "", + "<35,53>": "", + "<35,54>": "", + "<35,55>": "", + "<35,56>": "", + "<35,57>": "", + "<35,58>": "", + "<35,59>": "", + "<35,60>": "", + "<35,61>": "", + "<35,62>": "0", + "<35,63>": "", + "<35,64>": "", + "<35,65>": "", + "<35,66>": "", + "<35,67>": "", + "<35,68>": "", + "<35,69>": "", + "<35,70>": "", + "<35,71>": "", + "<35,72>": "", + "<35,73>": "", + "<35,74>": "", + "<35,75>": "", + "<35,76>": "", + "<35,77>": "", + "<35,78>": "", + "<35,79>": "", + "<35,80>": "", + "<35,81>": "", + "<35,82>": "", + "<35,83>": "", + "<35,84>": "", + "<35,85>": "", + "<35,86>": "", + "<35,87>": "", + "<35,88>": "", + "<35,89>": "", + "<35,90>": "", + "<35,91>": "", + "<35,92>": "", + "<35,93>": "", + "<35,94>": "", + "<35,95>": "", + "<35,96>": "", + "<35,97>": "", + "<35,98>": "", + "<35,99>": "", + "<35,100>": "", + "<35,101>": "", + "<35,102>": "", + "<35,103>": "", + "<35,104>": "", + "<35,105>": "", + "<35,106>": "", + "<35,107>": "", + "<35,108>": "" }, "<36>": { - "<36,1>": "REACT_SYSTEM", + "<36,1>": "SVC_DESC_LABEL", "<36,2>": "", - "<36,3>": "EDITFIELD", + "<36,3>": "STATIC", "<36,4>": "REACT_SERVS", - "<36,5>": "96", - "<36,6>": "173", - "<36,7>": "102", - "<36,8>": "18", - "<36,9>": "", + "<36,5>": "421", + "<36,6>": "197", + "<36,7>": "51", + "<36,8>": "15", + "<36,9>": "Svc Desc:", "<36,10>": { - "<36,10,1>": "0x56000080", - "<36,10,2>": "0x200" + "<36,10,1>": "0x56000800", + "<36,10,2>": "0x0" }, "<36,11>": { "<36,11,1>": "0x0", "<36,11,2>": "0x80000000" }, - "<36,12>": "36", - "<36,13>": "16777215", + "<36,12>": "32", + "<36,13>": { + "<36,13,1>": "-1", + "<36,13,2>": "-1", + "<36,13,3>": "" + }, "<36,14>": "0", "<36,15>": { "<36,15,1>": { @@ -3360,19 +5934,16 @@ "<36,20>": "", "<36,21>": "", "<36,22>": "", - "<36,23>": "REACT_SERVS", - "<36,24>": "REACT_SYSTEM", - "<36,25>": "0", - "<36,26>": "0", + "<36,23>": "", + "<36,24>": "", + "<36,25>": "", + "<36,26>": "", "<36,27>": "", "<36,28>": "", "<36,29>": "", - "<36,30>": "<>", - "<36,31>": "0", - "<36,32>": { - "<36,32,1>": "0x7fffe", - "<36,32,2>": "0xc0014c08" - }, + "<36,30>": "", + "<36,31>": "", + "<36,32>": "", "<36,33>": "", "<36,34>": "", "<36,35>": "", @@ -3392,28 +5963,101 @@ "<36,49>": "", "<36,50>": "", "<36,51>": "", - "<36,52>": "" + "<36,52>": "", + "<36,53>": "", + "<36,54>": "", + "<36,55>": "", + "<36,56>": "", + "<36,57>": "", + "<36,58>": "", + "<36,59>": "", + "<36,60>": "", + "<36,61>": "", + "<36,62>": "0", + "<36,63>": { + "<36,63,1>": "", + "<36,63,2>": "", + "<36,63,3>": "", + "<36,63,4>": "", + "<36,63,5>": "", + "<36,63,6>": "", + "<36,63,7>": "", + "<36,63,8>": "" + }, + "<36,64>": { + "<36,64,1>": "", + "<36,64,2>": "", + "<36,64,3>": "" + }, + "<36,65>": "-2", + "<36,66>": "", + "<36,67>": "", + "<36,68>": "", + "<36,69>": "", + "<36,70>": "", + "<36,71>": "", + "<36,72>": "", + "<36,73>": "", + "<36,74>": "", + "<36,75>": "", + "<36,76>": "", + "<36,77>": "", + "<36,78>": "", + "<36,79>": "", + "<36,80>": "", + "<36,81>": "", + "<36,82>": "", + "<36,83>": "", + "<36,84>": "", + "<36,85>": "", + "<36,86>": "", + "<36,87>": "", + "<36,88>": "", + "<36,89>": "", + "<36,90>": "0", + "<36,91>": "0", + "<36,92>": "", + "<36,93>": "", + "<36,94>": "", + "<36,95>": "", + "<36,96>": "", + "<36,97>": "", + "<36,98>": "", + "<36,99>": "", + "<36,100>": "", + "<36,101>": "", + "<36,102>": "", + "<36,103>": "", + "<36,104>": "", + "<36,105>": "", + "<36,106>": "", + "<36,107>": "", + "<36,108>": "" }, "<37>": { - "<37,1>": "REACT_SYSTEM_LABEL", + "<37,1>": "LU_MAINT_ACTION", "<37,2>": "", - "<37,3>": "STATIC", + "<37,3>": "PUSHBMP", "<37,4>": "REACT_SERVS", - "<37,5>": "48", - "<37,6>": "174", - "<37,7>": "45", - "<37,8>": "15", - "<37,9>": "System:", + "<37,5>": "395", + "<37,6>": "197", + "<37,7>": "18", + "<37,8>": "18", + "<37,9>": "", "<37,10>": { - "<37,10,1>": "0x56000002", + "<37,10,1>": "0x56000300", "<37,10,2>": "0x0" }, "<37,11>": { "<37,11,1>": "0x0", "<37,11,2>": "0x80000000" }, - "<37,12>": "37", - "<37,13>": "-1", + "<37,12>": "33", + "<37,13>": { + "<37,13,1>": "-2", + "<37,13,2>": "-2", + "<37,13,3>": "0" + }, "<37,14>": "0", "<37,15>": { "<37,15,1>": { @@ -3434,7 +6078,7 @@ } }, "<37,16>": "", - "<37,17>": "", + "<37,17>": "CLICK", "<37,18>": "", "<37,19>": "", "<37,20>": "", @@ -3442,26 +6086,26 @@ "<37,22>": "", "<37,23>": "", "<37,24>": "", - "<37,25>": "0", - "<37,26>": "0", + "<37,25>": "", + "<37,26>": "", "<37,27>": "", - "<37,28>": "<>", - "<37,29>": "<>", - "<37,30>": "<>", - "<37,31>": "0", - "<37,32>": { - "<37,32,1>": "0x7fffe", - "<37,32,2>": "0xf0016808" - }, - "<37,33>": "", + "<37,28>": "", + "<37,29>": "", + "<37,30>": "", + "<37,31>": "", + "<37,32>": "", + "<37,33>": "LSL2*IMAGE*BMP*SEARCH", "<37,34>": "", "<37,35>": "", "<37,36>": "", "<37,37>": "", "<37,38>": "", "<37,39>": "", - "<37,40>": "", - "<37,41>": "", + "<37,40>": "-1", + "<37,41>": { + "<37,41,1>": "", + "<37,41,2>": "-1" + }, "<37,42>": "", "<37,43>": "", "<37,44>": "", @@ -3472,28 +6116,103 @@ "<37,49>": "", "<37,50>": "", "<37,51>": "", - "<37,52>": "" + "<37,52>": "", + "<37,53>": "", + "<37,54>": { + "<37,54,1>": "-5", + "<37,54,2>": "2", + "<37,54,3>": "", + "<37,54,4>": "", + "<37,54,5>": "", + "<37,54,6>": "3", + "<37,54,7>": "", + "<37,54,8>": "", + "<37,54,9>": "", + "<37,54,10>": "0" + }, + "<37,55>": "", + "<37,56>": "", + "<37,57>": "", + "<37,58>": "", + "<37,59>": "", + "<37,60>": "", + "<37,61>": "", + "<37,62>": "0", + "<37,63>": "", + "<37,64>": { + "<37,64,1>": "-2", + "<37,64,2>": "-2", + "<37,64,3>": "0" + }, + "<37,65>": "-2", + "<37,66>": "", + "<37,67>": "", + "<37,68>": "", + "<37,69>": "", + "<37,70>": "", + "<37,71>": "", + "<37,72>": "", + "<37,73>": "", + "<37,74>": "", + "<37,75>": "", + "<37,76>": "", + "<37,77>": "", + "<37,78>": "", + "<37,79>": "", + "<37,80>": "", + "<37,81>": "", + "<37,82>": "", + "<37,83>": "", + "<37,84>": "", + "<37,85>": "", + "<37,86>": "", + "<37,87>": "", + "<37,88>": "", + "<37,89>": "", + "<37,90>": "0", + "<37,91>": "0", + "<37,92>": "", + "<37,93>": "", + "<37,94>": "", + "<37,95>": "", + "<37,96>": "", + "<37,97>": "", + "<37,98>": "", + "<37,99>": "", + "<37,100>": "", + "<37,101>": "", + "<37,102>": "", + "<37,103>": "", + "<37,104>": "", + "<37,105>": "", + "<37,106>": "", + "<37,107>": "", + "<37,108>": "" }, "<38>": { - "<38,1>": "LU_SYSTEM", + "<38,1>": "REACT_ITEM", "<38,2>": "", - "<38,3>": "PUSHBMP", + "<38,3>": "EDITFIELD", "<38,4>": "REACT_SERVS", - "<38,5>": "205", - "<38,6>": "174", - "<38,7>": "18", + "<38,5>": "96", + "<38,6>": "196", + "<38,7>": "102", "<38,8>": "18", - "<38,9>": "|LU System", + "<38,9>": "", "<38,10>": { - "<38,10,1>": "0x5600200B", - "<38,10,2>": "0x0" + "<38,10,1>": "0x56000080", + "<38,10,2>": "0x200" }, "<38,11>": { "<38,11,1>": "0x0", "<38,11,2>": "0x80000000" }, - "<38,12>": "38", - "<38,13>": "-2", + "<38,12>": "34", + "<38,13>": { + "<38,13,1>": "16777215", + "<38,13,2>": "16777215", + "<38,13,3>": "" + }, "<38,14>": "0", "<38,15>": { "<38,15,1>": { @@ -3515,50 +6234,28 @@ }, "<38,16>": "", "<38,17>": "", - "<38,18>": { - "<38,18,1>": { - "<38,18,1,1>": "R", - "<38,18,1,2>": "EXECUTE", - "<38,18,1,3>": "LSL2*STPROCEXE**COMM_REACT_SERVS", - "<38,18,1,4>": { - "<38,18,1,4,1>": "@SELF", - "<38,18,1,4,2>": "@EVENT", - "<38,18,1,4,3>": "REACT_SYSTEM", - "<38,18,1,4,4>": "@PARAM2", - "<38,18,1,4,5>": "@PARAM3", - "<38,18,1,4,6>": "@PARAM4", - "<38,18,1,4,7>": "@PARAM5", - "<38,18,1,4,8>": "@PARAM6" - }, - "<38,18,1,5>": "", - "<38,18,1,6>": "" - }, - "<38,18,2>": "" - }, - "<38,19>": { - "<38,19,1>": "CLICK", - "<38,19,2>": "" - }, + "<38,18>": "", + "<38,19>": "", "<38,20>": "", "<38,21>": "", "<38,22>": "", - "<38,23>": "", - "<38,24>": "", - "<38,25>": "0", - "<38,26>": "0", + "<38,23>": "REACT_SERVS", + "<38,24>": "REACT_ITEM", + "<38,25>": "", + "<38,26>": "", "<38,27>": "", - "<38,28>": "<>", - "<38,29>": "<>", + "<38,28>": "", + "<38,29>": "", "<38,30>": "<>", "<38,31>": "0", - "<38,32>": { - "<38,32,1>": "0x7fffc", - "<38,32,2>": "0xf0016800" - }, - "<38,33>": "LSL2*IMAGE*BMP*SEARCH", + "<38,32>": "", + "<38,33>": "", "<38,34>": "", "<38,35>": "", - "<38,36>": "", + "<38,36>": { + "<38,36,1>": "0", + "<38,36,2>": "0" + }, "<38,37>": "", "<38,38>": "", "<38,39>": "", @@ -3576,35 +6273,86 @@ "<38,51>": "", "<38,52>": "", "<38,53>": "", - "<38,54>": { - "<38,54,1>": "-5", - "<38,54,2>": "2", - "<38,54,3>": "", - "<38,54,4>": "", - "<38,54,5>": "", - "<38,54,6>": "3" - } + "<38,54>": "", + "<38,55>": "", + "<38,56>": "", + "<38,57>": "", + "<38,58>": "", + "<38,59>": "", + "<38,60>": "", + "<38,61>": "", + "<38,62>": "0", + "<38,63>": "", + "<38,64>": "", + "<38,65>": "", + "<38,66>": "", + "<38,67>": "", + "<38,68>": "", + "<38,69>": "", + "<38,70>": "", + "<38,71>": "", + "<38,72>": "", + "<38,73>": "", + "<38,74>": "", + "<38,75>": "", + "<38,76>": "", + "<38,77>": "", + "<38,78>": "", + "<38,79>": "", + "<38,80>": "", + "<38,81>": "", + "<38,82>": "", + "<38,83>": "", + "<38,84>": "", + "<38,85>": "", + "<38,86>": "", + "<38,87>": "", + "<38,88>": "", + "<38,89>": "", + "<38,90>": "", + "<38,91>": "", + "<38,92>": "", + "<38,93>": "", + "<38,94>": "", + "<38,95>": "", + "<38,96>": "", + "<38,97>": "", + "<38,98>": "", + "<38,99>": "", + "<38,100>": "", + "<38,101>": "", + "<38,102>": "", + "<38,103>": "", + "<38,104>": "", + "<38,105>": "", + "<38,106>": "", + "<38,107>": "", + "<38,108>": "" }, "<39>": { - "<39,1>": "REACT_TYPE", + "<39,1>": "REACT_ITEM_LABEL", "<39,2>": "", - "<39,3>": "EDITFIELD", + "<39,3>": "STATIC", "<39,4>": "REACT_SERVS", - "<39,5>": "96", - "<39,6>": "218", - "<39,7>": "102", - "<39,8>": "18", - "<39,9>": "", + "<39,5>": "57", + "<39,6>": "197", + "<39,7>": "36", + "<39,8>": "15", + "<39,9>": "Item:", "<39,10>": { - "<39,10,1>": "0x56000080", - "<39,10,2>": "0x200" + "<39,10,1>": "0x56000800", + "<39,10,2>": "0x0" }, "<39,11>": { "<39,11,1>": "0x0", "<39,11,2>": "0x80000000" }, - "<39,12>": "39", - "<39,13>": "12639424", + "<39,12>": "35", + "<39,13>": { + "<39,13,1>": "-1", + "<39,13,2>": "-1", + "<39,13,3>": "" + }, "<39,14>": "0", "<39,15>": { "<39,15,1>": { @@ -3631,19 +6379,16 @@ "<39,20>": "", "<39,21>": "", "<39,22>": "", - "<39,23>": "REACT_SERVS", - "<39,24>": "REACT_TYPE", - "<39,25>": "0", - "<39,26>": "0", + "<39,23>": "", + "<39,24>": "", + "<39,25>": "", + "<39,26>": "", "<39,27>": "", "<39,28>": "", "<39,29>": "", - "<39,30>": "<>", - "<39,31>": "0", - "<39,32>": { - "<39,32,1>": "0x7fffe", - "<39,32,2>": "0xc0014c08" - }, + "<39,30>": "", + "<39,31>": "", + "<39,32>": "", "<39,33>": "", "<39,34>": "", "<39,35>": "", @@ -3663,28 +6408,101 @@ "<39,49>": "", "<39,50>": "", "<39,51>": "", - "<39,52>": "" + "<39,52>": "", + "<39,53>": "", + "<39,54>": "", + "<39,55>": "", + "<39,56>": "", + "<39,57>": "", + "<39,58>": "", + "<39,59>": "", + "<39,60>": "", + "<39,61>": "", + "<39,62>": "0", + "<39,63>": { + "<39,63,1>": "", + "<39,63,2>": "", + "<39,63,3>": "", + "<39,63,4>": "", + "<39,63,5>": "", + "<39,63,6>": "", + "<39,63,7>": "", + "<39,63,8>": "" + }, + "<39,64>": { + "<39,64,1>": "", + "<39,64,2>": "", + "<39,64,3>": "" + }, + "<39,65>": "-2", + "<39,66>": "", + "<39,67>": "", + "<39,68>": "", + "<39,69>": "", + "<39,70>": "", + "<39,71>": "", + "<39,72>": "", + "<39,73>": "", + "<39,74>": "", + "<39,75>": "", + "<39,76>": "", + "<39,77>": "", + "<39,78>": "", + "<39,79>": "", + "<39,80>": "", + "<39,81>": "", + "<39,82>": "", + "<39,83>": "", + "<39,84>": "", + "<39,85>": "", + "<39,86>": "", + "<39,87>": "", + "<39,88>": "", + "<39,89>": "", + "<39,90>": "0", + "<39,91>": "0", + "<39,92>": "", + "<39,93>": "", + "<39,94>": "", + "<39,95>": "", + "<39,96>": "", + "<39,97>": "", + "<39,98>": "", + "<39,99>": "", + "<39,100>": "", + "<39,101>": "", + "<39,102>": "", + "<39,103>": "", + "<39,104>": "", + "<39,105>": "", + "<39,106>": "", + "<39,107>": "", + "<39,108>": "" }, "<40>": { - "<40,1>": "REACT_TYPE_LABEL", + "<40,1>": "REACT_SYSTEM", "<40,2>": "", - "<40,3>": "STATIC", + "<40,3>": "EDITFIELD", "<40,4>": "REACT_SERVS", - "<40,5>": "33", - "<40,6>": "218", - "<40,7>": "60", - "<40,8>": "15", - "<40,9>": "React Type:", + "<40,5>": "96", + "<40,6>": "173", + "<40,7>": "102", + "<40,8>": "18", + "<40,9>": "", "<40,10>": { - "<40,10,1>": "0x56000002", - "<40,10,2>": "0x0" + "<40,10,1>": "0x56000080", + "<40,10,2>": "0x200" }, "<40,11>": { "<40,11,1>": "0x0", "<40,11,2>": "0x80000000" }, - "<40,12>": "40", - "<40,13>": "-1", + "<40,12>": "36", + "<40,13>": { + "<40,13,1>": "16777215", + "<40,13,2>": "16777215", + "<40,13,3>": "" + }, "<40,14>": "0", "<40,15>": { "<40,15,1>": { @@ -3711,23 +6529,23 @@ "<40,20>": "", "<40,21>": "", "<40,22>": "", - "<40,23>": "", - "<40,24>": "", - "<40,25>": "0", - "<40,26>": "0", + "<40,23>": "REACT_SERVS", + "<40,24>": "REACT_SYSTEM", + "<40,25>": "", + "<40,26>": "", "<40,27>": "", - "<40,28>": "<>", - "<40,29>": "<>", - "<40,30>": "<>", + "<40,28>": "", + "<40,29>": "", + "<40,30>": "<>", "<40,31>": "0", - "<40,32>": { - "<40,32,1>": "0x7fffe", - "<40,32,2>": "0xf0016808" - }, + "<40,32>": "", "<40,33>": "", "<40,34>": "", "<40,35>": "", - "<40,36>": "", + "<40,36>": { + "<40,36,1>": "0", + "<40,36,2>": "0" + }, "<40,37>": "", "<40,38>": "", "<40,39>": "", @@ -3743,28 +6561,88 @@ "<40,49>": "", "<40,50>": "", "<40,51>": "", - "<40,52>": "" + "<40,52>": "", + "<40,53>": "", + "<40,54>": "", + "<40,55>": "", + "<40,56>": "", + "<40,57>": "", + "<40,58>": "", + "<40,59>": "", + "<40,60>": "", + "<40,61>": "", + "<40,62>": "0", + "<40,63>": "", + "<40,64>": "", + "<40,65>": "", + "<40,66>": "", + "<40,67>": "", + "<40,68>": "", + "<40,69>": "", + "<40,70>": "", + "<40,71>": "", + "<40,72>": "", + "<40,73>": "", + "<40,74>": "", + "<40,75>": "", + "<40,76>": "", + "<40,77>": "", + "<40,78>": "", + "<40,79>": "", + "<40,80>": "", + "<40,81>": "", + "<40,82>": "", + "<40,83>": "", + "<40,84>": "", + "<40,85>": "", + "<40,86>": "", + "<40,87>": "", + "<40,88>": "", + "<40,89>": "", + "<40,90>": "", + "<40,91>": "", + "<40,92>": "", + "<40,93>": "", + "<40,94>": "", + "<40,95>": "", + "<40,96>": "", + "<40,97>": "", + "<40,98>": "", + "<40,99>": "", + "<40,100>": "", + "<40,101>": "", + "<40,102>": "", + "<40,103>": "", + "<40,104>": "", + "<40,105>": "", + "<40,106>": "", + "<40,107>": "", + "<40,108>": "" }, "<41>": { - "<41,1>": "SYS_DESC", + "<41,1>": "REACT_SYSTEM_LABEL", "<41,2>": "", - "<41,3>": "EDITFIELD", + "<41,3>": "STATIC", "<41,4>": "REACT_SERVS", - "<41,5>": "240", - "<41,6>": "173", - "<41,7>": "141", - "<41,8>": "18", - "<41,9>": "", + "<41,5>": "48", + "<41,6>": "174", + "<41,7>": "45", + "<41,8>": "15", + "<41,9>": "System:", "<41,10>": { - "<41,10,1>": "0x56000080", - "<41,10,2>": "0x200" + "<41,10,1>": "0x56000800", + "<41,10,2>": "0x0" }, "<41,11>": { "<41,11,1>": "0x0", "<41,11,2>": "0x80000000" }, - "<41,12>": "41", - "<41,13>": "12639424", + "<41,12>": "37", + "<41,13>": { + "<41,13,1>": "-1", + "<41,13,2>": "-1", + "<41,13,3>": "" + }, "<41,14>": "0", "<41,15>": { "<41,15,1>": { @@ -3791,19 +6669,16 @@ "<41,20>": "", "<41,21>": "", "<41,22>": "", - "<41,23>": "REACT_SERVS", - "<41,24>": "SYS_DESC", - "<41,25>": "0", - "<41,26>": "0", + "<41,23>": "", + "<41,24>": "", + "<41,25>": "", + "<41,26>": "", "<41,27>": "", "<41,28>": "", "<41,29>": "", - "<41,30>": "<>", - "<41,31>": "0", - "<41,32>": { - "<41,32,1>": "0x7fffe", - "<41,32,2>": "0xc0014c08" - }, + "<41,30>": "", + "<41,31>": "", + "<41,32>": "", "<41,33>": "", "<41,34>": "", "<41,35>": "", @@ -3823,28 +6698,101 @@ "<41,49>": "", "<41,50>": "", "<41,51>": "", - "<41,52>": "" + "<41,52>": "", + "<41,53>": "", + "<41,54>": "", + "<41,55>": "", + "<41,56>": "", + "<41,57>": "", + "<41,58>": "", + "<41,59>": "", + "<41,60>": "", + "<41,61>": "", + "<41,62>": "0", + "<41,63>": { + "<41,63,1>": "", + "<41,63,2>": "", + "<41,63,3>": "", + "<41,63,4>": "", + "<41,63,5>": "", + "<41,63,6>": "", + "<41,63,7>": "", + "<41,63,8>": "" + }, + "<41,64>": { + "<41,64,1>": "", + "<41,64,2>": "", + "<41,64,3>": "" + }, + "<41,65>": "-2", + "<41,66>": "", + "<41,67>": "", + "<41,68>": "", + "<41,69>": "", + "<41,70>": "", + "<41,71>": "", + "<41,72>": "", + "<41,73>": "", + "<41,74>": "", + "<41,75>": "", + "<41,76>": "", + "<41,77>": "", + "<41,78>": "", + "<41,79>": "", + "<41,80>": "", + "<41,81>": "", + "<41,82>": "", + "<41,83>": "", + "<41,84>": "", + "<41,85>": "", + "<41,86>": "", + "<41,87>": "", + "<41,88>": "", + "<41,89>": "", + "<41,90>": "0", + "<41,91>": "0", + "<41,92>": "", + "<41,93>": "", + "<41,94>": "", + "<41,95>": "", + "<41,96>": "", + "<41,97>": "", + "<41,98>": "", + "<41,99>": "", + "<41,100>": "", + "<41,101>": "", + "<41,102>": "", + "<41,103>": "", + "<41,104>": "", + "<41,105>": "", + "<41,106>": "", + "<41,107>": "", + "<41,108>": "" }, "<42>": { - "<42,1>": "LU_REACT_ITEM", + "<42,1>": "LU_SYSTEM", "<42,2>": "", "<42,3>": "PUSHBMP", "<42,4>": "REACT_SERVS", "<42,5>": "205", - "<42,6>": "197", + "<42,6>": "174", "<42,7>": "18", "<42,8>": "18", "<42,9>": "|LU System", "<42,10>": { - "<42,10,1>": "0x5600200B", + "<42,10,1>": "0x56002300", "<42,10,2>": "0x0" }, "<42,11>": { "<42,11,1>": "0x0", "<42,11,2>": "0x80000000" }, - "<42,12>": "42", - "<42,13>": "-2", + "<42,12>": "38", + "<42,13>": { + "<42,13,1>": "-2", + "<42,13,2>": "-2", + "<42,13,3>": "0" + }, "<42,14>": "0", "<42,15>": { "<42,15,1>": { @@ -3874,7 +6822,7 @@ "<42,18,1,4>": { "<42,18,1,4,1>": "@SELF", "<42,18,1,4,2>": "@EVENT", - "<42,18,1,4,3>": "REACT_ITEM", + "<42,18,1,4,3>": "REACT_SYSTEM", "<42,18,1,4,4>": "@PARAM2", "<42,18,1,4,5>": "@PARAM3", "<42,18,1,4,6>": "@PARAM4", @@ -3882,30 +6830,32 @@ "<42,18,1,4,8>": "@PARAM6" }, "<42,18,1,5>": "", - "<42,18,1,6>": "" - }, - "<42,18,2>": "" - }, - "<42,19>": { - "<42,19,1>": "CLICK", - "<42,19,2>": "" + "<42,18,1,6>": "", + "<42,18,1,7>": "", + "<42,18,1,8>": "", + "<42,18,1,9>": "", + "<42,18,1,10>": "", + "<42,18,1,11>": "", + "<42,18,1,12>": "", + "<42,18,1,13>": "", + "<42,18,1,14>": "", + "<42,18,1,15>": "STPROC" + } }, + "<42,19>": "CLICK", "<42,20>": "", "<42,21>": "", "<42,22>": "", "<42,23>": "", "<42,24>": "", - "<42,25>": "0", - "<42,26>": "0", + "<42,25>": "", + "<42,26>": "", "<42,27>": "", - "<42,28>": "<>", - "<42,29>": "<>", - "<42,30>": "<>", - "<42,31>": "0", - "<42,32>": { - "<42,32,1>": "0x7fffc", - "<42,32,2>": "0xf0016800" - }, + "<42,28>": "", + "<42,29>": "", + "<42,30>": "", + "<42,31>": "", + "<42,32>": "", "<42,33>": "LSL2*IMAGE*BMP*SEARCH", "<42,34>": "", "<42,35>": "", @@ -3913,8 +6863,11 @@ "<42,37>": "", "<42,38>": "", "<42,39>": "", - "<42,40>": "", - "<42,41>": "", + "<42,40>": "-1", + "<42,41>": { + "<42,41,1>": "", + "<42,41,2>": "-1" + }, "<42,42>": "", "<42,43>": "", "<42,44>": "", @@ -3933,17 +6886,79 @@ "<42,54,3>": "", "<42,54,4>": "", "<42,54,5>": "", - "<42,54,6>": "3" - } + "<42,54,6>": "3", + "<42,54,7>": "", + "<42,54,8>": "", + "<42,54,9>": "", + "<42,54,10>": "0" + }, + "<42,55>": "", + "<42,56>": "", + "<42,57>": "", + "<42,58>": "", + "<42,59>": "", + "<42,60>": "", + "<42,61>": "", + "<42,62>": "0", + "<42,63>": "", + "<42,64>": { + "<42,64,1>": "-2", + "<42,64,2>": "-2", + "<42,64,3>": "0" + }, + "<42,65>": "-2", + "<42,66>": "", + "<42,67>": "", + "<42,68>": "", + "<42,69>": "", + "<42,70>": "", + "<42,71>": "", + "<42,72>": "", + "<42,73>": "", + "<42,74>": "", + "<42,75>": "", + "<42,76>": "", + "<42,77>": "", + "<42,78>": "", + "<42,79>": "", + "<42,80>": "", + "<42,81>": "", + "<42,82>": "", + "<42,83>": "", + "<42,84>": "", + "<42,85>": "", + "<42,86>": "", + "<42,87>": "", + "<42,88>": "", + "<42,89>": "", + "<42,90>": "0", + "<42,91>": "0", + "<42,92>": "", + "<42,93>": "", + "<42,94>": "", + "<42,95>": "", + "<42,96>": "", + "<42,97>": "", + "<42,98>": "", + "<42,99>": "", + "<42,100>": "", + "<42,101>": "", + "<42,102>": "", + "<42,103>": "", + "<42,104>": "", + "<42,105>": "", + "<42,106>": "", + "<42,107>": "", + "<42,108>": "" }, "<43>": { - "<43,1>": "REACT_ITEM_TYPE", + "<43,1>": "REACT_TYPE", "<43,2>": "", "<43,3>": "EDITFIELD", "<43,4>": "REACT_SERVS", - "<43,5>": "136", - "<43,6>": "334", - "<43,7>": "39", + "<43,5>": "96", + "<43,6>": "218", + "<43,7>": "102", "<43,8>": "18", "<43,9>": "", "<43,10>": { @@ -3954,8 +6969,12 @@ "<43,11,1>": "0x0", "<43,11,2>": "0x80000000" }, - "<43,12>": "43", - "<43,13>": "-2", + "<43,12>": "39", + "<43,13>": { + "<43,13,1>": "12639424", + "<43,13,2>": "12639424", + "<43,13,3>": "" + }, "<43,14>": "0", "<43,15>": { "<43,15,1>": { @@ -3983,22 +7002,22 @@ "<43,21>": "", "<43,22>": "", "<43,23>": "REACT_SERVS", - "<43,24>": "REACT_ITEM_TYPE", - "<43,25>": "0", - "<43,26>": "0", + "<43,24>": "REACT_TYPE", + "<43,25>": "", + "<43,26>": "", "<43,27>": "", "<43,28>": "", "<43,29>": "", "<43,30>": "<>", "<43,31>": "0", - "<43,32>": { - "<43,32,1>": "0x7fffe", - "<43,32,2>": "0xc0016c08" - }, + "<43,32>": "", "<43,33>": "", "<43,34>": "", "<43,35>": "", - "<43,36>": "", + "<43,36>": { + "<43,36,1>": "0", + "<43,36,2>": "0" + }, "<43,37>": "", "<43,38>": "", "<43,39>": "", @@ -4014,28 +7033,88 @@ "<43,49>": "", "<43,50>": "", "<43,51>": "", - "<43,52>": "" + "<43,52>": "", + "<43,53>": "", + "<43,54>": "", + "<43,55>": "", + "<43,56>": "", + "<43,57>": "", + "<43,58>": "", + "<43,59>": "", + "<43,60>": "", + "<43,61>": "", + "<43,62>": "0", + "<43,63>": "", + "<43,64>": "", + "<43,65>": "", + "<43,66>": "", + "<43,67>": "", + "<43,68>": "", + "<43,69>": "", + "<43,70>": "", + "<43,71>": "", + "<43,72>": "", + "<43,73>": "", + "<43,74>": "", + "<43,75>": "", + "<43,76>": "", + "<43,77>": "", + "<43,78>": "", + "<43,79>": "", + "<43,80>": "", + "<43,81>": "", + "<43,82>": "", + "<43,83>": "", + "<43,84>": "", + "<43,85>": "", + "<43,86>": "", + "<43,87>": "", + "<43,88>": "", + "<43,89>": "", + "<43,90>": "", + "<43,91>": "", + "<43,92>": "", + "<43,93>": "", + "<43,94>": "", + "<43,95>": "", + "<43,96>": "", + "<43,97>": "", + "<43,98>": "", + "<43,99>": "", + "<43,100>": "", + "<43,101>": "", + "<43,102>": "", + "<43,103>": "", + "<43,104>": "", + "<43,105>": "", + "<43,106>": "", + "<43,107>": "", + "<43,108>": "" }, "<44>": { - "<44,1>": "REACT_ITEM_TYPE_LABEL", + "<44,1>": "REACT_TYPE_LABEL", "<44,2>": "", "<44,3>": "STATIC", "<44,4>": "REACT_SERVS", - "<44,5>": "40", - "<44,6>": "335", - "<44,7>": "93", + "<44,5>": "33", + "<44,6>": "218", + "<44,7>": "60", "<44,8>": "15", - "<44,9>": "React Item Type:", + "<44,9>": "React Type:", "<44,10>": { - "<44,10,1>": "0x56000002", + "<44,10,1>": "0x56000800", "<44,10,2>": "0x0" }, "<44,11>": { "<44,11,1>": "0x0", "<44,11,2>": "0x80000000" }, - "<44,12>": "44", - "<44,13>": "-1", + "<44,12>": "40", + "<44,13>": { + "<44,13,1>": "-1", + "<44,13,2>": "-1", + "<44,13,3>": "" + }, "<44,14>": "0", "<44,15>": { "<44,15,1>": { @@ -4064,17 +7143,14 @@ "<44,22>": "", "<44,23>": "", "<44,24>": "", - "<44,25>": "0", - "<44,26>": "0", + "<44,25>": "", + "<44,26>": "", "<44,27>": "", - "<44,28>": "<>", - "<44,29>": "<>", - "<44,30>": "<>", - "<44,31>": "0", - "<44,32>": { - "<44,32,1>": "0x7fffe", - "<44,32,2>": "0xf0016808" - }, + "<44,28>": "", + "<44,29>": "", + "<44,30>": "", + "<44,31>": "", + "<44,32>": "", "<44,33>": "", "<44,34>": "", "<44,35>": "", @@ -4094,16 +7170,85 @@ "<44,49>": "", "<44,50>": "", "<44,51>": "", - "<44,52>": "" + "<44,52>": "", + "<44,53>": "", + "<44,54>": "", + "<44,55>": "", + "<44,56>": "", + "<44,57>": "", + "<44,58>": "", + "<44,59>": "", + "<44,60>": "", + "<44,61>": "", + "<44,62>": "0", + "<44,63>": { + "<44,63,1>": "", + "<44,63,2>": "", + "<44,63,3>": "", + "<44,63,4>": "", + "<44,63,5>": "", + "<44,63,6>": "", + "<44,63,7>": "", + "<44,63,8>": "" + }, + "<44,64>": { + "<44,64,1>": "", + "<44,64,2>": "", + "<44,64,3>": "" + }, + "<44,65>": "-2", + "<44,66>": "", + "<44,67>": "", + "<44,68>": "", + "<44,69>": "", + "<44,70>": "", + "<44,71>": "", + "<44,72>": "", + "<44,73>": "", + "<44,74>": "", + "<44,75>": "", + "<44,76>": "", + "<44,77>": "", + "<44,78>": "", + "<44,79>": "", + "<44,80>": "", + "<44,81>": "", + "<44,82>": "", + "<44,83>": "", + "<44,84>": "", + "<44,85>": "", + "<44,86>": "", + "<44,87>": "", + "<44,88>": "", + "<44,89>": "", + "<44,90>": "0", + "<44,91>": "0", + "<44,92>": "", + "<44,93>": "", + "<44,94>": "", + "<44,95>": "", + "<44,96>": "", + "<44,97>": "", + "<44,98>": "", + "<44,99>": "", + "<44,100>": "", + "<44,101>": "", + "<44,102>": "", + "<44,103>": "", + "<44,104>": "", + "<44,105>": "", + "<44,106>": "", + "<44,107>": "", + "<44,108>": "" }, "<45>": { - "<45,1>": "REACT_ITEM_DESC", + "<45,1>": "SYS_DESC", "<45,2>": "", "<45,3>": "EDITFIELD", "<45,4>": "REACT_SERVS", - "<45,5>": "234", - "<45,6>": "334", - "<45,7>": "102", + "<45,5>": "240", + "<45,6>": "173", + "<45,7>": "141", "<45,8>": "18", "<45,9>": "", "<45,10>": { @@ -4114,8 +7259,12 @@ "<45,11,1>": "0x0", "<45,11,2>": "0x80000000" }, - "<45,12>": "45", - "<45,13>": "12639424", + "<45,12>": "41", + "<45,13>": { + "<45,13,1>": "12639424", + "<45,13,2>": "12639424", + "<45,13,3>": "" + }, "<45,14>": "0", "<45,15>": { "<45,15,1>": { @@ -4143,22 +7292,22 @@ "<45,21>": "", "<45,22>": "", "<45,23>": "REACT_SERVS", - "<45,24>": "REACT_ITEM_DESC", - "<45,25>": "0", - "<45,26>": "0", + "<45,24>": "SYS_DESC", + "<45,25>": "", + "<45,26>": "", "<45,27>": "", "<45,28>": "", "<45,29>": "", "<45,30>": "<>", "<45,31>": "0", - "<45,32>": { - "<45,32,1>": "0x7fffe", - "<45,32,2>": "0xc0014c08" - }, + "<45,32>": "", "<45,33>": "", "<45,34>": "", "<45,35>": "", - "<45,36>": "", + "<45,36>": { + "<45,36,1>": "0", + "<45,36,2>": "0" + }, "<45,37>": "", "<45,38>": "", "<45,39>": "", @@ -4174,28 +7323,88 @@ "<45,49>": "", "<45,50>": "", "<45,51>": "", - "<45,52>": "" + "<45,52>": "", + "<45,53>": "", + "<45,54>": "", + "<45,55>": "", + "<45,56>": "", + "<45,57>": "", + "<45,58>": "", + "<45,59>": "", + "<45,60>": "", + "<45,61>": "", + "<45,62>": "0", + "<45,63>": "", + "<45,64>": "", + "<45,65>": "", + "<45,66>": "", + "<45,67>": "", + "<45,68>": "", + "<45,69>": "", + "<45,70>": "", + "<45,71>": "", + "<45,72>": "", + "<45,73>": "", + "<45,74>": "", + "<45,75>": "", + "<45,76>": "", + "<45,77>": "", + "<45,78>": "", + "<45,79>": "", + "<45,80>": "", + "<45,81>": "", + "<45,82>": "", + "<45,83>": "", + "<45,84>": "", + "<45,85>": "", + "<45,86>": "", + "<45,87>": "", + "<45,88>": "", + "<45,89>": "", + "<45,90>": "", + "<45,91>": "", + "<45,92>": "", + "<45,93>": "", + "<45,94>": "", + "<45,95>": "", + "<45,96>": "", + "<45,97>": "", + "<45,98>": "", + "<45,99>": "", + "<45,100>": "", + "<45,101>": "", + "<45,102>": "", + "<45,103>": "", + "<45,104>": "", + "<45,105>": "", + "<45,106>": "", + "<45,107>": "", + "<45,108>": "" }, "<46>": { - "<46,1>": "LU_ITEM_TYPE", + "<46,1>": "LU_REACT_ITEM", "<46,2>": "", "<46,3>": "PUSHBMP", "<46,4>": "REACT_SERVS", - "<46,5>": "183", - "<46,6>": "335", + "<46,5>": "205", + "<46,6>": "197", "<46,7>": "18", "<46,8>": "18", - "<46,9>": "|Lookup Reactor Item Type", + "<46,9>": "|LU System", "<46,10>": { - "<46,10,1>": "0x5600000B", + "<46,10,1>": "0x56002300", "<46,10,2>": "0x0" }, "<46,11>": { "<46,11,1>": "0x0", "<46,11,2>": "0x80000000" }, - "<46,12>": "46", - "<46,13>": "-2", + "<46,12>": "42", + "<46,13>": { + "<46,13,1>": "-2", + "<46,13,2>": "-2", + "<46,13,3>": "0" + }, "<46,14>": "0", "<46,15>": { "<46,15,1>": { @@ -4225,7 +7434,7 @@ "<46,18,1,4>": { "<46,18,1,4,1>": "@SELF", "<46,18,1,4,2>": "@EVENT", - "<46,18,1,4,3>": "REACT_ITEM_TYPE", + "<46,18,1,4,3>": "REACT_ITEM", "<46,18,1,4,4>": "@PARAM2", "<46,18,1,4,5>": "@PARAM3", "<46,18,1,4,6>": "@PARAM4", @@ -4233,30 +7442,32 @@ "<46,18,1,4,8>": "@PARAM6" }, "<46,18,1,5>": "", - "<46,18,1,6>": "" - }, - "<46,18,2>": "" - }, - "<46,19>": { - "<46,19,1>": "CLICK", - "<46,19,2>": "" + "<46,18,1,6>": "", + "<46,18,1,7>": "", + "<46,18,1,8>": "", + "<46,18,1,9>": "", + "<46,18,1,10>": "", + "<46,18,1,11>": "", + "<46,18,1,12>": "", + "<46,18,1,13>": "", + "<46,18,1,14>": "", + "<46,18,1,15>": "STPROC" + } }, + "<46,19>": "CLICK", "<46,20>": "", "<46,21>": "", "<46,22>": "", "<46,23>": "", "<46,24>": "", - "<46,25>": "0", - "<46,26>": "0", + "<46,25>": "", + "<46,26>": "", "<46,27>": "", - "<46,28>": "<>", - "<46,29>": "<>", - "<46,30>": "<>", - "<46,31>": "0", - "<46,32>": { - "<46,32,1>": "0x7fffc", - "<46,32,2>": "0xf0016000" - }, + "<46,28>": "", + "<46,29>": "", + "<46,30>": "", + "<46,31>": "", + "<46,32>": "", "<46,33>": "LSL2*IMAGE*BMP*SEARCH", "<46,34>": "", "<46,35>": "", @@ -4264,8 +7475,11 @@ "<46,37>": "", "<46,38>": "", "<46,39>": "", - "<46,40>": "", - "<46,41>": "", + "<46,40>": "-1", + "<46,41>": { + "<46,41,1>": "", + "<46,41,2>": "-1" + }, "<46,42>": "", "<46,43>": "", "<46,44>": "", @@ -4284,29 +7498,95 @@ "<46,54,3>": "", "<46,54,4>": "", "<46,54,5>": "", - "<46,54,6>": "3" - } + "<46,54,6>": "3", + "<46,54,7>": "", + "<46,54,8>": "", + "<46,54,9>": "", + "<46,54,10>": "0" + }, + "<46,55>": "", + "<46,56>": "", + "<46,57>": "", + "<46,58>": "", + "<46,59>": "", + "<46,60>": "", + "<46,61>": "", + "<46,62>": "0", + "<46,63>": "", + "<46,64>": { + "<46,64,1>": "-2", + "<46,64,2>": "-2", + "<46,64,3>": "0" + }, + "<46,65>": "-2", + "<46,66>": "", + "<46,67>": "", + "<46,68>": "", + "<46,69>": "", + "<46,70>": "", + "<46,71>": "", + "<46,72>": "", + "<46,73>": "", + "<46,74>": "", + "<46,75>": "", + "<46,76>": "", + "<46,77>": "", + "<46,78>": "", + "<46,79>": "", + "<46,80>": "", + "<46,81>": "", + "<46,82>": "", + "<46,83>": "", + "<46,84>": "", + "<46,85>": "", + "<46,86>": "", + "<46,87>": "", + "<46,88>": "", + "<46,89>": "", + "<46,90>": "0", + "<46,91>": "0", + "<46,92>": "", + "<46,93>": "", + "<46,94>": "", + "<46,95>": "", + "<46,96>": "", + "<46,97>": "", + "<46,98>": "", + "<46,99>": "", + "<46,100>": "", + "<46,101>": "", + "<46,102>": "", + "<46,103>": "", + "<46,104>": "", + "<46,105>": "", + "<46,106>": "", + "<46,107>": "", + "<46,108>": "" }, "<47>": { - "<47,1>": "NOTE_REQ", + "<47,1>": "REACT_ITEM_TYPE", "<47,2>": "", - "<47,3>": "CHECKBOX", + "<47,3>": "EDITFIELD", "<47,4>": "REACT_SERVS", - "<47,5>": "591", - "<47,6>": "131", - "<47,7>": "114", - "<47,8>": "15", - "<47,9>": "Note Required", + "<47,5>": "136", + "<47,6>": "334", + "<47,7>": "39", + "<47,8>": "18", + "<47,9>": "", "<47,10>": { - "<47,10,1>": "0x56000003", - "<47,10,2>": "0x0" + "<47,10,1>": "0x56000080", + "<47,10,2>": "0x200" }, "<47,11>": { - "<47,11,1>": "0x100", + "<47,11,1>": "0x0", "<47,11,2>": "0x80000000" }, - "<47,12>": "47", - "<47,13>": "-1", + "<47,12>": "43", + "<47,13>": { + "<47,13,1>": "-2", + "<47,13,2>": "-2", + "<47,13,3>": "" + }, "<47,14>": "0", "<47,15>": { "<47,15,1>": { @@ -4334,26 +7614,26 @@ "<47,21>": "", "<47,22>": "", "<47,23>": "REACT_SERVS", - "<47,24>": "NOTE_REQ", - "<47,25>": "0", - "<47,26>": "0", + "<47,24>": "REACT_ITEM_TYPE", + "<47,25>": "", + "<47,26>": "", "<47,27>": "", - "<47,28>": "<>", - "<47,29>": "<>", - "<47,30>": "", + "<47,28>": "", + "<47,29>": "", + "<47,30>": "<>", "<47,31>": "0", - "<47,32>": { - "<47,32,1>": "0x7fffe", - "<47,32,2>": "0xc0016408" - }, + "<47,32>": "", "<47,33>": "", "<47,34>": "", "<47,35>": "", - "<47,36>": "0", + "<47,36>": { + "<47,36,1>": "0", + "<47,36,2>": "0" + }, "<47,37>": "", "<47,38>": "", "<47,39>": "", - "<47,40>": "1", + "<47,40>": "", "<47,41>": "", "<47,42>": "", "<47,43>": "", @@ -4365,33 +7645,93 @@ "<47,49>": "", "<47,50>": "", "<47,51>": "", - "<47,52>": "" + "<47,52>": "", + "<47,53>": "", + "<47,54>": "", + "<47,55>": "", + "<47,56>": "", + "<47,57>": "", + "<47,58>": "", + "<47,59>": "", + "<47,60>": "", + "<47,61>": "", + "<47,62>": "0", + "<47,63>": "", + "<47,64>": "", + "<47,65>": "", + "<47,66>": "", + "<47,67>": "", + "<47,68>": "", + "<47,69>": "", + "<47,70>": "", + "<47,71>": "", + "<47,72>": "", + "<47,73>": "", + "<47,74>": "", + "<47,75>": "", + "<47,76>": "", + "<47,77>": "", + "<47,78>": "", + "<47,79>": "", + "<47,80>": "", + "<47,81>": "", + "<47,82>": "", + "<47,83>": "", + "<47,84>": "", + "<47,85>": "", + "<47,86>": "", + "<47,87>": "", + "<47,88>": "", + "<47,89>": "", + "<47,90>": "", + "<47,91>": "", + "<47,92>": "", + "<47,93>": "", + "<47,94>": "", + "<47,95>": "", + "<47,96>": "", + "<47,97>": "", + "<47,98>": "", + "<47,99>": "", + "<47,100>": "", + "<47,101>": "", + "<47,102>": "", + "<47,103>": "", + "<47,104>": "", + "<47,105>": "", + "<47,106>": "", + "<47,107>": "", + "<47,108>": "" }, "<48>": { - "<48,1>": "ASSOC_METRICS", + "<48,1>": "REACT_ITEM_TYPE_LABEL", "<48,2>": "", - "<48,3>": "LISTBOX", + "<48,3>": "STATIC", "<48,4>": "REACT_SERVS", - "<48,5>": "146", - "<48,6>": "377", - "<48,7>": "187", - "<48,8>": "119", - "<48,9>": "", + "<48,5>": "40", + "<48,6>": "335", + "<48,7>": "93", + "<48,8>": "15", + "<48,9>": "React Item Type:", "<48,10>": { - "<48,10,1>": "0x56A0018B", - "<48,10,2>": "0x200" + "<48,10,1>": "0x56000800", + "<48,10,2>": "0x0" }, "<48,11>": { "<48,11,1>": "0x0", - "<48,11,2>": "0x80000400" + "<48,11,2>": "0x80000000" + }, + "<48,12>": "44", + "<48,13>": { + "<48,13,1>": "-1", + "<48,13,2>": "-1", + "<48,13,3>": "" }, - "<48,12>": "48", - "<48,13>": "-2", "<48,14>": "0", "<48,15>": { "<48,15,1>": { - "<48,15,1,1>": "Segoe UI", - "<48,15,1,2>": "-12", + "<48,15,1,1>": "Tahoma", + "<48,15,1,2>": "-11", "<48,15,1,3>": "400", "<48,15,1,4>": "0", "<48,15,1,5>": "0", @@ -4413,19 +7753,16 @@ "<48,20>": "", "<48,21>": "", "<48,22>": "", - "<48,23>": "REACT_SERVS", - "<48,24>": "ASSOC_METRICS", - "<48,25>": "0", - "<48,26>": "0", + "<48,23>": "", + "<48,24>": "", + "<48,25>": "", + "<48,26>": "", "<48,27>": "", - "<48,28>": "<>", + "<48,28>": "", "<48,29>": "", "<48,30>": "", - "<48,31>": "0", - "<48,32>": { - "<48,32,1>": "0x7fff6", - "<48,32,2>": "0xc001ea08" - }, + "<48,31>": "", + "<48,32>": "", "<48,33>": "", "<48,34>": "", "<48,35>": "", @@ -4433,7 +7770,7 @@ "<48,37>": "", "<48,38>": "", "<48,39>": "", - "<48,40>": "0", + "<48,40>": "", "<48,41>": "", "<48,42>": "", "<48,43>": "", @@ -4445,33 +7782,106 @@ "<48,49>": "", "<48,50>": "", "<48,51>": "", - "<48,52>": "" + "<48,52>": "", + "<48,53>": "", + "<48,54>": "", + "<48,55>": "", + "<48,56>": "", + "<48,57>": "", + "<48,58>": "", + "<48,59>": "", + "<48,60>": "", + "<48,61>": "", + "<48,62>": "0", + "<48,63>": { + "<48,63,1>": "", + "<48,63,2>": "", + "<48,63,3>": "", + "<48,63,4>": "", + "<48,63,5>": "", + "<48,63,6>": "", + "<48,63,7>": "", + "<48,63,8>": "" + }, + "<48,64>": { + "<48,64,1>": "", + "<48,64,2>": "", + "<48,64,3>": "" + }, + "<48,65>": "-2", + "<48,66>": "", + "<48,67>": "", + "<48,68>": "", + "<48,69>": "", + "<48,70>": "", + "<48,71>": "", + "<48,72>": "", + "<48,73>": "", + "<48,74>": "", + "<48,75>": "", + "<48,76>": "", + "<48,77>": "", + "<48,78>": "", + "<48,79>": "", + "<48,80>": "", + "<48,81>": "", + "<48,82>": "", + "<48,83>": "", + "<48,84>": "", + "<48,85>": "", + "<48,86>": "", + "<48,87>": "", + "<48,88>": "", + "<48,89>": "", + "<48,90>": "0", + "<48,91>": "0", + "<48,92>": "", + "<48,93>": "", + "<48,94>": "", + "<48,95>": "", + "<48,96>": "", + "<48,97>": "", + "<48,98>": "", + "<48,99>": "", + "<48,100>": "", + "<48,101>": "", + "<48,102>": "", + "<48,103>": "", + "<48,104>": "", + "<48,105>": "", + "<48,106>": "", + "<48,107>": "", + "<48,108>": "" }, "<49>": { - "<49,1>": "TEXT_15", + "<49,1>": "REACT_ITEM_DESC", "<49,2>": "", - "<49,3>": "STATIC", + "<49,3>": "EDITFIELD", "<49,4>": "REACT_SERVS", - "<49,5>": "37", - "<49,6>": "384", - "<49,7>": "103", - "<49,8>": "19", - "<49,9>": "Associated Metrics:", + "<49,5>": "234", + "<49,6>": "334", + "<49,7>": "102", + "<49,8>": "18", + "<49,9>": "", "<49,10>": { - "<49,10,1>": "0x56000000", - "<49,10,2>": "0x0" + "<49,10,1>": "0x56000080", + "<49,10,2>": "0x200" }, "<49,11>": { "<49,11,1>": "0x0", "<49,11,2>": "0x80000000" }, - "<49,12>": "49", - "<49,13>": "-1", + "<49,12>": "45", + "<49,13>": { + "<49,13,1>": "12639424", + "<49,13,2>": "12639424", + "<49,13,3>": "" + }, "<49,14>": "0", "<49,15>": { "<49,15,1>": { - "<49,15,1,1>": "Segoe UI", - "<49,15,1,2>": "-12", + "<49,15,1,1>": "Tahoma", + "<49,15,1,2>": "-11", "<49,15,1,3>": "400", "<49,15,1,4>": "0", "<49,15,1,5>": "0", @@ -4493,23 +7903,23 @@ "<49,20>": "", "<49,21>": "", "<49,22>": "", - "<49,23>": "", - "<49,24>": "", - "<49,25>": "0", - "<49,26>": "0", + "<49,23>": "REACT_SERVS", + "<49,24>": "REACT_ITEM_DESC", + "<49,25>": "", + "<49,26>": "", "<49,27>": "", - "<49,28>": "<>", - "<49,29>": "<>", - "<49,30>": "<>", + "<49,28>": "", + "<49,29>": "", + "<49,30>": "<>", "<49,31>": "0", - "<49,32>": { - "<49,32,1>": "0x7fffe", - "<49,32,2>": "0xf0016d08" - }, + "<49,32>": "", "<49,33>": "", "<49,34>": "", "<49,35>": "", - "<49,36>": "", + "<49,36>": { + "<49,36,1>": "0", + "<49,36,2>": "0" + }, "<49,37>": "", "<49,38>": "", "<49,39>": "", @@ -4525,28 +7935,88 @@ "<49,49>": "", "<49,50>": "", "<49,51>": "", - "<49,52>": "" + "<49,52>": "", + "<49,53>": "", + "<49,54>": "", + "<49,55>": "", + "<49,56>": "", + "<49,57>": "", + "<49,58>": "", + "<49,59>": "", + "<49,60>": "", + "<49,61>": "", + "<49,62>": "0", + "<49,63>": "", + "<49,64>": "", + "<49,65>": "", + "<49,66>": "", + "<49,67>": "", + "<49,68>": "", + "<49,69>": "", + "<49,70>": "", + "<49,71>": "", + "<49,72>": "", + "<49,73>": "", + "<49,74>": "", + "<49,75>": "", + "<49,76>": "", + "<49,77>": "", + "<49,78>": "", + "<49,79>": "", + "<49,80>": "", + "<49,81>": "", + "<49,82>": "", + "<49,83>": "", + "<49,84>": "", + "<49,85>": "", + "<49,86>": "", + "<49,87>": "", + "<49,88>": "", + "<49,89>": "", + "<49,90>": "", + "<49,91>": "", + "<49,92>": "", + "<49,93>": "", + "<49,94>": "", + "<49,95>": "", + "<49,96>": "", + "<49,97>": "", + "<49,98>": "", + "<49,99>": "", + "<49,100>": "", + "<49,101>": "", + "<49,102>": "", + "<49,103>": "", + "<49,104>": "", + "<49,105>": "", + "<49,106>": "", + "<49,107>": "", + "<49,108>": "" }, "<50>": { - "<50,1>": "CHB_IS_INTRUSIVE", + "<50,1>": "LU_ITEM_TYPE", "<50,2>": "", - "<50,3>": "CHECKBOX", + "<50,3>": "PUSHBMP", "<50,4>": "REACT_SERVS", - "<50,5>": "342", - "<50,6>": "378", - "<50,7>": "165", - "<50,8>": "15", - "<50,9>": "Intrusive", + "<50,5>": "183", + "<50,6>": "335", + "<50,7>": "18", + "<50,8>": "18", + "<50,9>": "|Lookup Reactor Item Type", "<50,10>": { - "<50,10,1>": "0x56000003", + "<50,10,1>": "0x56000300", "<50,10,2>": "0x0" }, "<50,11>": { - "<50,11,1>": "0x100", + "<50,11,1>": "0x0", "<50,11,2>": "0x80000000" }, - "<50,12>": "50", - "<50,13>": "-1", + "<50,12>": "46", + "<50,13>": { + "<50,13,1>": "-2", + "<50,13,2>": "-2", + "<50,13,3>": "0" + }, "<50,14>": "0", "<50,15>": { "<50,15,1>": { @@ -4568,33 +8038,60 @@ }, "<50,16>": "", "<50,17>": "", - "<50,18>": "", - "<50,19>": "", + "<50,18>": { + "<50,18,1>": { + "<50,18,1,1>": "R", + "<50,18,1,2>": "EXECUTE", + "<50,18,1,3>": "LSL2*STPROCEXE**COMM_REACT_SERVS", + "<50,18,1,4>": { + "<50,18,1,4,1>": "@SELF", + "<50,18,1,4,2>": "@EVENT", + "<50,18,1,4,3>": "REACT_ITEM_TYPE", + "<50,18,1,4,4>": "@PARAM2", + "<50,18,1,4,5>": "@PARAM3", + "<50,18,1,4,6>": "@PARAM4", + "<50,18,1,4,7>": "@PARAM5", + "<50,18,1,4,8>": "@PARAM6" + }, + "<50,18,1,5>": "", + "<50,18,1,6>": "", + "<50,18,1,7>": "", + "<50,18,1,8>": "", + "<50,18,1,9>": "", + "<50,18,1,10>": "", + "<50,18,1,11>": "", + "<50,18,1,12>": "", + "<50,18,1,13>": "", + "<50,18,1,14>": "", + "<50,18,1,15>": "STPROC" + } + }, + "<50,19>": "CLICK", "<50,20>": "", "<50,21>": "", "<50,22>": "", - "<50,23>": "REACT_SERVS", - "<50,24>": "IS_INTRUSIVE", - "<50,25>": "0", - "<50,26>": "0", + "<50,23>": "", + "<50,24>": "", + "<50,25>": "", + "<50,26>": "", "<50,27>": "", - "<50,28>": "<>", - "<50,29>": "<>", + "<50,28>": "", + "<50,29>": "", "<50,30>": "", - "<50,31>": "0", - "<50,32>": { - "<50,32,1>": "0x7ffee", - "<50,32,2>": "0xc0016408" - }, - "<50,33>": "", + "<50,31>": "", + "<50,32>": "", + "<50,33>": "LSL2*IMAGE*BMP*SEARCH", "<50,34>": "", "<50,35>": "", - "<50,36>": "0", + "<50,36>": "", "<50,37>": "", "<50,38>": "", "<50,39>": "", - "<50,40>": "0", - "<50,41>": "", + "<50,40>": "-1", + "<50,41>": { + "<50,41,1>": "", + "<50,41,2>": "-1" + }, "<50,42>": "", "<50,43>": "", "<50,44>": "", @@ -4605,29 +8102,104 @@ "<50,49>": "", "<50,50>": "", "<50,51>": "", - "<50,52>": "" + "<50,52>": "", + "<50,53>": "", + "<50,54>": { + "<50,54,1>": "-5", + "<50,54,2>": "2", + "<50,54,3>": "", + "<50,54,4>": "", + "<50,54,5>": "", + "<50,54,6>": "3", + "<50,54,7>": "", + "<50,54,8>": "", + "<50,54,9>": "", + "<50,54,10>": "0" + }, + "<50,55>": "", + "<50,56>": "", + "<50,57>": "", + "<50,58>": "", + "<50,59>": "", + "<50,60>": "", + "<50,61>": "", + "<50,62>": "0", + "<50,63>": "", + "<50,64>": { + "<50,64,1>": "-2", + "<50,64,2>": "-2", + "<50,64,3>": "0" + }, + "<50,65>": "-2", + "<50,66>": "", + "<50,67>": "", + "<50,68>": "", + "<50,69>": "", + "<50,70>": "", + "<50,71>": "", + "<50,72>": "", + "<50,73>": "", + "<50,74>": "", + "<50,75>": "", + "<50,76>": "", + "<50,77>": "", + "<50,78>": "", + "<50,79>": "", + "<50,80>": "", + "<50,81>": "", + "<50,82>": "", + "<50,83>": "", + "<50,84>": "", + "<50,85>": "", + "<50,86>": "", + "<50,87>": "", + "<50,88>": "", + "<50,89>": "", + "<50,90>": "0", + "<50,91>": "0", + "<50,92>": "", + "<50,93>": "", + "<50,94>": "", + "<50,95>": "", + "<50,96>": "", + "<50,97>": "", + "<50,98>": "", + "<50,99>": "", + "<50,100>": "", + "<50,101>": "", + "<50,102>": "", + "<50,103>": "", + "<50,104>": "", + "<50,105>": "", + "<50,106>": "", + "<50,107>": "", + "<50,108>": "" }, "<51>": { - "<51,1>": "SERIAL_GROUP", + "<51,1>": "NOTE_REQ", "<51,2>": "", - "<51,3>": "GROUPBOX", + "<51,3>": "CHECKBOX", "<51,4>": "REACT_SERVS", - "<51,5>": "28", - "<51,6>": "314", - "<51,7>": "327", - "<51,8>": "48", - "<51,9>": "Enable Reactor Item Logging", + "<51,5>": "591", + "<51,6>": "131", + "<51,7>": "114", + "<51,8>": "15", + "<51,9>": "Note Required", "<51,10>": { - "<51,10,1>": "0x56000000", + "<51,10,1>": "0x56000103", "<51,10,2>": "0x0" }, "<51,11>": { "<51,11,1>": "0x0", "<51,11,2>": "0x80000000" }, - "<51,12>": "51", - "<51,13>": "-1", - "<51,14>": "16711680", + "<51,12>": "47", + "<51,13>": { + "<51,13,1>": "-1", + "<51,13,2>": "-1", + "<51,13,3>": "" + }, + "<51,14>": "0", "<51,15>": { "<51,15,1>": { "<51,15,1,1>": "Tahoma", @@ -4653,23 +8225,20 @@ "<51,20>": "", "<51,21>": "", "<51,22>": "", - "<51,23>": "", - "<51,24>": "", - "<51,25>": "0", - "<51,26>": "0", + "<51,23>": "REACT_SERVS", + "<51,24>": "NOTE_REQ", + "<51,25>": "", + "<51,26>": "", "<51,27>": "", - "<51,28>": "<>", - "<51,29>": "<>", - "<51,30>": "<>", - "<51,31>": "0", - "<51,32>": { - "<51,32,1>": "0x7fffe", - "<51,32,2>": "0xf0012c08" - }, + "<51,28>": "", + "<51,29>": "", + "<51,30>": "", + "<51,31>": "", + "<51,32>": "", "<51,33>": "", "<51,34>": "", "<51,35>": "", - "<51,36>": "", + "<51,36>": "0", "<51,37>": "", "<51,38>": "", "<51,39>": "", @@ -4685,33 +8254,106 @@ "<51,49>": "", "<51,50>": "", "<51,51>": "", - "<51,52>": "" + "<51,52>": "", + "<51,53>": "", + "<51,54>": "", + "<51,55>": "", + "<51,56>": "", + "<51,57>": "", + "<51,58>": "", + "<51,59>": "", + "<51,60>": "", + "<51,61>": "", + "<51,62>": "0", + "<51,63>": { + "<51,63,1>": "", + "<51,63,2>": "", + "<51,63,3>": "", + "<51,63,4>": "", + "<51,63,5>": "", + "<51,63,6>": "", + "<51,63,7>": "", + "<51,63,8>": "" + }, + "<51,64>": { + "<51,64,1>": "", + "<51,64,2>": "", + "<51,64,3>": "" + }, + "<51,65>": "-2", + "<51,66>": "", + "<51,67>": "", + "<51,68>": "", + "<51,69>": "", + "<51,70>": "", + "<51,71>": "", + "<51,72>": "", + "<51,73>": "", + "<51,74>": "", + "<51,75>": "", + "<51,76>": "", + "<51,77>": "", + "<51,78>": "", + "<51,79>": "", + "<51,80>": "", + "<51,81>": "", + "<51,82>": "", + "<51,83>": "", + "<51,84>": "", + "<51,85>": "", + "<51,86>": "", + "<51,87>": "", + "<51,88>": "", + "<51,89>": "", + "<51,90>": "0", + "<51,91>": "0", + "<51,92>": "", + "<51,93>": "", + "<51,94>": "", + "<51,95>": "", + "<51,96>": "", + "<51,97>": "", + "<51,98>": "", + "<51,99>": "", + "<51,100>": "", + "<51,101>": "", + "<51,102>": "", + "<51,103>": "", + "<51,104>": "", + "<51,105>": "", + "<51,106>": "", + "<51,107>": "", + "<51,108>": "" }, "<52>": { - "<52,1>": "PROTO_GROUP", + "<52,1>": "ASSOC_METRICS", "<52,2>": "", - "<52,3>": "GROUPBOX", + "<52,3>": "LISTBOX", "<52,4>": "REACT_SERVS", - "<52,5>": "16", - "<52,6>": "147", - "<52,7>": "741", - "<52,8>": "99", - "<52,9>": "Prototype / Testing", + "<52,5>": "146", + "<52,6>": "377", + "<52,7>": "187", + "<52,8>": "119", + "<52,9>": "", "<52,10>": { - "<52,10,1>": "0x56000000", - "<52,10,2>": "0x0" + "<52,10,1>": "0x5620000A", + "<52,10,2>": "0x200" }, "<52,11>": { "<52,11,1>": "0x0", - "<52,11,2>": "0x80000000" + "<52,11,2>": "0x80000400" }, - "<52,12>": "52", - "<52,13>": "-1", - "<52,14>": "16711680", + "<52,12>": "48", + "<52,13>": { + "<52,13,1>": "-2", + "<52,13,2>": "-2", + "<52,13,3>": "" + }, + "<52,14>": "0", "<52,15>": { "<52,15,1>": { - "<52,15,1,1>": "Tahoma", - "<52,15,1,2>": "-11", + "<52,15,1,1>": "Segoe UI", + "<52,15,1,2>": "-12", "<52,15,1,3>": "400", "<52,15,1,4>": "0", "<52,15,1,5>": "0", @@ -4733,19 +8375,16 @@ "<52,20>": "", "<52,21>": "", "<52,22>": "", - "<52,23>": "", - "<52,24>": "", - "<52,25>": "0", - "<52,26>": "0", + "<52,23>": "REACT_SERVS", + "<52,24>": "ASSOC_METRICS", + "<52,25>": "", + "<52,26>": "", "<52,27>": "", - "<52,28>": "<>", - "<52,29>": "<>", - "<52,30>": "<>", - "<52,31>": "0", - "<52,32>": { - "<52,32,1>": "0x7fffe", - "<52,32,2>": "0xf0012c08" - }, + "<52,28>": "", + "<52,29>": "", + "<52,30>": "", + "<52,31>": "", + "<52,32>": "", "<52,33>": "", "<52,34>": "", "<52,35>": "", @@ -4753,7 +8392,7 @@ "<52,37>": "", "<52,38>": "", "<52,39>": "", - "<52,40>": "", + "<52,40>": "0", "<52,41>": "", "<52,42>": "", "<52,43>": "", @@ -4765,18 +8404,191 @@ "<52,49>": "", "<52,50>": "", "<52,51>": "", - "<52,52>": "" + "<52,52>": "", + "<52,53>": "", + "<52,54>": "", + "<52,55>": { + "<52,55,1>": { + "<52,55,1,1>": "-2", + "<52,55,1,2>": "-2", + "<52,55,1,3>": "-2", + "<52,55,1,4>": "-2", + "<52,55,1,5>": "0", + "<52,55,1,6>": "0", + "<52,55,1,7>": "0", + "<52,55,1,8>": "0" + }, + "<52,55,2>": { + "<52,55,2,1>": "-2", + "<52,55,2,2>": "-2", + "<52,55,2,3>": "-2", + "<52,55,2,4>": "-2", + "<52,55,2,5>": "0", + "<52,55,2,6>": "0", + "<52,55,2,7>": "0", + "<52,55,2,8>": "0" + }, + "<52,55,3>": { + "<52,55,3,1>": "-2", + "<52,55,3,2>": "-2", + "<52,55,3,3>": "-2", + "<52,55,3,4>": "-2", + "<52,55,3,5>": "0", + "<52,55,3,6>": "0", + "<52,55,3,7>": "0", + "<52,55,3,8>": "0" + }, + "<52,55,4>": { + "<52,55,4,1>": "-2", + "<52,55,4,2>": "-2", + "<52,55,4,3>": "-2", + "<52,55,4,4>": "-2", + "<52,55,4,5>": "0", + "<52,55,4,6>": "0", + "<52,55,4,7>": "0", + "<52,55,4,8>": "0" + }, + "<52,55,5>": { + "<52,55,5,1>": "-2", + "<52,55,5,2>": "-2", + "<52,55,5,3>": "-2", + "<52,55,5,4>": "-2", + "<52,55,5,5>": "0", + "<52,55,5,6>": "0", + "<52,55,5,7>": "0", + "<52,55,5,8>": "0" + }, + "<52,55,6>": { + "<52,55,6,1>": "-2", + "<52,55,6,2>": "-2", + "<52,55,6,3>": "-2", + "<52,55,6,4>": "-2", + "<52,55,6,5>": "0", + "<52,55,6,6>": "0", + "<52,55,6,7>": "0", + "<52,55,6,8>": "0" + } + }, + "<52,56>": "", + "<52,57>": "", + "<52,58>": { + "<52,58,1>": "", + "<52,58,2>": "", + "<52,58,3>": "" + }, + "<52,59>": "", + "<52,60>": "", + "<52,61>": "", + "<52,62>": "0", + "<52,63>": "", + "<52,64>": "", + "<52,65>": "", + "<52,66>": "", + "<52,67>": "", + "<52,68>": "", + "<52,69>": "", + "<52,70>": "", + "<52,71>": "", + "<52,72>": "", + "<52,73>": "", + "<52,74>": "", + "<52,75>": "", + "<52,76>": "", + "<52,77>": "", + "<52,78>": "", + "<52,79>": "", + "<52,80>": "", + "<52,81>": "", + "<52,82>": "", + "<52,83>": "", + "<52,84>": "", + "<52,85>": "", + "<52,86>": "", + "<52,87>": "", + "<52,88>": "", + "<52,89>": "", + "<52,90>": "", + "<52,91>": "", + "<52,92>": "", + "<52,93>": "", + "<52,94>": "", + "<52,95>": "0", + "<52,96>": { + "<52,96,1>": { + "<52,96,1,1>": "-2", + "<52,96,1,2>": "-2", + "<52,96,1,3>": "-2", + "<52,96,1,4>": "-2", + "<52,96,1,5>": "0", + "<52,96,1,6>": "0", + "<52,96,1,7>": "0", + "<52,96,1,8>": "0" + }, + "<52,96,2>": { + "<52,96,2,1>": "-2", + "<52,96,2,2>": "-2", + "<52,96,2,3>": "-2", + "<52,96,2,4>": "-2", + "<52,96,2,5>": "0", + "<52,96,2,6>": "0", + "<52,96,2,7>": "0", + "<52,96,2,8>": "0" + }, + "<52,96,3>": { + "<52,96,3,1>": "-2", + "<52,96,3,2>": "-2", + "<52,96,3,3>": "-2", + "<52,96,3,4>": "-2", + "<52,96,3,5>": "0", + "<52,96,3,6>": "0", + "<52,96,3,7>": "0", + "<52,96,3,8>": "0" + } + }, + "<52,97>": "", + "<52,98>": "", + "<52,99>": "", + "<52,100>": "", + "<52,101>": "", + "<52,102>": "", + "<52,103>": "", + "<52,104>": { + "<52,104,1>": { + "<52,104,1,1>": "-2", + "<52,104,1,2>": "-2", + "<52,104,1,3>": "-2", + "<52,104,1,4>": "-2", + "<52,104,1,5>": "0", + "<52,104,1,6>": "0", + "<52,104,1,7>": "0", + "<52,104,1,8>": "0" + }, + "<52,104,2>": { + "<52,104,2,1>": "-2", + "<52,104,2,2>": "-2", + "<52,104,2,3>": "-2", + "<52,104,2,4>": "-2", + "<52,104,2,5>": "0", + "<52,104,2,6>": "0", + "<52,104,2,7>": "0", + "<52,104,2,8>": "0" + } + }, + "<52,105>": "", + "<52,106>": "", + "<52,107>": "", + "<52,108>": "" }, "<53>": { - "<53,1>": "INACTIVE_GROUP", + "<53,1>": "TEXT_15", "<53,2>": "", - "<53,3>": "GROUPBOX", + "<53,3>": "STATIC", "<53,4>": "REACT_SERVS", - "<53,5>": "564", - "<53,6>": "267", - "<53,7>": "192", - "<53,8>": "84", - "<53,9>": "Status Information", + "<53,5>": "37", + "<53,6>": "384", + "<53,7>": "103", + "<53,8>": "19", + "<53,9>": "Associated Metrics:", "<53,10>": { "<53,10,1>": "0x56000000", "<53,10,2>": "0x0" @@ -4785,13 +8597,17 @@ "<53,11,1>": "0x0", "<53,11,2>": "0x80000000" }, - "<53,12>": "53", - "<53,13>": "-1", - "<53,14>": "16711680", + "<53,12>": "49", + "<53,13>": { + "<53,13,1>": "-1", + "<53,13,2>": "-1", + "<53,13,3>": "" + }, + "<53,14>": "0", "<53,15>": { "<53,15,1>": { - "<53,15,1,1>": "Tahoma", - "<53,15,1,2>": "-11", + "<53,15,1,1>": "Segoe UI", + "<53,15,1,2>": "-12", "<53,15,1,3>": "400", "<53,15,1,4>": "0", "<53,15,1,5>": "0", @@ -4815,17 +8631,14 @@ "<53,22>": "", "<53,23>": "", "<53,24>": "", - "<53,25>": "0", - "<53,26>": "0", + "<53,25>": "", + "<53,26>": "", "<53,27>": "", - "<53,28>": "<>", - "<53,29>": "<>", - "<53,30>": "<>", - "<53,31>": "0", - "<53,32>": { - "<53,32,1>": "0x7fffe", - "<53,32,2>": "0xf0012c08" - }, + "<53,28>": "", + "<53,29>": "", + "<53,30>": "", + "<53,31>": "", + "<53,32>": "", "<53,33>": "", "<53,34>": "", "<53,35>": "", @@ -4845,41 +8658,114 @@ "<53,49>": "", "<53,50>": "", "<53,51>": "", - "<53,52>": "" + "<53,52>": "", + "<53,53>": "", + "<53,54>": "", + "<53,55>": "", + "<53,56>": "", + "<53,57>": "", + "<53,58>": "", + "<53,59>": "", + "<53,60>": "", + "<53,61>": "", + "<53,62>": "0", + "<53,63>": { + "<53,63,1>": "", + "<53,63,2>": "", + "<53,63,3>": "", + "<53,63,4>": "", + "<53,63,5>": "", + "<53,63,6>": "", + "<53,63,7>": "", + "<53,63,8>": "" + }, + "<53,64>": { + "<53,64,1>": "", + "<53,64,2>": "", + "<53,64,3>": "" + }, + "<53,65>": "-2", + "<53,66>": "", + "<53,67>": "", + "<53,68>": "", + "<53,69>": "", + "<53,70>": "", + "<53,71>": "", + "<53,72>": "", + "<53,73>": "", + "<53,74>": "", + "<53,75>": "", + "<53,76>": "", + "<53,77>": "", + "<53,78>": "", + "<53,79>": "", + "<53,80>": "", + "<53,81>": "", + "<53,82>": "", + "<53,83>": "", + "<53,84>": "", + "<53,85>": "", + "<53,86>": "", + "<53,87>": "", + "<53,88>": "", + "<53,89>": "", + "<53,90>": "0", + "<53,91>": "0", + "<53,92>": "", + "<53,93>": "", + "<53,94>": "", + "<53,95>": "", + "<53,96>": "", + "<53,97>": "", + "<53,98>": "", + "<53,99>": "", + "<53,100>": "", + "<53,101>": "", + "<53,102>": "", + "<53,103>": "", + "<53,104>": "", + "<53,105>": "", + "<53,106>": "", + "<53,107>": "", + "<53,108>": "" }, "<54>": { - "<54,1>": "GROUP_7", + "<54,1>": "SERIAL_GROUP", "<54,2>": "", "<54,3>": "GROUPBOX", "<54,4>": "REACT_SERVS", - "<54,5>": "2", - "<54,6>": "-7", - "<54,7>": "-1", - "<54,8>": "39", - "<54,9>": "", + "<54,5>": "28", + "<54,6>": "314", + "<54,7>": "327", + "<54,8>": "48", + "<54,9>": "Enable Reactor Item Logging", "<54,10>": { "<54,10,1>": "0x56000000", "<54,10,2>": "0x0" }, "<54,11>": { - "<54,11,1>": "0x4000", + "<54,11,1>": "0x0", "<54,11,2>": "0x80000000" }, - "<54,12>": "54", - "<54,13>": "-1", - "<54,14>": "0", + "<54,12>": "50", + "<54,13>": { + "<54,13,1>": "-1", + "<54,13,2>": "-1", + "<54,13,3>": "" + }, + "<54,14>": "16711680", "<54,15>": { "<54,15,1>": { - "<54,15,1,1>": "MS Sans Serif", + "<54,15,1,1>": "Tahoma", "<54,15,1,2>": "-11", - "<54,15,1,3>": "700", + "<54,15,1,3>": "400", "<54,15,1,4>": "0", "<54,15,1,5>": "0", "<54,15,1,6>": "0", "<54,15,1,7>": "0", "<54,15,1,8>": "34", "<54,15,1,9>": "0", - "<54,15,1,10>": "1", + "<54,15,1,10>": "3", "<54,15,1,11>": "2", "<54,15,1,12>": "1", "<54,15,1,13>": "0", @@ -4895,17 +8781,14 @@ "<54,22>": "", "<54,23>": "", "<54,24>": "", - "<54,25>": "0", - "<54,26>": "0", + "<54,25>": "", + "<54,26>": "", "<54,27>": "", - "<54,28>": "<>", - "<54,29>": "<>", - "<54,30>": "<>", - "<54,31>": "0", - "<54,32>": { - "<54,32,1>": "0x7fffe", - "<54,32,2>": "0xf0016408" - }, + "<54,28>": "", + "<54,29>": "", + "<54,30>": "", + "<54,31>": "", + "<54,32>": "", "<54,33>": "", "<54,34>": "", "<54,35>": "", @@ -4925,9 +8808,527 @@ "<54,49>": "", "<54,50>": "", "<54,51>": "", - "<54,52>": "" + "<54,52>": "", + "<54,53>": "", + "<54,54>": "", + "<54,55>": "", + "<54,56>": "", + "<54,57>": "", + "<54,58>": "", + "<54,59>": "", + "<54,60>": "", + "<54,61>": "", + "<54,62>": "0", + "<54,63>": { + "<54,63,1>": "", + "<54,63,2>": "-2", + "<54,63,3>": "", + "<54,63,4>": "", + "<54,63,5>": "", + "<54,63,6>": "", + "<54,63,7>": "", + "<54,63,8>": "0" + }, + "<54,64>": { + "<54,64,1>": "", + "<54,64,2>": "", + "<54,64,3>": "" + }, + "<54,65>": "-2", + "<54,66>": "", + "<54,67>": "", + "<54,68>": "", + "<54,69>": "", + "<54,70>": "", + "<54,71>": "", + "<54,72>": "", + "<54,73>": "", + "<54,74>": "", + "<54,75>": "", + "<54,76>": "", + "<54,77>": "", + "<54,78>": "", + "<54,79>": "", + "<54,80>": "", + "<54,81>": "", + "<54,82>": "", + "<54,83>": "", + "<54,84>": "", + "<54,85>": "", + "<54,86>": "", + "<54,87>": "", + "<54,88>": "", + "<54,89>": "", + "<54,90>": "", + "<54,91>": "", + "<54,92>": "", + "<54,93>": "", + "<54,94>": "", + "<54,95>": "", + "<54,96>": "", + "<54,97>": "", + "<54,98>": "", + "<54,99>": "", + "<54,100>": "", + "<54,101>": "", + "<54,102>": "", + "<54,103>": "", + "<54,104>": "", + "<54,105>": "", + "<54,106>": "", + "<54,107>": "", + "<54,108>": "" }, - "<55>": "" + "<55>": { + "<55,1>": "PROTO_GROUP", + "<55,2>": "", + "<55,3>": "GROUPBOX", + "<55,4>": "REACT_SERVS", + "<55,5>": "16", + "<55,6>": "147", + "<55,7>": "741", + "<55,8>": "99", + "<55,9>": "Prototype / Testing", + "<55,10>": { + "<55,10,1>": "0x56000000", + "<55,10,2>": "0x0" + }, + "<55,11>": { + "<55,11,1>": "0x0", + "<55,11,2>": "0x80000000" + }, + "<55,12>": "51", + "<55,13>": { + "<55,13,1>": "-1", + "<55,13,2>": "-1", + "<55,13,3>": "" + }, + "<55,14>": "16711680", + "<55,15>": { + "<55,15,1>": { + "<55,15,1,1>": "Tahoma", + "<55,15,1,2>": "-11", + "<55,15,1,3>": "400", + "<55,15,1,4>": "0", + "<55,15,1,5>": "0", + "<55,15,1,6>": "0", + "<55,15,1,7>": "0", + "<55,15,1,8>": "34", + "<55,15,1,9>": "0", + "<55,15,1,10>": "3", + "<55,15,1,11>": "2", + "<55,15,1,12>": "1", + "<55,15,1,13>": "0", + "<55,15,1,14>": "0" + } + }, + "<55,16>": "", + "<55,17>": "", + "<55,18>": "", + "<55,19>": "", + "<55,20>": "", + "<55,21>": "", + "<55,22>": "", + "<55,23>": "", + "<55,24>": "", + "<55,25>": "", + "<55,26>": "", + "<55,27>": "", + "<55,28>": "", + "<55,29>": "", + "<55,30>": "", + "<55,31>": "", + "<55,32>": "", + "<55,33>": "", + "<55,34>": "", + "<55,35>": "", + "<55,36>": "", + "<55,37>": "", + "<55,38>": "", + "<55,39>": "", + "<55,40>": "", + "<55,41>": "", + "<55,42>": "", + "<55,43>": "", + "<55,44>": "", + "<55,45>": "", + "<55,46>": "", + "<55,47>": "", + "<55,48>": "", + "<55,49>": "", + "<55,50>": "", + "<55,51>": "", + "<55,52>": "", + "<55,53>": "", + "<55,54>": "", + "<55,55>": "", + "<55,56>": "", + "<55,57>": "", + "<55,58>": "", + "<55,59>": "", + "<55,60>": "", + "<55,61>": "", + "<55,62>": "0", + "<55,63>": { + "<55,63,1>": "", + "<55,63,2>": "-2", + "<55,63,3>": "", + "<55,63,4>": "", + "<55,63,5>": "", + "<55,63,6>": "", + "<55,63,7>": "", + "<55,63,8>": "0" + }, + "<55,64>": { + "<55,64,1>": "", + "<55,64,2>": "", + "<55,64,3>": "" + }, + "<55,65>": "-2", + "<55,66>": "", + "<55,67>": "", + "<55,68>": "", + "<55,69>": "", + "<55,70>": "", + "<55,71>": "", + "<55,72>": "", + "<55,73>": "", + "<55,74>": "", + "<55,75>": "", + "<55,76>": "", + "<55,77>": "", + "<55,78>": "", + "<55,79>": "", + "<55,80>": "", + "<55,81>": "", + "<55,82>": "", + "<55,83>": "", + "<55,84>": "", + "<55,85>": "", + "<55,86>": "", + "<55,87>": "", + "<55,88>": "", + "<55,89>": "", + "<55,90>": "", + "<55,91>": "", + "<55,92>": "", + "<55,93>": "", + "<55,94>": "", + "<55,95>": "", + "<55,96>": "", + "<55,97>": "", + "<55,98>": "", + "<55,99>": "", + "<55,100>": "", + "<55,101>": "", + "<55,102>": "", + "<55,103>": "", + "<55,104>": "", + "<55,105>": "", + "<55,106>": "", + "<55,107>": "", + "<55,108>": "" + }, + "<56>": { + "<56,1>": "INACTIVE_GROUP", + "<56,2>": "", + "<56,3>": "GROUPBOX", + "<56,4>": "REACT_SERVS", + "<56,5>": "564", + "<56,6>": "267", + "<56,7>": "192", + "<56,8>": "84", + "<56,9>": "Status Information", + "<56,10>": { + "<56,10,1>": "0x56000000", + "<56,10,2>": "0x0" + }, + "<56,11>": { + "<56,11,1>": "0x0", + "<56,11,2>": "0x80000000" + }, + "<56,12>": "52", + "<56,13>": { + "<56,13,1>": "-1", + "<56,13,2>": "-1", + "<56,13,3>": "" + }, + "<56,14>": "16711680", + "<56,15>": { + "<56,15,1>": { + "<56,15,1,1>": "Tahoma", + "<56,15,1,2>": "-11", + "<56,15,1,3>": "400", + "<56,15,1,4>": "0", + "<56,15,1,5>": "0", + "<56,15,1,6>": "0", + "<56,15,1,7>": "0", + "<56,15,1,8>": "34", + "<56,15,1,9>": "0", + "<56,15,1,10>": "3", + "<56,15,1,11>": "2", + "<56,15,1,12>": "1", + "<56,15,1,13>": "0", + "<56,15,1,14>": "0" + } + }, + "<56,16>": "", + "<56,17>": "", + "<56,18>": "", + "<56,19>": "", + "<56,20>": "", + "<56,21>": "", + "<56,22>": "", + "<56,23>": "", + "<56,24>": "", + "<56,25>": "", + "<56,26>": "", + "<56,27>": "", + "<56,28>": "", + "<56,29>": "", + "<56,30>": "", + "<56,31>": "", + "<56,32>": "", + "<56,33>": "", + "<56,34>": "", + "<56,35>": "", + "<56,36>": "", + "<56,37>": "", + "<56,38>": "", + "<56,39>": "", + "<56,40>": "", + "<56,41>": "", + "<56,42>": "", + "<56,43>": "", + "<56,44>": "", + "<56,45>": "", + "<56,46>": "", + "<56,47>": "", + "<56,48>": "", + "<56,49>": "", + "<56,50>": "", + "<56,51>": "", + "<56,52>": "", + "<56,53>": "", + "<56,54>": "", + "<56,55>": "", + "<56,56>": "", + "<56,57>": "", + "<56,58>": "", + "<56,59>": "", + "<56,60>": "", + "<56,61>": "", + "<56,62>": "0", + "<56,63>": { + "<56,63,1>": "", + "<56,63,2>": "-2", + "<56,63,3>": "", + "<56,63,4>": "", + "<56,63,5>": "", + "<56,63,6>": "", + "<56,63,7>": "", + "<56,63,8>": "0" + }, + "<56,64>": { + "<56,64,1>": "", + "<56,64,2>": "", + "<56,64,3>": "" + }, + "<56,65>": "-2", + "<56,66>": "", + "<56,67>": "", + "<56,68>": "", + "<56,69>": "", + "<56,70>": "", + "<56,71>": "", + "<56,72>": "", + "<56,73>": "", + "<56,74>": "", + "<56,75>": "", + "<56,76>": "", + "<56,77>": "", + "<56,78>": "", + "<56,79>": "", + "<56,80>": "", + "<56,81>": "", + "<56,82>": "", + "<56,83>": "", + "<56,84>": "", + "<56,85>": "", + "<56,86>": "", + "<56,87>": "", + "<56,88>": "", + "<56,89>": "", + "<56,90>": "", + "<56,91>": "", + "<56,92>": "", + "<56,93>": "", + "<56,94>": "", + "<56,95>": "", + "<56,96>": "", + "<56,97>": "", + "<56,98>": "", + "<56,99>": "", + "<56,100>": "", + "<56,101>": "", + "<56,102>": "", + "<56,103>": "", + "<56,104>": "", + "<56,105>": "", + "<56,106>": "", + "<56,107>": "", + "<56,108>": "" + }, + "<57>": { + "<57,1>": "GROUP_7", + "<57,2>": "", + "<57,3>": "GROUPBOX", + "<57,4>": "REACT_SERVS", + "<57,5>": "2", + "<57,6>": "-7", + "<57,7>": "-1", + "<57,8>": "39", + "<57,9>": "", + "<57,10>": { + "<57,10,1>": "0x56000000", + "<57,10,2>": "0x0" + }, + "<57,11>": { + "<57,11,1>": "0x4000", + "<57,11,2>": "0x80000000" + }, + "<57,12>": "53", + "<57,13>": { + "<57,13,1>": "-1", + "<57,13,2>": "-1", + "<57,13,3>": "" + }, + "<57,14>": "0", + "<57,15>": { + "<57,15,1>": { + "<57,15,1,1>": "MS Sans Serif", + "<57,15,1,2>": "-11", + "<57,15,1,3>": "700", + "<57,15,1,4>": "0", + "<57,15,1,5>": "0", + "<57,15,1,6>": "0", + "<57,15,1,7>": "0", + "<57,15,1,8>": "34", + "<57,15,1,9>": "0", + "<57,15,1,10>": "1", + "<57,15,1,11>": "2", + "<57,15,1,12>": "1", + "<57,15,1,13>": "0", + "<57,15,1,14>": "0" + } + }, + "<57,16>": "", + "<57,17>": "", + "<57,18>": "", + "<57,19>": "", + "<57,20>": "", + "<57,21>": "", + "<57,22>": "", + "<57,23>": "", + "<57,24>": "", + "<57,25>": "", + "<57,26>": "", + "<57,27>": "", + "<57,28>": "", + "<57,29>": "", + "<57,30>": "", + "<57,31>": "", + "<57,32>": "", + "<57,33>": "", + "<57,34>": "", + "<57,35>": "", + "<57,36>": "", + "<57,37>": "", + "<57,38>": "", + "<57,39>": "", + "<57,40>": "", + "<57,41>": "", + "<57,42>": "", + "<57,43>": "", + "<57,44>": "", + "<57,45>": "", + "<57,46>": "", + "<57,47>": "", + "<57,48>": "", + "<57,49>": "", + "<57,50>": "", + "<57,51>": "", + "<57,52>": "", + "<57,53>": "", + "<57,54>": "", + "<57,55>": "", + "<57,56>": "", + "<57,57>": "", + "<57,58>": "", + "<57,59>": "", + "<57,60>": "", + "<57,61>": "", + "<57,62>": "0", + "<57,63>": { + "<57,63,1>": "", + "<57,63,2>": "-2", + "<57,63,3>": "", + "<57,63,4>": "", + "<57,63,5>": "", + "<57,63,6>": "", + "<57,63,7>": "", + "<57,63,8>": "0" + }, + "<57,64>": { + "<57,64,1>": "", + "<57,64,2>": "", + "<57,64,3>": "" + }, + "<57,65>": "-2", + "<57,66>": "", + "<57,67>": "", + "<57,68>": "", + "<57,69>": "", + "<57,70>": "", + "<57,71>": "", + "<57,72>": "", + "<57,73>": "", + "<57,74>": "", + "<57,75>": "", + "<57,76>": "", + "<57,77>": "", + "<57,78>": "", + "<57,79>": "", + "<57,80>": "", + "<57,81>": "", + "<57,82>": "", + "<57,83>": "", + "<57,84>": "", + "<57,85>": "", + "<57,86>": "", + "<57,87>": "", + "<57,88>": "", + "<57,89>": "", + "<57,90>": "", + "<57,91>": "", + "<57,92>": "", + "<57,93>": "", + "<57,94>": "", + "<57,95>": "", + "<57,96>": "", + "<57,97>": "", + "<57,98>": "", + "<57,99>": "", + "<57,100>": "", + "<57,101>": "", + "<57,102>": "", + "<57,103>": "", + "<57,104>": "", + "<57,105>": "", + "<57,106>": "", + "<57,107>": "", + "<57,108>": "" + } }, "record4": { "<1>": { diff --git a/LSL2/POPUP/FEATURE_FLAGS_HISTORY.json b/LSL2/POPUP/FEATURE_FLAGS_HISTORY.json new file mode 100644 index 0000000..45a6fd4 --- /dev/null +++ b/LSL2/POPUP/FEATURE_FLAGS_HISTORY.json @@ -0,0 +1,103 @@ +{ + "header": { + "version": 1, + "type": "record" + }, + "body": { + "record1": { + "<1>": "-1", + "<2>": "-1", + "<3>": "-1", + "<4>": "-1", + "<5>": "-2", + "<6>": { + "<6,1>": { + "<6,1,1>": "Segoe UI", + "<6,1,2>": "-12", + "<6,1,3>": "400", + "<6,1,4>": "0", + "<6,1,5>": "0", + "<6,1,6>": "0", + "<6,1,7>": "1", + "<6,1,8>": "0", + "<6,1,9>": "0", + "<6,1,10>": "0", + "<6,1,11>": "0", + "<6,1,12>": "0" + } + }, + "<7>": "FEATURE_FLAGS", + "<8>": "", + "<9>": { + "<9,1>": { + "<9,1,1>": "3", + "<9,1,2>": "15", + "<9,1,3>": "L", + "<9,1,4>": "L", + "<9,1,5>": "<>", + "<9,1,6>": "Modify User" + }, + "<9,2>": { + "<9,2,1>": "4", + "<9,2,2>": "10", + "<9,2,3>": "L", + "<9,2,4>": "L", + "<9,2,5>": "DT2/^H", + "<9,2,6>": "Modify Datetime" + }, + "<9,3>": { + "<9,3,1>": "5", + "<9,3,2>": "10", + "<9,3,3>": "C", + "<9,3,4>": "L", + "<9,3,5>": "BOn,Off", + "<9,3,6>": "Feature Flag" + }, + "<9,4>": { + "<9,4,1>": "6", + "<9,4,2>": "50", + "<9,4,3>": "L", + "<9,4,4>": "L", + "<9,4,5>": "<>", + "<9,4,6>": "Modify Comment" + } + }, + "<10>": "R", + "<11>": "0", + "<12>": "Feature History", + "<13>": "", + "<14>": "E", + "<15>": "1", + "<16>": "1", + "<17>": "1", + "<18>": "1", + "<19>": "1", + "<20>": "1", + "<21>": "1", + "<22>": "0", + "<23>": "0", + "<24>": "0", + "<25>": "0", + "<26>": "", + "<27>": "", + "<28>": "", + "<29>": "0", + "<30>": "0", + "<31>": "0", + "<32>": "0", + "<33>": "0", + "<34>": "-2", + "<35>": "-2", + "<36>": "", + "<37>": "", + "<38>": "", + "<39>": "", + "<40>": "-2", + "<41>": "1000", + "<42>": "", + "<43>": "", + "<44>": "", + "<45>": "" + } + } +} \ No newline at end of file diff --git a/LSL2/STPROC/COMM_REACTOR_LOG.txt b/LSL2/STPROC/COMM_REACTOR_LOG.txt index 567bda0..737b0ae 100644 --- a/LSL2/STPROC/COMM_REACTOR_LOG.txt +++ b/LSL2/STPROC/COMM_REACTOR_LOG.txt @@ -630,7 +630,6 @@ TechSign: Action = Get_Property(@Window:'.TECH_SIGN', 'TEXT') If Action EQ 'Sign' then - TechSig = Get_Property(@WINDOW:'.TECH_SIG','DEFPROP') IF TechSig NE '' THEN @@ -678,7 +677,17 @@ TechSign: Valid = Dialog_Box('QUOTE_SIG_PWD_ENTRY', @WINDOW, @USER4:@VM:XLATE( 'LSL_USERS', @USER4, LSL_USERS_PASSWORD$, 'X' ) ) If Valid then + Def = "" + Def = "Signing Reactor Log..." + Def = -2 + Def = -2 + Def = "U" + MsgUp = Msg(@window, Def) + SuccessfulSign = Reactor_Log_Services('SignReactorLog', ReactorLogNo, @USER4) + + Msg(@window, MsgUp) ;* take down the message + If Not(SuccessfulSign) then Error_Services('DisplayError') ActiveRlNicaOrderIds = Nica_Orders_Services('GetActiveOrders', 'REACTOR_LOG', ReactorLogNo) @@ -722,7 +731,18 @@ TechSign: RLKey = Get_Property(@Window:'.REACTOR_LOG_NO', 'TEXT') If RLKey NE '' then Set_Property(@Window, 'SAVEWARN', False$) + + Def = "" + Def = "Unsigning Reactor Log..." + Def = -2 + Def = -2 + Def = "U" + MsgUp = Msg(@window, Def) + Reactor_Log_Services('ClearSignature', RLKey) + + Msg(@window, MsgUp) ;* take down the message + If Error_Services('NoError') then Post_Event(@Window, 'READ') end else diff --git a/LSL2/STPROC/COMM_REACT_SERVS.txt b/LSL2/STPROC/COMM_REACT_SERVS.txt index b825744..71bb965 100644 --- a/LSL2/STPROC/COMM_REACT_SERVS.txt +++ b/LSL2/STPROC/COMM_REACT_SERVS.txt @@ -9,13 +9,11 @@ COMPILE FUNCTION Comm_React_Servs(EntID,Event,Parm1,Parm2,Parm3,Parm4,Parm5) DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, Center_Window, Post_Event DECLARE SUBROUTINE ErrMsg, Send_Message, Set_Property, Send_Event, Btree.Extract, obj_AppWindow, DECLARE SUBROUTINE obj_Notes, Security_Err_Msg, End_Window, Forward_Event, Start_Window, Create_Note -DECLARE SUBROUTINE React_Servs_Services +DECLARE SUBROUTINE React_Servs_Services, React_Servs_Events DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Center_Window, Popup, Collect.Ixvals DECLARE FUNCTION Send_Message, Msg, Security_Check, RowExists, NextKey, End_Window, React_Servs_Services - - $INSERT MSG_EQUATES $INSERT APPCOLORS $INSERT LSL_USERS_EQU @@ -44,40 +42,11 @@ BEGIN CASE CASE Event[1,3] = 'QBF' ; GOSUB Refresh END CASE - - CASE EntID = @WINDOW:'.LU_SYSTEM' AND Event = 'CLICK' ; GOSUB LUSystem - CASE EntID = @WINDOW:'.LU_REACT_ITEM' AND Event = 'CLICK' ; GOSUB LUReactItem - CASE EntID = @WINDOW:'.LU_ITEM_TYPE' AND Event = 'CLICK' ; GOSUB LUReactItemType - /* - CASE EntID = @WINDOW:'.SIGN_INSP' AND Event = 'CLICK' ; GOSUB SignInsp - CASE EntID = @WINDOW:'.SIGN_SCAN' AND Event = 'CLICK' ; GOSUB SignScan - CASE EntID = @WINDOW:'.SPEC_BRIGHTLIGHT' AND Event = 'CLICK' ; GOSUB Refresh - CASE EntID = @WINDOW:'.SPEC_MICROSCOPE' AND Event = 'CLICK' ; GOSUB Refresh - CASE EntID = @WINDOW:'.REFRESH_SPEC' AND Event = 'CLICK' ; GOSUB RefreshSpec - CASE EntID = @WINDOW:'.CI_TAB' AND Event = 'CLICK' ; GOSUB Page - CASE FIELD(EntID,'.',2) = 'ROTR_ACTION' AND Event = 'CLICK' ; GOSUB Refresh - - - CASE EntID = @WINDOW:'.CLEAN_RESULTS' - BEGIN CASE - CASE Event = 'POSCHANGED' ; GOSUB CleanPC - CASE Event = 'DBLCLK' ; GOSUB CleanDC - END CASE - - CASE EntID = @WINDOW:'.INSP_RESULTS' - BEGIN CASE - CASE Event = 'POSCHANGED' ; GOSUB InspPC - CASE Event = 'DBLCLK' ; GOSUB InspDC - END CASE - - CASE EntID = @WINDOW:'.SCAN_RESULTS' - BEGIN CASE - CASE Event = 'POSCHANGED' ; GOSUB ScanPC - CASE Event = 'DBLCLK' ; GOSUB ScanDC - END CASE - - CASE EntID = @WINDOW:'.SEND_SPC' AND Event = 'CLICK' ; GOSUB SendSPC - */ + CASE EntID = @WINDOW:'.CHB_IS_INTRUSIVE' AND Event = 'CLICK' ; GOSUB EnableFlowCode + CASE EntID = @WINDOW:'.LU_SYSTEM' AND Event = 'CLICK' ; GOSUB LUSystem + CASE EntID = @WINDOW:'.LU_REACT_ITEM' AND Event = 'CLICK' ; GOSUB LUReactItem + CASE EntID = @WINDOW:'.LU_ITEM_TYPE' AND Event = 'CLICK' ; GOSUB LUReactItemType + CASE 1 ErrorMsg = 'Unknown Parameters ':EntID:' - ':Event:' passed to commuter' @@ -92,357 +61,176 @@ END RETURN Result - * * * * * * * Create: -* * * * * * * - - -IF NOT(Security_Check('React Servs',Read$)) THEN - Security_Err_Msg('React Servs',Read$) - void = End_Window( @WINDOW, '' ) - RETURN -END - -IF NOT(Security_Check('React Servs',Edit$)) THEN - Security_Err_Msg('React Servs',Edit$) -END - -ReactMetrics = React_Servs_Services('GetReactMetrics') -Set_Property(@Window:'.ASSOC_METRICS', 'LIST', ReactMetrics) - -obj_Appwindow('Create',@WINDOW) - - -GOSUB Refresh - +* * * * * * * + + IF NOT(Security_Check('React Servs',Read$)) THEN + Security_Err_Msg('React Servs',Read$) + void = End_Window( @WINDOW, '' ) + RETURN + END + + IF NOT(Security_Check('React Servs',Edit$)) THEN + Security_Err_Msg('React Servs',Edit$) + END + + ReactMetrics = React_Servs_Services('GetReactMetrics') + Set_Property(@Window:'.ASSOC_METRICS', 'LIST', ReactMetrics) + + obj_Appwindow('Create',@WINDOW) + + GOSUB Refresh + RETURN * * * * * * * Clear: * * * * * * * - -Send_Event(@WINDOW,'PAGE',1) - - -IF Get_Property(@WINDOW,'@READONLY') THEN - obj_AppWindow('ReadOnly',@RM:1) ;* Reenables data bound controls - Set_Property(@WINDOW,'@READONLY',0) ;* Clear flag on window -END - - + + Send_Event(@WINDOW,'PAGE',1) + + IF Get_Property(@WINDOW,'@READONLY') THEN + obj_AppWindow('ReadOnly',@RM:1) ;* Reenables data bound controls + Set_Property(@WINDOW,'@READONLY',0) ;* Clear flag on window + END + +* GOSUB EnableFlowCode +* React_Servs_Events(@Window, 'READ') + + * * * * * * * Refresh: * * * * * * * - -/* - -* * * * * Samples * * * * * * - -ACStatus = Get_Property(@WINDOW:'.AC_STATUS','TEXT') -IF ACStatus NE '' THEN - IF ACStatus[1,1] = 'C' THEN - Set_Property(@WINDOW:'.AC_STATUS','BACKCOLOR',RED$) + + * QBF buttons + + Ctrls = @WINDOW:'.QBF_FIRST_FIX':@RM ; Props = 'ENABLED':@RM + Ctrls := @WINDOW:'.QBF_PREV_FIX':@RM ; Props := 'ENABLED':@RM + Ctrls := @WINDOW:'.QBF_ABS_FIX':@RM ; Props := 'ENABLED':@RM + Ctrls := @WINDOW:'.QBF_NEXT_FIX':@RM ; Props := 'ENABLED':@RM + Ctrls := @WINDOW:'.QBF_LAST_FIX':@RM ; Props := 'ENABLED':@RM + Ctrls := @WINDOW:'.QBF_STOP_FIX' ; Props := 'ENABLED' + + IF Get_Property(@WINDOW,'QBFLIST') = '' THEN + Vals = 0:@RM:0:@RM:0:@RM:0:@RM:0:@RM:0 END ELSE - Set_Property(@WINDOW:'.AC_STATUS','BACKCOLOR',GREEN$) + Vals = 1:@RM:1:@RM:1:@RM:1:@RM:1:@RM:1 END -END - -Captive = Get_Property(@WINDOW:'.CAPTIVE','CHECK') -Consignment = Get_Property(@WINDOW:'.CONSIGNMENT','CHECK') - -BEGIN CASE - CASE Captive - Set_Property(@WINDOW:'.ORD_TYPE','BACKCOLOR',LTBLUE$) - - CASE Consignment - Set_Property(@WINDOW:'.ORD_TYPE','BACKCOLOR',YELLOW$) - - CASE 1 - Set_Property(@WINDOW:'.ORD_TYPE','BACKCOLOR',GREEN$) - -END CASE - - -Ctrls = @WINDOW:'.CHANGE_VISION_ORD_NO':@RM ; Props = 'ENABLED':@RM -Ctrls := @WINDOW:'.CUST_BUTTON':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.CONTACT_BUTTON':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.CREATE_WO_BUTTON':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.VIEW_AC':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.NEW_ITEM_BUTTON':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.SHIP_TO_EDIT':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.BILL_TO_EDIT':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.LU_CUST_NO':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.LU_COMP_CONTACT':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.LU_AC' ; Props := 'ENABLED' - -IF Get_Property(@WINDOW,'@READONLY') THEN - Vals = STR('0':@RM,11) ;* ReadOnly mode - kill the buttons -END ELSE - Vals = STR('1':@RM,11) ;* Normal mode - enable the buttons -END - -Vals[-1,1] = '' - -Set_Property(Ctrls,Props,Vals) ;* Kill the function buttons when in view only mode - -*/ -* * * * * End of Samples * * * * * * - - -* QBF buttons - -Ctrls = @WINDOW:'.QBF_FIRST_FIX':@RM ; Props = 'ENABLED':@RM -Ctrls := @WINDOW:'.QBF_PREV_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.QBF_ABS_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.QBF_NEXT_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.QBF_LAST_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.QBF_STOP_FIX' ; Props := 'ENABLED' - -IF Get_Property(@WINDOW,'QBFLIST') = '' THEN - Vals = 0:@RM:0:@RM:0:@RM:0:@RM:0:@RM:0 -END ELSE - Vals = 1:@RM:1:@RM:1:@RM:1:@RM:1:@RM:1 -END - -Set_Property(Ctrls,Props,Vals) - -* Turn edit table symbolic column backgrounds to green - -ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow - -ETCtrls = ETSymbolics<1> -ETCols = ETSymbolics<2> - -FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '') - ETCtrl = ETCtrls<1,I> - ETList = Get_Property(ETCtrl,'LIST') - FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '') - IF ETList NE '' THEN - FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '') - stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$) - NEXT N - END + + Set_Property(Ctrls,Props,Vals) + + * Turn edit table symbolic column backgrounds to green + + ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow + + ETCtrls = ETSymbolics<1> + ETCols = ETSymbolics<2> + + FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '') + ETCtrl = ETCtrls<1,I> + ETList = Get_Property(ETCtrl,'LIST') + FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '') + IF ETList NE '' THEN + FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '') + stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$) + NEXT N + END + NEXT I NEXT I -NEXT I - + + GOSUB EnableFlowCode +* React_Servs_Events(@Window, 'READ') + RETURN * * * * * * * Page: * * * * * * * - -obj_Appwindow('Page') - - + + obj_Appwindow('Page') + RETURN - * * * * * * * LUSystem: * * * * * * * - -ReturnCtrl = Parm1 - -IF ReturnCtrl NE '' THEN - ReturnCtrl = @WINDOW:'.':ReturnCtrl -END ELSE - ReturnCtrl = '' -END - - -Set_Status(0) - -ReactSystem = Popup(@WINDOW,'','REACT_SYSTEM') - -IF ReactSystem = '' THEN RETURN - -obj_Appwindow('LUValReturn',ReactSystem:@RM:ReturnCtrl) - + + ReturnCtrl = Parm1 + + IF ReturnCtrl NE '' THEN + ReturnCtrl = @WINDOW:'.':ReturnCtrl + END ELSE + ReturnCtrl = '' + END + + Set_Status(0) + + ReactSystem = Popup(@WINDOW,'','REACT_SYSTEM') + + IF ReactSystem = '' THEN RETURN + + obj_Appwindow('LUValReturn',ReactSystem:@RM:ReturnCtrl) + RETURN - * * * * * * * LUREactItem: * * * * * * * - -ReturnCtrl = Parm1 - -IF ReturnCtrl NE '' THEN - ReturnCtrl = @WINDOW:'.':ReturnCtrl -END ELSE - ReturnCtrl = '' -END - - -Set_Status(0) - -ReactItem = Popup(@WINDOW,'','REACT_ITEMS') - -IF ReactItem = '' THEN RETURN - -obj_Appwindow('LUValReturn',ReactItem:@RM:ReturnCtrl) - + + ReturnCtrl = Parm1 + + IF ReturnCtrl NE '' THEN + ReturnCtrl = @WINDOW:'.':ReturnCtrl + END ELSE + ReturnCtrl = '' + END + + + Set_Status(0) + + ReactItem = Popup(@WINDOW,'','REACT_ITEMS') + + IF ReactItem = '' THEN RETURN + + obj_Appwindow('LUValReturn',ReactItem:@RM:ReturnCtrl) + RETURN + * * * * * * * LUReactItemType: * * * * * * * - -ReturnCtrl = Parm1 - -IF ReturnCtrl NE '' THEN - ReturnCtrl = @WINDOW:'.':ReturnCtrl -END ELSE - ErrorMsg = 'ReturnCtrl not specified' - RETURN -END - - -RetVal = Popup(@WINDOW,'','REACT_ITEM_TYPE') - -IF RetVal = '' THEN RETURN - -obj_Appwindow('LUValReturn',RetVal:@RM:ReturnCtrl) - + + ReturnCtrl = Parm1 + + IF ReturnCtrl NE '' THEN + ReturnCtrl = @WINDOW:'.':ReturnCtrl + END ELSE + ErrorMsg = 'ReturnCtrl not specified' + RETURN + END + + + RetVal = Popup(@WINDOW,'','REACT_ITEM_TYPE') + + IF RetVal = '' THEN RETURN + + obj_Appwindow('LUValReturn',RetVal:@RM:ReturnCtrl) RETURN + * * * * * * * Read: * * * * * * * - -/* - -NewRecord = false$ -if rowexists( 'REACT_SERVS', .serv_id->text ) then - ReadOk = true$ -end else - * user is trying to add new do they have write rights - if security_check( 'React Servs', Write$ ) then - ReadOk = true$ - end else - security_err_msg( 'React Servs', Write$ ) - ReadOk = false$ - .serv_id->text = '' - Void = post_event( CtrlEntId, 'CLEAR', False$, True$ ) - end - NewRecord = true$ -end -if ReadOk then - if get_property( @window, '@NoRead' ) then - Void = set_property( @window, '@NoRead', 0 ) - end else - * no qbf active do the read - * if it is active the read already took place - forward_event() - end - ServId = .serv_id->text - ProtectVar = 'ENTRY_ID/ENTRY_DATE/SERV_CAT_DESC' - swap '/' with @rm:@window:'.' in ProtectVar - ProtectVar = @window:'.':ProtectVar - Void = set_property( ProtectVar, 'ENABLED', 0 ) - if rowexists( 'REACT_SERVS', ServId ) else - .entry_id->text = oconv( @user4, '[XLATE_CONV,LSL_USERS*FIRST_LAST]' ) - .entry_date->text = oconv( date(), 'D2/' ) - .graphite_or_tube->value = '' - end - if NewRecord else - if security_check( 'React Servs', Edit$ ) else - * protect all fields - AllControls = utility( 'OBJECTLIST', @window, '' ) - Acnt = fieldcount( AllControls, @fm ) - for i = 1 to Acnt - ThisControl = AllControls - if ThisControl[-6,6] = '_LABEL' or index( ThisControl, 'MENU', 1 ) or index( ThisControl, 'TEXT', 1 ) else - void = set_property( ThisControl, 'ENABLED', 0 ) - end - next i - Void = scroll_enable() - end - end -end - -*/ -/* - -NewRecord = false$ -if rowexists( 'REACT_SERV_CAT', .cat_id->text ) then - ReadOk = true$ -end else - * user is trying to add new do they have write rights - if security_check( 'React Serv Cat', Write$ ) then - ReadOk = true$ - end else - security_err_msg( 'React Serv Cat', Write$ ) - ReadOk = false$ - .cat_id->text = '' - Void = post_event( CtrlEntId, 'CLEAR', False$, True$ ) - end - NewRecord = true$ -end -if ReadOk then - if get_property( @window, '@NoRead' ) then - Void = set_property( @window, '@NoRead', 0 ) - end else - * no qbf active do the read - * if it is active the read already took place - forward_event() - end - CatId = .cat_id->text - ProtectVar = 'ENTRY_ID/ENTRY_DATE' - swap '/' with @rm:@window:'.' in ProtectVar - ProtectVar = @window:'.':ProtectVar - Void = set_property( ProtectVar, 'ENABLED', 0 ) - if rowexists( 'REACT_SERV_CAT', CatId ) else - .entry_id->text = oconv( @user4, '[XLATE_CONV,LSL_USERS*FIRST_LAST]' ) - .entry_date->text = oconv( date(), 'D2/' ) - end - if NewRecord else - if security_check( 'React Serv Cat', Edit$ ) else - * protect all fields - AllControls = utility( 'OBJECTLIST', @window, '' ) - Acnt = fieldcount( AllControls, @fm ) - for i = 1 to Acnt - ThisControl = AllControls - if ThisControl[-6,6] = '_LABEL' or index( ThisControl, 'MENU', 1 ) or index( ThisControl, 'TEXT', 1 ) else - void = set_property( ThisControl, 'ENABLED', 0 ) - end - next i - Void = scroll_enable() - end - end -end -RETURN 0 -*/ - - - -/* - -OrderNo = Get_Property(@WINDOW:'.ORD_NO','TEXT') - -IF RowExists('ORDER',OrderNo) THEN - IF NOT(Security_Check('Order',EDIT$)) THEN - obj_AppWindow('ReadOnly',@WINDOW) ;* disable all database controls - Set_Property(@WINDOW,'@READONLY',1) - END -END ELSE - IF NOT(Security_Check('Order',WRITE$)) THEN - Send_Event(@WINDOW,'CLEAR') - Security_Err_Msg('Order',WRITE$) - RETURN - END -END - -*/ - -GOSUB Refresh - + + GOSUB Refresh + RETURN @@ -450,195 +238,41 @@ RETURN Write: * * * * * * * -/* -OrderNo = Get_Property(@WINDOW:'.ORD_NO','TEXT') - -Message = '' -IF RowExists('ORDER',OrderNo) THEN - IF Get_Property(@WINDOW,'SAVEWARN') THEN - Message = 'Order No. ':OrderNo:' has been changed.' - END -END ELSE - Message = 'New Order ':QUOTE(OrderNo):' entered into system.' -END - -IF Message NE '' THEN - - Recipients = XLATE('NOTIFICATION','ORDER_ENTRY',NOTIFICATION_USER_ID$,'X') - SentFrom = @USER4 - Subject = 'New/Update Order':OrderNo - AttachWindow = 'ORDER2' - AttachKey = OrderNo - SendToGroup = '' - - Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup - *obj_Notes('Create',Parms) ;* Per Request from Customer Service - - IF Get_Status(errCode) THEN - ErrMsg(errCode) - END - -END -*/ - -Result = 1 - + Result = 1 + RETURN * * * * * * * Delete: * * * * * * * - -IF Security_Check('React Servs',Delete$ ) THEN - Result = 1 ;* Proceed with delete -END ELSE - Security_Err_Msg('React Servs',Delete$) - Result = 0 ;* Stop event chain (and delete) -END - + + IF Security_Check('React Servs',Delete$ ) THEN + Result = 1 ;* Proceed with delete + END ELSE + Security_Err_Msg('React Servs',Delete$) + Result = 0 ;* Stop event chain (and delete) + END + RETURN - - - * * * * * * * Close: * * * * * * * - -obj_Notes('Inbox',@USER4) ;* Checks for any new messages - -obj_Appwindow('CardReturn',@WINDOW) - -RETURN - - - - - -* * * * * * * -ItemDC: -* * * * * * * - - -/* -OrderNo = Get_Property(@WINDOW,'ID') - -CtrlEntID = @WINDOW:'.ORDER_DET' -CurrPos = Get_Property(CtrlEntID,'SELPOS') -CurrCol = CurrPos<1> -CurrRow = CurrPos<2> - -IF CurrCol = COL$ITEM_NO THEN - ItemNo = Get_Property(CtrlEntID,'CELLPOS',COL$ITEM_NO:@FM:CurrRow) - - IF OrderNo NE '' AND ItemNo NE '' THEN - IF Get_Property(@WINDOW,'QBFLIST') = '' THEN - Send_Event(@WINDOW,'WRITE') - END - - DetWindow = 'ORDER_DET' - DetKeys = OrderNo:'*':ItemNo - DefaultRec = '' - RetKey = OrderNo - RetPage = 1 - RetCtrl = CtrlEntID - RetPos = CurrPos - - oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos - - obj_AppWindow('ViewNewDetail',oAParms) - IF Get_Status(errCode) THEN - ErrMsg(errCode) - END - END -END ;* End of ItemNo column - -IF CurrCol = COL$QUOTE_NO THEN - QuoteNo = Get_Property(CtrlEntID,'CELLPOS',COL$QUOTE_NO:@FM:CurrRow) - - IF OrderNo NE '' AND QuoteNo NE '' THEN - IF Get_Property(@WINDOW,'QBFLIST') = '' THEN - Send_Event(@WINDOW,'WRITE') - END - - DetWindow = 'QUOTE2' - DetKeys = QuoteNo - DefaultRec = '' - RetKey = OrderNo - RetPage = 1 - RetCtrl = CtrlEntID - RetPos = CurrPos - - oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos - - obj_AppWindow('ViewNewDetail',oAParms) - IF Get_Status(errCode) THEN - ErrMsg(errCode) - END - END -END ;* End of QuoteNo column - -IF CurrCol = COL$WO_NO THEN - WONo = Get_Property(CtrlEntID,'CELLPOS',COL$WO_NO:@FM:CurrRow) - - IF OrderNo NE '' AND WONo NE '' THEN - IF Get_Property(@WINDOW,'QBFLIST') = '' THEN - Send_Event(@WINDOW,'WRITE') - END - - DetWindow = 'WO_LOG2' - DetKeys = WONo - DefaultRec = '' - RetKey = OrderNo - RetPage = 1 - RetCtrl = CtrlEntID - RetPos = CurrPos - - oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos - - obj_AppWindow('ViewNewDetail',oAParms) - IF Get_Status(errCode) THEN - ErrMsg(errCode) - END - END -END ;* End of WO column - - -IF CurrCol = COL$EPI_PN THEN - EpiPN = Get_Property(CtrlEntID,'CELLPOS',COL$EPI_PN:@FM:CurrRow) - IF OrderNo NE '' AND EpiPN NE '' THEN - IF Get_Property(@WINDOW,'QBFLIST') = '' THEN - Send_Event(@WINDOW,'WRITE') - END - - DetWindow = 'EPI_PART' - DetKeys = EpiPN - DefaultRec = '' - RetKey = OrderNo - RetPage = 1 - RetCtrl = CtrlEntID - RetPos = CurrPos - - oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos - - obj_AppWindow('ViewNewDetail',oAParms) - IF Get_Status(errCode) THEN - ErrMsg(errCode) - END - END -END ;* End of Epi Part Number column - - - -*/ + obj_Notes('Inbox',@USER4) ;* Checks for any new messages + + obj_Appwindow('CardReturn',@WINDOW) + RETURN - - - - +EnableFlowCode: + + ChkVal = Get_Property(@WINDOW:'.CHB_IS_INTRUSIVE', 'CHECK') + If ChkVal EQ '' then ChkVal = False$ + Set_Property(@WINDOW:'.CBO_INTR_MAINT_FLOW', 'ENABLED', ChkVal) + +return diff --git a/LSL2/STPROC/DEVELOPMENT_SERVICES.txt b/LSL2/STPROC/DEVELOPMENT_SERVICES.txt index 9dbae54..eb2142e 100644 --- a/LSL2/STPROC/DEVELOPMENT_SERVICES.txt +++ b/LSL2/STPROC/DEVELOPMENT_SERVICES.txt @@ -25,6 +25,7 @@ $INSERT RLIST_EQUATES $INSERT CLEAN_INSP_EQUATES $INSERT TOOL_PARMS_EQUATES $INSERT SERVICES_EQUATES +$INSERT FEATURE_FLAGS_EQUATES EQU COL$QA_MET_PHASE_MIN TO 17 @@ -45,7 +46,7 @@ Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8 Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array -Declare function Development_Services +Declare function Development_Services, Datetime GoToService @@ -632,6 +633,59 @@ Service DeployRoutine(StoredProcNames) end service +Service GetFeatureFlagArray() + + FeatureFlagArray = '' + Open 'FEATURE_FLAGS' to hTable then + Select hTable + RowIndex = 0 + EOF = False$ + Loop + ReadNext KeyId else EOF = True$ + Until EOF + RowIndex += 1 + Read Rec from hTable, KeyId then + FeatureFlagArray = KeyId + FeatureFlagArray = Rec + FeatureFlagArray = Rec + end + Repeat + end + Response = FeatureFlagArray + +end service + + +Service ChangeFeatureState(FeatureId, ModifyState, ModifyUser, ModifyComment) + + ErrorMsg = '' + If RowExists('FEATURE_FLAGS', FeatureId) then + If ( (ModifyState NE '') and (ModifyUser NE '') ) then + FeatureRec = Database_Services('ReadDataRow', 'FEATURE_FLAGS', FeatureId) + If Error_Services('NoError') then + FeatureRec = ModifyState + FeatureRec = ModifyUser + FeatureRec = Datetime() + FeatureRec = ModifyState + FeatureRec = ModifyComment + Database_Services('WriteDataRow', 'FEATURE_FLAGS', FeatureId, FeatureRec, True$, False$, False$) + end + end else + ErrorMsg = 'Error in ':Service:' service. Null ModifyState or ModifyUser passed in.' + end + end else + ErrorMsg = 'Error in ':Service:' service. FEATURE_FLAGS "':FeatureId:'" does not exist!' + end + + If ErrorMsg NE '' then + Error_Services('Add', ErrorMsg) + Response = False$ + end else + Response = True$ + end + +end service + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Internal GoSubs //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -642,4 +696,3 @@ ClearCursors: Next counter return - diff --git a/LSL2/STPROC/ENVIRONMENT_SERVICES.txt b/LSL2/STPROC/ENVIRONMENT_SERVICES.txt index 6faa5f5..35db035 100644 --- a/LSL2/STPROC/ENVIRONMENT_SERVICES.txt +++ b/LSL2/STPROC/ENVIRONMENT_SERVICES.txt @@ -45,6 +45,7 @@ Common /EnvironmentServices/ Unused1@, Unused2@, Unused3@, Unused4@, Unused5@, U Declare function Environment_Services, Memory_Services, SRP_List, SRP_FastArray, SRP_Array, Database_Services Declare function Active_Directory_Services, SRP_Send_Mail, RTI_GetNetworkUserName, Utility Declare subroutine Environment_Services, Memory_Services, SRP_List, SRP_FastArray, Database_Services, GetTempPath +Declare function GetEnvironmentVariable GoToService else Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.') @@ -537,6 +538,21 @@ Service GetIfxEmailServer() end service + +Service GetEnvironmentVariable(VariableName) + + If VariableName NE '' then + VarLength = GetEnvironmentVariable(VariableName, "", 0) + 1 + VarValue = space(VarLength+1) + VarLength = GetEnvironmentVariable(VariableName, VarValue, VarLength) + VarValue = VarValue[1, VarLength] + Response = VarValue + end else + Error_Services('Add', 'Error in service ':Service:'. Null VariableName passed in') + end + +end service + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Internal GoSubs //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/LSL2/STPROC/NDW_FEATURE_FLAGS_EVENTS.txt b/LSL2/STPROC/NDW_FEATURE_FLAGS_EVENTS.txt new file mode 100644 index 0000000..352965e --- /dev/null +++ b/LSL2/STPROC/NDW_FEATURE_FLAGS_EVENTS.txt @@ -0,0 +1,172 @@ +Compile function NDW_FEATURE_FLAGS_EVENTS(CtrlEntId, Event, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) +/*********************************************************************************************************************** + + This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written + permission from Infineon. + + Name : NDW_Feature_Flag_Events + + Description : This function acts as a commuter module for all events related to this window. + + Notes : Commuter Modules are automatically called from the Promoted_Events function which is called by the + application-specific promoted event handler. This makes it possible to add QuickEvents that need to + execute Basic+ logic without having use the Form Designer to make the association, although this is + limited to the events which are currently promoted. + + If the form needs to call the commuter module directly then the QuickEvent parameters should be + formatted like this: + + '@SELF','@EVENT',['@PARAM1','@PARAMx'] + + Parameters : + CtrlEntId [in] -- The fully qualified name of the control calling the promoted event + Event [in] -- The event being executed. See the Notes section regarding "PRE" events + Param1-15 [in] -- Additional event parameter holders + EventFlow [out] -- Set to 1 or 0 so the calling event knows whether or not to chain forward. See comments in + EVENT_SETUP insert + + History : (Date, Initials, Notes) + 03/07/2025 djs Created initial commuter module. + + +***********************************************************************************************************************/ + +#pragma precomp SRP_PreCompiler +#window NDW_FEATURE_FLAG_EVENTS + +$Insert EVENT_SETUP +$Insert LOGICAL +$Insert APP_INSERTS +$Insert REACTOR_LOG_EQUATES +$Insert POPUP_EQUATES + +Equ NUM_COLS$ To 4 +Equ COL.FEATURE_FLAG_ID$ To 1 +Equ COL.FEATURE_DESCRIPTION$ To 2 +Equ COL.ENABLED$ To 3 +Equ COL.BTN_VIEW_HISTORY$ To 4 + +Declare subroutine Post_Event, Database_Services, PlaceDialog, Development_Services, ErrMsg, Popup +Declare function Datetime, SRP_String, Database_Services, Development_Services + +// Update the arguments so that the OpenInsight OLE event will treate the ActiveX event as a native event handler. +If Event EQ 'OLE' then + Transfer Event to OIEvent + Transfer Param1 to Event + Transfer Param2 to Param1 + Transfer Param3 to Param2 + Transfer Param4 to Param3 + Transfer Param5 to Param4 + Transfer Param6 to Param5 + Transfer Param7 to Param6 + Transfer Param8 to Param7 +end + +GoToEvent Event for CtrlEntId else + // Event not implemented +end + +Return EventFlow or 1 + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Event Handlers +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +Event WINDOW.CREATE(CreateParam) + + GoSub SetupOLEControls + PlaceDialog(-2, -2) + +end event + + +Event OLE_EDT_FEATURE_FLAGS.OnCheckChanged(Cell, OldCheckVal, NewCheckVal) + + Response = Dialog_Box('NDW_ADD_COMMENT', @Window, True$) + OkClicked = Response<1> + Comment = Response<2> + Row = Field(Cell, ';', 2) + If OkClicked and Comment NE '' then + // Record new enabled state and record the user, datetime, and comment + FeatureRow = '' + FeatureId = Get_Property(CtrlEntId, 'OLE.CellText[':1:';':Row:']') + Development_Services('ChangeFeatureState', FeatureId, NewCheckVal, @User4, Comment) + If Error_Services('HasError') then + Error_Services('DisplayError') + Set_Property(CtrlEntID, "OLE.CellCheck[3; ":Row:"]", OldCheckVal) + end + end else + Set_Property(CtrlEntID, "OLE.CellCheck[3; ":Row:"]", OldCheckVal) + end + +end event + + +Event OLE_EDT_FEATURE_FLAGS.OnButtonClick(Cell, Point, Button, Shift, Ctrl) + + // Record new enabled state and record the user, datetime, and comment + FeatureRow = '' + Row = Field(Cell, ';', 2) + FeatureId = Get_Property(CtrlEntId, 'OLE.CellText[':1:';':Row:']') + If RowExists('FEATURE_FLAGS', FeatureId) then + + FeatureRec = Database_Services('ReadDataRow', 'FEATURE_FLAGS', FeatureId) + If Error_Services('NoError') then + PopupRec = "" + PopupRec = FeatureId + Popup(@Window, PopupRec, 'FEATURE_FLAGS_HISTORY') + end else + Error_Services('DisplayError') + end + end else + ErrMsg('Feature record not found!') + end + +end event + + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Internal GoSubs +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +SetupOLEControls: + + FeatureFlagArray = Development_Services('GetFeatureFlagArray') + NumRows = DCount(FeatureFlagArray, @FM) + OLECtrl = @Window:'.OLE_EDT_FEATURE_FLAGS' + Set_Property(OLECtrl, 'OLE.Redraw', False$) + Set_Property(OLECtrl, "OLE.Dimension", NUM_COLS$:@FM:NumRows) + TitleList = 'Feature ID':@VM:'Feature Description':@VM:'Feature Enabled':@VM:'Feature History' + Set_Property(OLECtrl, 'OLE.TitleList', TitleList) + DataColumn = 200 + Set_Property(OLECtrl, "OLE.DataColumn[1]", DataColumn) + DataColumn<4> = True$ ; // Autosize Description column + Set_Property(OLECtrl, "OLE.DataColumn[2]", DataColumn) + DataColumn<1> = 120 + DataColumn<4> = False$ + Set_Property(OLECtrl, "OLE.DataColumn[3]", DataColumn) + DataColumn<1> = 100 + Set_Property(OLECtrl, "OLE.DataColumn[4]", DataColumn) + Set_Property(OLECtrl, "OLE.CellProtection[1; All]", 'RO') + Set_Property(OLECtrl, "OLE.CellProtection[2; All]", 'RO') + Set_Property(OLECtrl, "OLE.HeaderColumn[1]", 40:@FM:False$) + Set_Property(OLECtrl, "OLE.CellMultilined[All; All]", True$) + Set_Property(OLECtrl, "OLE.AllowDeletions", False$) + Set_Property(OLECtrl, "OLE.CellType[3; All]", "Check Box":@FM:False$:@FM:False$:@FM:False$) + TypeArray = "Push Button" + Set_Property(OLECtrl, "OLE.CellType[4; All]", TypeArray) + Set_Property(OLECtrl, "OLE.CellAlignment[3; All]", 'C':@FM:'C':@FM:'L') + Set_Property(OLECtrl, "OLE.CellAlignment[4; All]", 'C':@FM:'C':@FM:'C') + Set_Property(OLECtrl, "OLE.List", FeatureFlagArray) + Set_Property(OLECtrl, "OLE.CellText[4; All]", 'View History') + Set_Property(OLECtrl, 'OLE.Border', 'XP Flat') + Set_Property(OLECtrl, 'OLE.Font', 'Segoe UI' : @SVM : '15') + Set_Property(OLECtrl, 'OLE.Redraw', True$) + Qualify = '' + Qualify<1> = 1 + Qualify<4> = 0 + Send_Message(OLECtrl, 'QUALIFY_EVENT', 'OLE.OnCheckChanged', Qualify) + Send_Message(OLECtrl, 'QUALIFY_EVENT', 'OLE.OnButtonClick', Qualify) + +return + diff --git a/LSL2/STPROC/NDW_MAIN_EVENTS.txt b/LSL2/STPROC/NDW_MAIN_EVENTS.txt index 57c5335..127575c 100644 --- a/LSL2/STPROC/NDW_MAIN_EVENTS.txt +++ b/LSL2/STPROC/NDW_MAIN_EVENTS.txt @@ -301,6 +301,10 @@ Event WINDOW.CREATE(CreateParam) Set_Property(@Window:'.MENU.MATERIAL.FQA_LABEL_CHECK', 'VISIBLE', 1) end + If MemberOf(@User4, 'PRODUCTION_LEADERSHIP') or MemberOf(@User4, 'OI_ADMIN') then + Set_Property(@Window:'.MENU.ADMIN.FEATURE_FLAGS', 'ENABLED', True$) + end + stat = Set_Property(@WINDOW,'TIMER',5000:@FM:1) ;* Start the Keep Alive Timer event and run every 20 Minutes * * * * * * * * * * * * Set_Property(@Window:".OLE_SNOOZE", "OLE.Icon", "BMPS\do-not-disturb-mode.png") @@ -845,7 +849,3 @@ FixFont: return - - - - diff --git a/LSL2/STPROC/NICA_ORDERS_CHECKLISTS_ACTIONS.txt b/LSL2/STPROC/NICA_ORDERS_CHECKLISTS_ACTIONS.txt new file mode 100644 index 0000000..7d1a9a1 --- /dev/null +++ b/LSL2/STPROC/NICA_ORDERS_CHECKLISTS_ACTIONS.txt @@ -0,0 +1,233 @@ +Function Nica_Orders_Checklists_Actions(Action, CalcColName, FSList, Handle, Name, FMC, Record, Status, OrigRecord, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) +/*********************************************************************************************************************** + + This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written + permission from Infineon. + + Name : Nica_Orders_Checklists_Flows_Actions + + Description : Handles calculated columns and MFS calls for the current table. + + Notes : This function uses @ID, @RECORD, and @DICT to make sure {ColumnName} references work correctly. + If called from outside of a calculated column these will need to be set and restored. + + Parameters : + Action [in] -- Name of the action to be taken + CalcColName [in] -- Name of the calculated column that needs to be processed. Normally this should only be + populated when the CalcField action is being used. + FSList [in] -- The list of MFSs and the BFS name for the current file or volume. This is an @SVM + delimited array, with the current MFS name as the first value in the array, and the BFS + name as the last value. Normally set by a calling MFS. + Handle [in] -- The file handle of the file or media map being accessed. Note, this does contain the + entire handle structure that the Basic+ Open statement would provide. Normally set by a + calling MFS. + Name [in] -- The name (key) of the record or file being accessed. Normally set by a calling MFS. + FMC [in] -- Various functions. Normally set by a calling MFS. + Record [in] -- The entire record (for record-oriented functions) or a newly-created handle (for + "get handle" functions). Normally set by a calling MFS. + Status [in/out] -- Indicator of the success or failure of an action. Normally set by the calling MFS but + for some actions can be set by the action handler to indicate failure. + OrigRecord [in] -- Original content of the record being processed by the current action. This is + automatically being assigned by the WRITE_RECORD and DELETE_RECORD actions within + BASE_MFS. + Param1-10 [in/out] -- Additional request parameter holders + ActionFlow [out] -- Used to control the action chain (see the ACTION_SETUP insert for more information.) + Can also be used to return a special value, such as the results of the CalcField + method. + + History : (Date, Initials, Notes) + 02/14/19 djs Original programmer. + +***********************************************************************************************************************/ + +#pragma precomp SRP_PreCompiler + +$Insert APP_INSERTS +$Insert FILE.SYSTEM.EQUATES +$Insert ACTION_SETUP +$Insert NICA_ORDERS_EQUATES +$Insert NICA_ORDERS_CHECKLISTS_EQUATES + +Equ Comma$ to ',' + +Declare function Error_Services, Database_Services, Logging_Services, Environment_Services, Nica_Orders_Services +Declare function SRP_Array +Declare subroutine Error_Services, Database_Services, Logging_Services, Set_Status, Reactor_Log_Services, Rds_Services +Declare subroutine Nica_Orders_Services + +If KeyID then GoSub Initialize_System_Variables + +Begin Case + + Case Action _EQC 'CalculateColumn' ; GoSub CalculateColumn + Case Action _EQC 'READ_RECORD_PRE' ; GoSub READ_RECORD_PRE + Case Action _EQC 'READ_RECORD' ; GoSub READ_RECORD + Case Action _EQC 'READONLY_RECORD_PRE' ; GoSub READONLY_RECORD_PRE + Case Action _EQC 'READONLY_RECORD' ; GoSub READONLY_RECORD + Case Action _EQC 'WRITE_RECORD_PRE' ; GoSub WRITE_RECORD_PRE + Case Action _EQC 'WRITE_RECORD' ; GoSub WRITE_RECORD + Case Action _EQC 'DELETE_RECORD_PRE' ; GoSub DELETE_RECORD_PRE + Case Action _EQC 'DELETE_RECORD' ; GoSub DELETE_RECORD + Case Otherwise$ ; Status = 'Invalid Action' + +End Case + +If KeyID then GoSub Restore_System_Variables + +If Assigned(ActionFlow) else ActionFlow = ACTION_CONTINUE$ + +Return ActionFlow + + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Calculated Columns +// +// The typical structure of a calculated column will look like this: +// +// Declare function Database_Services +// +// @ANS = Database_Services('CalculateColumn') +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +CalculateColumn: + + // Make sure the ActionFlow return variable is cleared in case nothing is calculated. + ActionFlow = '' + +return + + +// ----- MFS calls ----------------------------------------------------------------------------------------------------- + +READ_RECORD_PRE: + // In order to stop a record from being read in this action these lines of code must be used: + // + // OrigFileError = 100 : @FM : KeyID + // Status = 0 + // Record = '' + // ActionFlow = ACTION_STOP$ +return + +READ_RECORD: + // In order to stop a record from being read in this action these lines of code must be used: + // + // OrigFileError = 100 : @FM : KeyID + // Status = 0 + // Record = '' +return + +READONLY_RECORD_PRE: + // In order to stop a record from being read in this action these lines of code must be used: + // + // OrigFileError = 100 : @FM : KeyID + // Status = 0 + // Record = '' + // ActionFlow = ACTION_STOP$ +return + +READONLY_RECORD: + // In order to stop a record from being read in this action these lines of code must be used: + // + // OrigFileError = 100 : @FM : KeyID + // Status = 0 + // Record = '' +return + +WRITE_RECORD_PRE: +return + +WRITE_RECORD: + + // Build new ordered list of NICA_ORDERS_CHECKLISTS IDs to store in the corresponding NICA_ORDERS record. + // This is sort of like a custom relational index. + NicaOrdersId = Field(Name, '*', 1) + NicaChecklistId = Field(Name, '*', 2) + If NicaChecklistId NE '' then + If NicaOrdersId NE '' then + NicaOrdersRec = Database_Services('ReadDataRow', 'NICA_ORDERS', NicaOrdersId) + If Error_Services('NoError') then + NicaOrdersChecklistIds = NicaOrdersRec + Locate Name in NicaOrdersChecklistIds using @VM setting vPos else + Priorities = Xlate('NICA_ORDERS_CHECKLISTS', NicaOrdersChecklistIds, 'PRIORITY', 'X') + ChecklistArray = NicaOrdersChecklistIds:@FM:Priorities + ChecklistArray<1, -1> = Name + ChecklistArray<2, -1> = Xlate('NICA_CHECKLISTS', NicaChecklistId, 'PRIORITY', 'X') + ChecklistArray = SRP_Array('SortRows', ChecklistArray, 'AR2', 'ARRAY', @FM, @VM) + NicaOrdersRec = ChecklistArray<1> + Database_Services('WriteDataRow', 'NICA_ORDERS', NicaOrdersId, NicaOrdersRec, True$, False$, True$) + end + end + end + end + +return + +DELETE_RECORD_PRE: +return + +DELETE_RECORD: +return + + + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Internal GoSubs +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +ClearCursors: + + For counter = 0 to 8 + ClearSelect counter + Next counter + +return + + +Initialize_System_Variables: + + // Save these for restoration later + SaveDict = @DICT + SaveID = @ID + SaveRecord = @RECORD + OrigFileError = @FILE.ERROR + + // Now make sure @DICT, ID, and @RECORD are populated + CurrentDictName = '' + If @DICT then + DictHandle = @DICT<1, 2> + Locate DictHandle in @TABLES(5) Using @FM Setting fPos then + CurrentDictName = Field(@TABLES(0), @FM, fPos, 1) + end + end + + If CurrentDictName NE DictName then + Open DictName to @DICT else Status = 'Unable to initialize @DICT' + end + + @ID = KeyID + If Record else + // Record might not have been passed in. Read the record from the database table just to make sure. + @FILE.ERROR = '' + Open TableName to hTable then + FullFSList = hTable[1, 'F' : @VM] + BFS = FullFSList[-1, 'B' : @SVM] + LastHandle = hTable[-1, 'B' : \0D\] + FileHandle = \0D\ : LastHandle[1, @VM] + + Call @BFS(READO.RECORD, BFS, FileHandle, KeyID, FMC, Record, ReadOStatus) + end + end + @RECORD = Record + +return + + +Restore_System_Variables: + + Transfer SaveDict to @DICT + Transfer SaveID to @ID + Transfer SaveRecord to @RECORD + @FILE.ERROR = OrigFileError + +return + diff --git a/LSL2/STPROC/NICA_ORDERS_SERVICES.txt b/LSL2/STPROC/NICA_ORDERS_SERVICES.txt index ba8b1b7..5eea55d 100644 --- a/LSL2/STPROC/NICA_ORDERS_SERVICES.txt +++ b/LSL2/STPROC/NICA_ORDERS_SERVICES.txt @@ -27,11 +27,13 @@ $Insert SERVICE_SETUP $Insert REACTOR_EQUATES $Insert REACTOR_LOG_EQUATES $Insert NICA_ORDERS_EQUATES +$Insert NICA_ORDERS_CHECKLISTS_EQUATES +$Insert RLIST_EQUATES Declare function Environment_Services, Database_Services, Error_Services, Logging_Services, Nica_Orders_Services -Declare function Httpclient_Services, SRP_JSON, Reactor_Services, Reactor_Log_Services +Declare function Httpclient_Services, SRP_JSON, Reactor_Services, Reactor_Log_Services, SRP_Array Declare subroutine Error_Services, Btree.Extract, Database_Services, Logging_Services, Nica_Orders_Services, Delay -Declare subroutine Httpclient_Services, SRP_JSON, Mona_Services, Service_Services +Declare subroutine Httpclient_Services, SRP_JSON, Mona_Services, Service_Services, Extract_SI_Keys Machine = Environment_Services('GetServer') LogDate = Oconv(Date(), 'D4/') @@ -49,6 +51,7 @@ Options BOOLEAN = True$, False$ Options ENTITY_TYPES = 'REACTOR','REACTOR_LOG' Options ORDER_TYPES = 'INTRUSIVE_MAINT','CHANGEOVER','INITIATE_IDLE','IDLE','ASM_HTR_TUBE_CHANGE','ASM_HTR_ANNUAL_PM','ASM_HTR_SEMIANNUAL_PM','ASM_HTR_FIVE_AND_TEN_YEAR_PM','IQS_HGCV_ALARM' Options ORDER_STATUSES = 'new','creating','not-started','in-progress','cancelled','done' +Options REACTOR_TYPES = 'ASM','ASM+','HTR','EPP' //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // SERVICES @@ -101,7 +104,7 @@ End Service Service GetOrderUpdates() - + hSysLists = Database_Services('GetTableHandle', 'SYSLISTS') Lock hSysLists, ServiceKeyID then ActiveOrderIds = Nica_Orders_Services('GetActiveOrders') @@ -117,7 +120,6 @@ end service Service UpdateNicaFlags() - rv = '' ErrCode = '' ReactNos = Reactor_Services('GetReactorNumbers') Open 'REACTOR' to hReactor then @@ -125,6 +127,7 @@ Service UpdateNicaFlags() For each ReactNo in ReactNos using @FM ProveInActive = Reactor_Services('GetProveInActive', ReactNo) HgCVChecklistActive = (Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'IQS_HGCV_ALARM') NE '') + IntrMaintChecklistActive = (Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'INTRUSIVE_MAINT') NE '') Open 'REACTOR' to hReactor then ReadV CacheProveInActive from hReactor, ReactNo, REACTOR_PROVE_IN_ACTIVE$ then If CacheProveInActive NE ProveInActive then @@ -142,6 +145,14 @@ Service UpdateNicaFlags() end end end + ReadV CacheIntrMaintChecklistActive from hReactor, ReactNo, REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$ then + If CacheIntrMaintChecklistActive NE IntrMaintChecklistActive then + Lock hReactor, ReactNo then + WriteV IntrMaintChecklistActive on hReactor, ReactNo, REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$ else Null + Unlock hReactor, ReactNo else Null + end + end + end end CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactNo, 'REACT_MODE_KEY_IDS', 'X') CurrModeKey = CurrModeKey[-1, 'B':@VM] @@ -171,7 +182,7 @@ Service GetActiveOrders(EntityType=ENTITY_TYPES, EntityId, OrderTypes=ORDER_TYPE end service -Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES) +Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES, OrderFlows) ErrorMsg = '' EntityTypes = 'REACTOR,REACTOR_LOG' @@ -209,7 +220,7 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES) CurrActiveOrders = Nica_Orders_Services('GetActiveOrders', EntityType, EntityID, OrderType) OrderTypeAlreadyActive = (CurrActiveOrders NE '') - If OrderTypeAlreadyActive EQ False$ then + If ( (OrderTypeAlreadyActive EQ False$) or (OrderType EQ 'INTRUSIVE_MAINT') ) then Begin Case Case EntityType EQ 'REACTOR' @@ -219,84 +230,159 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES) ReactNo = Xlate(EntityType, EntityID, REACTOR_LOG_REACTOR$, 'X') End Case - // Call the API - NicaURL = Environment_Services("GetProveInApiUrl"):'/checklists?' - NicaURL := 'checklistType=':OrderType - NicaURL := '&reactorNumber=':ReactNo - - Retries = 3 - BackoffSeconds = 1 - IsSuccessful = False$ - - OrderId = '' - - Loop - while (IsSuccessful EQ False$ and Retries GT 0) - WaitSeconds = (3 - retries) * BackoffSeconds - Delay(WaitSeconds) - - Retries = Retries - 1 - - HttpResponseJson = Httpclient_Services('SendHTTPRequest', 'POST', NicaURL, 'Accept':@VM:'*/*', '', '', '', False$, False$, '', IgnoreCertErrors) - If HttpResponseJson NE '' then - ObjResponseJson = '' - If SRP_JSON(ObjResponseJson, 'Parse', HttpResponseJson) EQ '' then - OrderId = SRP_JSON(ObjResponseJson, 'GetValue', 'id') - If OrderId NE '' then - Convert @Lower.Case to @Upper.Case in OrderId - NicaOrderRec = '' - NicaOrderRec = OrderType - NicaOrderRec = SRP_JSON(ObjResponseJson, 'GetValue', 'state') - NicaOrderRec = EntityType - NicaOrderRec = EntityID - NicaOrderRec = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete') - If NicaOrderRec EQ False$ then - NicaOrderRec = SRP_JSON(ObjResponseJson, 'GetValue', 'progressPercentage') - end else - NicaOrderRec = 100 - end - - LogNicaOrderRec = NicaOrderRec - Swap @FM with ',' in LogNicaOrderRec - LogData = '' - LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') ; // Logging DTM - LogData<2> = Machine - LogData<3> = 'Nica order record to write: ':LogNicaOrderRec - Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$) - - Database_Services('WriteDataRow', 'NICA_ORDERS', OrderId, NicaOrderRec, True$, False$, False$) - If Error_Services('NoError') then - If ( (OrderType _EQC 'INITIATE_IDLE') and (EntityType _EQC 'REACTOR') ) then - Open 'REACTOR' to hReactor then - WriteV True$ to hReactor, ReactNo, REACTOR_IDLE_STARTUP_REQUIRED$ else - ErrorMsg = 'Error in ':Service:' service. Error setting IDLE_STARTUP_REQUIRED flag in REACTOR record.' - end - end + // Build request + Body = '' + NewSortedChecklistIds = '' + If OrderType NE 'INTRUSIVE_MAINT' then + // Original API endpoint just uses query params, no body. + NicaURL = Environment_Services("GetProveInApiUrl"):'/checklists?' + NicaURL := 'checklistType=':OrderType + NicaURL := '&reactorNumber=':ReactNo + end else + // New API endpoint uses JSON body instead of query params. + NicaURL = Environment_Services("GetProveInApiUrl"):'/order' + If OrderFlows NE '' then + ReactorType = Xlate('REACTOR', ReactNo, REACTOR_REACT_TYPE$, 'X') + NewChecklistIds = Nica_Orders_Services('GetFlowChecklistIds', OrderFlows, OrderType, ReactorType) + // Get incomplete checklists and add them to the new order + If CurrActiveOrders NE '' then + IncompleteChecklistIds = '' + Open 'DICT.NICA_ORDERS_CHECKLISTS' to hDict then + For each ActiveNicaOrdersId in CurrActiveOrders using @VM + IncompleteOrderChecklistIds = '' + Flag = '' + Query = 'NICA_ORDERS_ID':@VM:ActiveNicaOrdersId:@FM + Query := 'IS_COMPLETE':@VM:False$:@FM + Btree.Extract(Query, 'NICA_ORDERS_CHECKLISTS', hDict, IncompleteOrderChecklistIds, 'E', Flag) + If Flag EQ 0 then + IncompleteOrderChecklistIdsRot = SRP_Array('Rotate', IncompleteOrderChecklistIds, @VM, '*') + PrevChecklistIds = IncompleteOrderChecklistIdsRot<0, 2> + Swap '*' with @VM in PrevChecklistIds + IncompleteChecklistIds<0, -1> = PrevChecklistIds end - If ErrorMsg EQ '' then - IsSuccessful = True$ - Response = OrderId - end - end else - ErrorMsg = Error_Services('GetMessage') - end - end else - ErrorMsg = 'Error in ':Service:' service. Null OrderId returned from MesaProveInAPI.' + Next ActiveNicaOrdersId end + NewChecklistIds<0, -1> = IncompleteChecklistIds + end + + NewChecklistIds = SRP_Array('Clean', NewChecklistIds, 'TrimAndMakeUnique', @VM) + NewChecklistPriorities = Xlate('NICA_CHECKLISTS', NewChecklistIds, 'PRIORITY', 'X') + ChecklistArray = NewChecklistIds:@FM:NewChecklistPriorities + ChecklistArray = SRP_Array('SortRows', ChecklistArray, 'AR2', 'ARRAY', @FM, @VM) + NewSortedChecklistIds = ChecklistArray<1> + JsonRequest = '' + objJson = '' + If SRP_JSON(objJson, 'New', 'Object') then + SRP_JSON(objJson, 'SetValue', 'orderType', OrderType) + SRP_JSON(objJson, 'SetValue', 'reactorNumber', ReactNo) + NewChecklistInstIds = Xlate('NICA_CHECKLISTS', NewSortedChecklistIds, 'NICA_BASE_INSTRUCTION_ID', 'X') + SRP_JSON(objJson, 'SetValueArray', 'baseInstructionIds', NewChecklistInstIds, @VM) + Body = SRP_JSON(objJson, 'Stringify', 'Styled') + Convert @FM to '' in Body + SRP_JSON(objJson, 'Release') end else - ErrorMsg = 'Error in ':Service:' service. Error parsing JSON response from MesaProveInAPI.' + ErrorMsg = 'Error in ':Service:' service. Failed to initialize JSON object for request body.' end end else - ErrorMsg = 'Error in ':Service:' service. Null JSON response returned from MesaProveInAPI.' + ErrorMsg = 'Error in ':Service:' service. Null Orderflows variable passed in.' end - SRP_JSON(ObjResponseJson, 'Release') - Repeat - - If Environment_Services('IsProd') then - MonAResource = 'GRP_OPENINSIGHT_MES_OP_FE_MESAPROVEINAPI' - end else - MonAResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_MESAPROVEINAPI_DEV' end + + // Send the request + IsSuccessful = False$ + If ErrorMsg EQ '' then + + Retries = 3 + BackoffSeconds = 1 + OrderId = '' + + Loop + while (IsSuccessful EQ False$ and Retries GT 0) + WaitSeconds = (3 - retries) * BackoffSeconds + Delay(WaitSeconds) + + Retries = Retries - 1 + If Body NE '' then + Headers = 'Content-Type':@VM:'application/json':@FM:'Accept':@VM:'*/*' + end else + Headers = 'Accept':@VM:'*/*' + end + HttpResponseJson = Httpclient_Services('SendHTTPRequest', 'POST', NicaURL, Headers, Body, '', '', False$, False$, '', IgnoreCertErrors) + If HttpResponseJson NE '' then + ObjResponseJson = '' + If SRP_JSON(ObjResponseJson, 'Parse', HttpResponseJson) EQ '' then + OrderId = SRP_JSON(ObjResponseJson, 'GetValue', 'id') + If OrderId NE '' then + Convert @Lower.Case to @Upper.Case in OrderId + NicaOrderRec = '' + NicaOrderRec = OrderType + NicaOrderRec = SRP_JSON(ObjResponseJson, 'GetValue', 'state') + NicaOrderRec = EntityType + NicaOrderRec = EntityID + NicaOrderRec = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete') + If NicaOrderRec EQ False$ then + NicaOrderRec = SRP_JSON(ObjResponseJson, 'GetValue', 'progressPercentage') + end else + NicaOrderRec = 100 + end + + LogNicaOrderRec = NicaOrderRec + Swap @FM with ',' in LogNicaOrderRec + LogData = '' + LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') ; // Logging DTM + LogData<2> = Machine + LogData<3> = 'Nica order record to write: ':LogNicaOrderRec + Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$) + + Database_Services('WriteDataRow', 'NICA_ORDERS', OrderId, NicaOrderRec, True$, False$, False$) + If Error_Services('NoError') then + If ( (OrderType _EQC 'INITIATE_IDLE') and (EntityType _EQC 'REACTOR') ) then + Open 'REACTOR' to hReactor then + WriteV True$ to hReactor, ReactNo, REACTOR_IDLE_STARTUP_REQUIRED$ else + ErrorMsg = 'Error in ':Service:' service. Error setting IDLE_STARTUP_REQUIRED flag in REACTOR record.' + end + end + end + If OrderType _EQC 'INTRUSIVE_MAINT' then + // Create NICA_ORDERS_CHECKLISTS child records for each checklist + If NewSortedChecklistIds NE '' then + For each ChecklistId in NewSortedChecklistIds using @VM + Key = OrderId:'*':ChecklistId + NicaOrdersChecklistsRec = '' + NicaOrdersChecklistsRec = False$ + Database_Services('WriteDataRow', 'NICA_ORDERS_CHECKLISTS', Key, NicaOrdersChecklistsRec, True$, False$, True$) + If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage') + Until (ErrorMsg NE '') + Next ChecklistId + end else + ErrorMsg = 'Error in ':Service:' service. failed to create NICA_ORDERS_CHECKLIST records due to empty checklist array.' + end + end + If ErrorMsg EQ '' then + For each OrderId in CurrActiveOrders using @VM + Nica_Orders_Services('CancelOrder', Orderid) + Next OrderId + IsSuccessful = True$ + Response = OrderId + end + end else + ErrorMsg = Error_Services('GetMessage') + end + end else + ErrorMsg = 'Error in ':Service:' service. Null OrderId returned from MesaProveInAPI.' + end + SRP_JSON(ObjResponseJson, 'Release') + end else + ErrorMsg = 'Error in ':Service:' service. Error parsing JSON response from MesaProveInAPI.' + end + end else + ErrorMsg = 'Error in ':Service:' service. Null JSON response returned from MesaProveInAPI.' + end + Repeat + end + + // Send MonA status + MonaResource = Environment_Services('GetEnvironmentVariable', 'MonaNicaIntegrationServiceGroup') StatusName = 'CreateNicaOrder' If IsSuccessful then LogData = '' @@ -308,7 +394,7 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES) end else ErrorMsg = 'Error encountered when attempting to create Nica in order for reactor ':ReactNo:' of type ':OrderType Mona_Services('SendBufferedStatus', MonAResource, StatusName, 'Critical') - end + end end else ErrorMsg = 'Error encountered when attempting to create Nica order for entity ':EntityType:' ' :EntityID:' of type ':OrderType:'. Active order already exists.' end @@ -438,11 +524,7 @@ Service CancelOrder(OrderId) SRP_JSON(ObjResponseJson, 'Release') Repeat - If Environment_Services('IsProd') then - MonAResource = 'GRP_OPENINSIGHT_MES_OP_FE_MESAPROVEINAPI' - end else - MonAResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_MESAPROVEINAPI_DEV' - end + MonaResource = Environment_Services('GetEnvironmentVariable', 'MonaNicaIntegrationServiceGroup') StatusName = 'CancelNicaOrder' If ( (IsSuccessful EQ True$) and (Response NE 'error') and (ErrorMsg EQ '') ) then LogData = '' @@ -556,11 +638,8 @@ Service GetOrderStatusUpdate(OrderId) Loop while (IsSuccessful EQ False$ and Retries GT 0) WaitSeconds = (3 - Retries) * BackoffSeconds - Delay(WaitSeconds) - Retries = Retries - 1 - HttpResponseJson = Httpclient_Services('SendHTTPRequest', 'GET', ProveInUrl, 'Accept':@VM:'*/*', '', '', '', False$, False$, '', IgnoreCertErrors) If HttpResponseJson NE '' then @@ -576,15 +655,64 @@ Service GetOrderStatusUpdate(OrderId) end Database_Services('WriteDataRow', 'NICA_ORDERS', OrderId, NicaOrderRec, True$, False$, False$) If Error_Services('NoError') then + OrderType = NicaOrderRec + If (OrderType _EQC 'INTRUSIVE_MAINT') then + // Update NICA_ORDERS_CHECKLISTS records (documents) + Open 'NICA_ORDERS_CHECKLISTS' to hNicaOrdersChecklists then + // Parse documents array for their isComplete flag + ObjDocumentArray = SRP_JSON(ObjResponseJson, 'get', 'progresses') + If ObjDocumentArray NE 0 then + NumDocs = SRP_JSON(objDocumentArray, 'GetCount') + For DocIndex = 1 to NumDocs + DocumentId = SRP_JSON(ObjDocumentArray, 'GetValue', '[':DocIndex:'].baseInstructionId', '') + If DocumentId NE '' then + State = SRP_JSON(ObjDocumentArray, 'GetValue', '[':DocIndex:'].state', False$) + IsComplete = (State _EQC 'done') + ChecklistId = '' + Extract_SI_Keys('NICA_CHECKLISTS', 'NICA_BASE_INSTRUCTION_ID', DocumentId, ChecklistId) + ErrorCode = '' + If Not(Get_Status(ErrorCode)) then + If ChecklistId NE '' then + NicaOrdersChecklistsKey = OrderId:'*':ChecklistId + HaveOrderChecklistLock = Database_Services('GetKeyIDLock', 'NICA_ORDERS_CHECKLISTS', NicaOrdersChecklistsKey) + If HaveOrderChecklistLock then + NicaOrdersChecklistsRec = Database_Services('ReadDataRow', 'NICA_ORDERS_CHECKLISTS', NicaOrdersChecklistsKey) + If Error_Services('NoError') then + NicaOrdersChecklistsRec = IsComplete + NicaOrdersChecklistsRec = State + Database_Services('WriteDataRow', 'NICA_ORDERS_CHECKLISTS', NicaOrdersChecklistsKey, NicaOrdersChecklistsRec, True$, False$, False$) + If Error_Services('HasError') then + Database_Services('ReleaseKeyIDLock', 'NICA_ORDERS_CHECKLISTS', NicaOrdersChecklistsKey) + end + end + end + end else + ErrorMsg = 'Error in ':Service:' service. No NICA_CHECKLISTS record found for documentId ':DocumentId:'.' + end + end else + ErrorMsg = 'Error in ':Service:' service. Error calling Extract_SI_Keys on NICA_CHECKLISTS table. Error code: ':ErrorCode:'.' + end + end else + ErrorMsg = 'Error in ':Service:' service. Null documentId return from Json response.' + end + Next DocIndex + SRP_JSON(ObjDocumentArray, 'Release') + end else + ErrorMsg = 'Error in ':Service:' service. Error retrieving documents array from Json response.' + end + end else + ErrorMsg = 'Error in ':Service:' service. Error opening NICA_ORDERS_CHECKLISTS table.' + end + end + If IsComplete EQ True$ then - OrderType = NicaOrderRec If ( (OrderType _EQC 'IDLE') and (EntityType _EQC 'REACTOR') ) then Open 'REACTOR' to hReactor then WriteV False$ on hReactor, ReactNo, REACTOR_IDLE_STARTUP_REQUIRED$ else ErrorMsg = 'Error in ':Service:' service. Error setting IDLE_STARTUP_REQUIRED flag in REACTOR record.' end end - end + end If ErrorMsg EQ '' then Response = True$ end else Response = False$ @@ -594,16 +722,11 @@ Service GetOrderStatusUpdate(OrderId) ErrorMsg = Error_Services('GetMessage') end end + SRP_JSON(ObjResponseJson, 'Release') end - SRP_JSON(ObjResponseJson, 'Release') Repeat - If Environment_Services('IsProd') then - MonAResource = 'GRP_OPENINSIGHT_MES_OP_FE_MESAPROVEINAPI' - end else - MonAResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_MESAPROVEINAPI_DEV' - end - + MonaResource = Environment_Services('GetEnvironmentVariable', 'MonaNicaIntegrationServiceGroup') StatusName = 'GetNicaOrderUpdate' If IsSuccessful and Response NE 'error' then LogData = '' @@ -641,8 +764,50 @@ Service GetOrderStatusUpdate(OrderId) end service +Service GetFlowChecklistIds(NicaOrderFlowIds, NicaOrderFlowType=ORDER_TYPES, ReactorTypes=REACTOR_TYPES) + + ErrorMsg = '' + FlowChecklistIds = '' + If ( (NicaOrderFlowIds NE '') and (NicaOrderFlowType NE '') and (ReactorTypes NE '') ) then + Query = 'SELECT NICA_CHECKLISTS ' + For each NicaOrderFlowId in NicaOrderFlowIds using @VM setting vPos + If vPos GT 1 then Query := 'OR ' + Query := 'WITH NICA_ORDER_FLOW_IDS EQ ':Quote(NicaOrderFlowId):' ' + Next NicaOrderFlowId + Query := 'AND WITH NICA_ORDER_FLOW_TYPE EQ ':Quote(NicaOrderFlowType):' ' + For each ReactorType in ReactorTypes using @VM setting vPos + If vPos EQ 1 then + Query := 'AND ' + end else + Query := 'OR ' + end + Query := 'WITH REACTOR_TYPES EQ ':Quote(ReactorType):' ' + Next ReactorType + Query := 'BY PRIORITY' + RList(Query, TARGET_ACTIVELIST$, '', '', '') + ErrCode = '' + If Not(Get_Status(ErrCode)) then + EOF = False$ + Loop + Readnext KeyId else EOF = True$ + Until EOF + FlowChecklistIds<0, -1> = KeyId + Repeat + end else + ErrorMsg = 'Error in ':Service:' service. Error calling RList. Error code: ':ErrCode:'.' + end + end else + ErrorMsg = 'Error in ':Service:' service. Null NicaOrderFlowIds, NicaOrderFlowType, or ReactorTypes Passed in.' + end + If ErrorMsg NE '' then + Error_Services('Add', ErrorMsg) + end else + Response = FlowChecklistIds + end + +end service + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Internal GoSubs //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - diff --git a/LSL2/STPROC/REACTOR_LOG_SERVICES.txt b/LSL2/STPROC/REACTOR_LOG_SERVICES.txt index 20c5b84..2e302fd 100644 --- a/LSL2/STPROC/REACTOR_LOG_SERVICES.txt +++ b/LSL2/STPROC/REACTOR_LOG_SERVICES.txt @@ -32,6 +32,7 @@ $Insert REACT_ITEM_EQUATES $Insert RDS_EQUATES $Insert REACT_SERVS_EQUATES $Insert REACTOR_EQUATES +$Insert FEATURE_FLAGS_EQUATES Declare function Database_Services, Reactor_Log_Services, Obj_React_Item, Set_Status, Errmsg, Error_Services, Utility Declare function obj_Calendar, NextKey, SRP_JSON, Datetime, Reactor_Services, React_Servs_Services, Logging_Services @@ -86,8 +87,6 @@ Service SignReactorLog(ReactorLogID, UserID) ErrCode = '' ErrorMsg = '' If RowExists('REACTOR_LOG', ReactorLogID) then - // Update any NICA checklist order statuses - Nica_Orders_Services('GetOrderUpdates') If Error_Services('NoError') then If RowExists('LSL_USERS', UserID) then ReactorLogRec = Database_Services('ReadDataRow', 'REACTOR_LOG', ReactorLogID) @@ -199,96 +198,110 @@ Service SignReactorLog(ReactorLogID, UserID) If ErrorMsg EQ '' then // Check reactor prevent maintenance records CurServices = ReactorLogRec - Loop TestChar = CurServices[-1,1] Until TestChar NE @VM or CurServices = '' CurServices[-1,1] = '' Repeat - - CCnt = COUNT(CurServices,@VM) + (CurServices NE '') - - For N = 1 to CCnt - CurService = CurServices<1,N> - - Open 'REACTOR_PM' to ReactorPMTable then - - Open 'DICT.REACTOR_PM' to DictReactorPMTable then - - SearchStr = 'REACT_SERV_ID':@VM:CurService:@FM - SearchStr := 'REACTOR':@VM:ReactorNo:@FM - SearchStr := 'COMPLETE_DATE':@VM:'':@FM - - Btree.Extract(SearchStr, 'REACTOR_PM', DictReactorPMTable, OpenPMKeys, '', Flag) - - If Flag EQ 0 then - EndDate = Date() - * Add Maintenance metric reset - AssocMetrics = '' - AssocMetrics = React_Servs_Services('GetAssociatedMetrics', CurService) - If AssocMetrics NE '' then - MetricCount = Dcount(AssocMetrics, @VM) - For MetricIndex = 1 to MetricCount - ThisMetric = AssocMetrics<1,MetricIndex> - Reactor_Services('ResetWfrMetric', ReactorNo, ThisMetric) - Next MetricIndex - End - If OpenPMKeys NE '' then - * If more than one, which should not happen then close all - KCnt = COUNT( OpenPMKeys, @VM ) + (OpenPMKeys NE '') - PMResched = False$ - For I = 1 to KCnt - ThisOpenPMKey = OpenPMKeys<1,I> - - otlParms = 'REACTOR_PM':@RM - otlParms := ThisOpenPMKey:@RM - otlParms := REACTOR_PM_COMPLETE_DATE$:@VM:REACTOR_PM_COMP_RL_NO$:@RM - otlParms := EndDate:@VM:ReactorLogID:@RM - If ThisOpenPMKey NE '' then - obj_Post_Log('Create',otlParms) ;* Closes previous PM record - If Not(Get_Status(ErrCode)) then - * Schedule next PM - PMDays = XLATE( 'REACT_SERVS', CurService, REACT_SERVS_PM_DAYS$, 'X' ) - IF PMDays NE '' THEN - If PMResched EQ False$ then - PMNo = NextKey('REACTOR_PM') - If Error_Services('NoError') then - NewPMRec = '' - NewPMRec = UserID - NewPMRec = Date() - NewPMRec = ReactorNo - NewPMRec = EndDate - NewPMRec = EndDate + PMDays - NewPMRec = CurService - NewPMRec = ReactorLogID - - Database_Services('WriteDataRow', 'REACTOR_PM', PMNo, NewPMRec) - If Error_Services('NoError') then - PMResched = True$ - end else - ErrorMsg = Error_Services('GetMessage') - end - end else - ErrorMsg = 'Error in ':Service:' service. Error calling NextKey("REACTOR_PM").' - end - end - end - end else - ErrorMsg = 'Error in ':Service:' service. Error calling obj_Post_Log("Create"). Error code: ':ErrCode - end - end - Next I - end - end else - ErrorMsg = 'Error in ':Service:' serivce. Error calling Btree.Extract. Error code: ':Flag - end - end else - ErrorMsg = 'Error in ':Service:' service. Error opening DICT.REACTOR_PM table.' + CCnt = COUNT(CurServices,@VM) + (CurServices NE '') + IntrMaintFeatureFlag = Xlate('FEATURE_FLAGS', 'NICA_INTRUSIVE_MAINTENANCE', FEATURE_FLAGS.ENABLED$, 'X') + If ( (IntrMaintFeatureFlag EQ True$) and (CCnt GT 0) ) then + IntrMaintFlowCodes = React_Servs_Services('GetIntrMaintFlowIds', CurServices) + If IntrMaintFlowCodes NE '' then + // Create INTRUSIVE_MAINT NICA order + Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactorNo, 'INTRUSIVE_MAINT', IntrMaintFlowCodes) + If Error_Services('NoError') then + LogFlows = IntrMaintFlowCodes + Convert @VM to ', ' in LogFlows + Reactor_Log_Services('AddComment', ReactorNo, 'Intrusive Maintenance initiated for flow(s) ':LogFlows:'.', UserID) + end else + ErrorMsg = Error_Services('GetMessage') end - end else - ErrorMsg = 'Error in ':Service:' service. Error opening REACTOR_PM table.' end - Next N + end + If ErrorMsg EQ '' then + For ReactServsIndex = 1 to CCnt + CurService = CurServices<1,ReactServsIndex> + Open 'REACTOR_PM' to ReactorPMTable then + Open 'DICT.REACTOR_PM' to DictReactorPMTable then + + SearchStr = 'REACT_SERV_ID':@VM:CurService:@FM + SearchStr := 'REACTOR':@VM:ReactorNo:@FM + SearchStr := 'COMPLETE_DATE':@VM:'':@FM + + Btree.Extract(SearchStr, 'REACTOR_PM', DictReactorPMTable, OpenPMKeys, '', Flag) + + If Flag EQ 0 then + EndDate = Date() + * Add Maintenance metric reset + AssocMetrics = '' + AssocMetrics = React_Servs_Services('GetAssociatedMetrics', CurService) + If AssocMetrics NE '' then + MetricCount = Dcount(AssocMetrics, @VM) + For MetricIndex = 1 to MetricCount + ThisMetric = AssocMetrics<1,MetricIndex> + Reactor_Services('ResetWfrMetric', ReactorNo, ThisMetric) + Next MetricIndex + End + If OpenPMKeys NE '' then + * If more than one, which should not happen then close all + KCnt = COUNT( OpenPMKeys, @VM ) + (OpenPMKeys NE '') + PMResched = False$ + For I = 1 to KCnt + ThisOpenPMKey = OpenPMKeys<1,I> + + otlParms = 'REACTOR_PM':@RM + otlParms := ThisOpenPMKey:@RM + otlParms := REACTOR_PM_COMPLETE_DATE$:@VM:REACTOR_PM_COMP_RL_NO$:@RM + otlParms := EndDate:@VM:ReactorLogID:@RM + If ThisOpenPMKey NE '' then + obj_Post_Log('Create',otlParms) ;* Closes previous PM record + If Not(Get_Status(ErrCode)) then + * Schedule next PM + PMDays = XLATE( 'REACT_SERVS', CurService, REACT_SERVS_PM_DAYS$, 'X' ) + IF PMDays NE '' THEN + If PMResched EQ False$ then + PMNo = NextKey('REACTOR_PM') + If Error_Services('NoError') then + NewPMRec = '' + NewPMRec = UserID + NewPMRec = Date() + NewPMRec = ReactorNo + NewPMRec = EndDate + NewPMRec = EndDate + PMDays + NewPMRec = CurService + NewPMRec = ReactorLogID + + Database_Services('WriteDataRow', 'REACTOR_PM', PMNo, NewPMRec) + If Error_Services('NoError') then + PMResched = True$ + end else + ErrorMsg = Error_Services('GetMessage') + end + end else + ErrorMsg = 'Error in ':Service:' service. Error calling NextKey("REACTOR_PM").' + end + end + end + end else + ErrorMsg = 'Error in ':Service:' service. Error calling obj_Post_Log("Create"). Error code: ':ErrCode + end + end + Next I + end + end else + ErrorMsg = 'Error in ':Service:' serivce. Error calling Btree.Extract. Error code: ':Flag + end + end else + ErrorMsg = 'Error in ':Service:' service. Error opening DICT.REACTOR_PM table.' + end + end else + ErrorMsg = 'Error in ':Service:' service. Error opening REACTOR_PM table.' + end + Next ReactServsIndex + end else + ErrorMsg = 'Error in ':Service:' service. Error creating INTRUSIVE_MAINT NICA order.' + end end end end @@ -319,6 +332,8 @@ Service SignReactorLog(ReactorLogID, UserID) end If ErrorMsg EQ '' then + // Pull in a fresh copy of the record in case comments were added above + ReactorLogRec = Database_Services('ReadDataRow', 'REACTOR_LOG', ReactorLogID) // Set signature, end date, and end time ReactorLogRec = UserID ReactorLogRec = Date() @@ -349,6 +364,17 @@ Service ClearSignature(RLKey) RLRec = '' RLRec = '' Database_Services('WriteDataRow', 'REACTOR_LOG', RLKey, RLRec, True$, False$, False$) + If Error_Services('NoError') then + // Cancel active Intrusive Maintenance NICA orders in the event the maintenance user set an + // invalid service id or a difference service was required. + ReactorNo = RLRec + CurrActiveOrders = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactorNo, 'INTRUSIVE_MAINT') + If CurrActiveOrders NE '' then + For each ActiveIntrMaintOrderId in CurrActiveOrders using @VM + Nica_Orders_Services('CancelOrder', ActiveIntrMaintOrderId) + Next ActiveIntrMaintOrderId + end + end end end diff --git a/LSL2/STPROC/REACTOR_SERVICES.txt b/LSL2/STPROC/REACTOR_SERVICES.txt index 3776fc7..1f06156 100644 --- a/LSL2/STPROC/REACTOR_SERVICES.txt +++ b/LSL2/STPROC/REACTOR_SERVICES.txt @@ -52,6 +52,7 @@ $Insert WO_LOG_EQUATES $Insert REACTOR_DAILY_UPTIME_EQUATES $Insert REACT_LL_EQUATES $Insert IQS_VIOL_DATA_EQUATES +$Insert FEATURE_FLAGS_EQUATES Equ WOCust$ to 2 @@ -1884,8 +1885,8 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force ErrorMsg = '' IF ForceModeChange NE True$ then ForceModeChange = False$ If ( (UserID NE '') and (ReactNo NE '') and (Mode NE '') and (ModeSubCat NE '')) then - CurTime = time() - CurDate = date() + CurTime = Time() + CurDate = Date() NGPrevModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactNo, REACTOR_CHILD_KEY_IDS_REACT_MODE_KEY_IDS$, 'X')<1, 1> PrevModeRec = Reactor_Services('GetReactCurrModeRec', ReactNo) SelectedModeRec = Database_Services('ReadDataRow', 'REACTOR_MODES', Mode) @@ -1913,18 +1914,18 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force CommentException = True$ End Case - if ((ModeText NE '') and (Len(ModeText) GE 4)) OR CommentException then + If ((ModeText NE '') and (Len(ModeText) GE 4)) OR CommentException then NewModeCategory = SelectedModeRec OldRlRecordKey = PrevModeRec - if Reactor_Log_Services('IsMaint', OldRlRecordKey) AND ForceModeChange EQ False$ then - if (NOT(Reactor_Log_Services('IsSigned', OldRlRecordKey))) then + If Reactor_Log_Services('IsMaint', OldRlRecordKey) AND ForceModeChange EQ False$ then + If (NOT(Reactor_Log_Services('IsSigned', OldRlRecordKey))) then ErrorMsg = 'The current mode cannot be changed until the technician has signed off on the Reactor Log.' end end ModeSubCatID = '' - LOCATE ModeSubCat in SelectedModeRec using @VM setting SvcPos then + Locate ModeSubCat in SelectedModeRec using @VM setting SvcPos then NewModeSvcList = SelectedModeRec ModeSubCatID = NewModeSvcList<1,SvcPos> end else @@ -1957,7 +1958,7 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force If ErrorMsg EQ '' and IdleStartupRequired and Mode[1, 2] EQ 'UP' then ProveInTypes = Reactor_Services('GetActiveProveInTypes', ReactNo) IdleStartupActive = False$ - for each ProveInType in ProveInTypes using @VM setting Idx + For each ProveInType in ProveInTypes using @VM setting Idx If ProveInType EQ 'IDLE' then IdleStartupActive = True$ end @@ -1978,6 +1979,17 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force end end + If ErrorMsg EQ '' then + IntrMaintFeatureFlag = Xlate('FEATURE_FLAGS', 'NICA_INTRUSIVE_MAINTENANCE', FEATURE_FLAGS.ENABLED$, 'X') + If IntrMaintFeatureFlag EQ True$ then + ActiveIntrusiveMaintChecklists = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'INTRUSIVE_MAINT') + IntrusiveMaintChecklistActive = (ActiveIntrusiveMaintChecklists NE '') + If ( IntrusiveMaintChecklistActive and (SelE10State _EQC 'Productive') ) then + ErrorMsg = "An Intrusive Maintenance Checklist is active for this reactor and must be completed or overridden in order to change to a productive state." + end + end + end + If ErrorMsg EQ '' then If Len(Mode) GT 10 and Mode[1, 10] EQ 'CHANGEOVER' then Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactNo, 'CHANGEOVER') @@ -3707,5 +3719,3 @@ ClearCursors: return - - diff --git a/LSL2/STPROC/REACT_MODE_CHG_NG_EVENTS.txt b/LSL2/STPROC/REACT_MODE_CHG_NG_EVENTS.txt index f4b1d8a..a82626b 100644 --- a/LSL2/STPROC/REACT_MODE_CHG_NG_EVENTS.txt +++ b/LSL2/STPROC/REACT_MODE_CHG_NG_EVENTS.txt @@ -288,78 +288,109 @@ Event APPLY.CLICK() end else Error_Services('DisplayError') - ActiveProveIn = Reactor_Services('GetProveInActive', ReactNo) - ActiveHgCVChecklists = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'IQS_HGCV_ALARM') - HgCVChecklistActive = (ActiveHgCVChecklists NE '') + ReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactNo) + If Error_Services('NoError') then + ActiveProveInOrder = ReactorRec + ActiveHgCVOrder = ReactorRec + ActiveIntrMaintOrder = ReactorRec - Begin Case - - Case ActiveProveIn + Begin Case - OverrideGroups = 'LEAD':@VM:'SUPERVISOR' - UserMsg = "Reactor prove in must be processed in NICA. Override required from a lead or supervisor to bypass NICA." - UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg) - Override = UserVerification<1> - If Override EQ True$ then - ProveInOrderIds = Reactor_Services('GetActiveProveInOrderIds', ReactNo) - If (DCount(ProveInOrderIds, @VM) GT 1) then - ProveInTypes = Xlate('NICA_ORDERS', ProveInOrderIds, 'ORDER_TYPE', 'X') - OverrideData = Dialog_Box('PROVE_IN_OVERRIDE', @Window, ReactNo) - ProveInTypesToCancel = OverrideData<1, 1> - ResponseComment = '' - For each ProveInType in ProveInTypes using @VM setting Idx - Locate ProveInType in ProveInTypesToCancel using @VM setting Unused then - ProveInOrderId = ProveInOrderIds<0, Idx> - Nica_Orders_Services('CancelOrder', ProveInOrderId) - If ResponseComment NE '' then ResponseComment := ', ' - ResponseComment := ProveInType - end - Next ProveInType - ResponseComment := ': ' - ResponseComment := OverrideData<2, 1> - Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'REACTOR_PROVE_IN') - Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText) - If Error_Services('NoError') then End_Dialog(@Window, NewMode) - end else - ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2> - If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then - Nica_Orders_Services('CancelOrder', ProveInOrderIds<0, 1>) + Case ActiveProveInOrder + + OverrideGroups = 'LEAD':@VM:'SUPERVISOR' + UserMsg = "Reactor prove in must be processed in NICA. Override required from a lead or supervisor to bypass NICA." + UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg) + Override = UserVerification<1> + If Override EQ True$ then + ProveInOrderIds = Reactor_Services('GetActiveProveInOrderIds', ReactNo) + If (DCount(ProveInOrderIds, @VM) GT 1) then + ProveInTypes = Xlate('NICA_ORDERS', ProveInOrderIds, 'ORDER_TYPE', 'X') + OverrideData = Dialog_Box('PROVE_IN_OVERRIDE', @Window, ReactNo) + ProveInTypesToCancel = OverrideData<1, 1> + ResponseComment = '' + For each ProveInType in ProveInTypes using @VM setting Idx + Locate ProveInType in ProveInTypesToCancel using @VM setting Unused then + ProveInOrderId = ProveInOrderIds<0, Idx> + Nica_Orders_Services('CancelOrder', ProveInOrderId) + If ResponseComment NE '' then ResponseComment := ', ' + ResponseComment := ProveInType + end + Next ProveInType + ResponseComment := ': ' + ResponseComment := OverrideData<2, 1> Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'REACTOR_PROVE_IN') Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText) - If Error_Services('NoError') then End_Dialog(@Window, NewMode) + If Error_Services('NoError') then End_Dialog(@Window, NewMode) + end else + ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2> + If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then + Nica_Orders_Services('CancelOrder', ProveInOrderIds<0, 1>) + Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'REACTOR_PROVE_IN') + Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText) + If Error_Services('NoError') then End_Dialog(@Window, NewMode) + end else + Message_Box(@Window, 'You must enter a comment greater than 4 letters!', 'Error', MSG_ICON_EXCLAM$) + end + end + end + + Case ActiveHgCVOrder + + OverrideGroups = 'LEAD':@VM:'SUPERVISOR' + UserMsg = "HgCV OCAP Checklist must be completed in NICA. Override required from a lead or supervisor to bypass NICA." + UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg) + Override = UserVerification<1> + If Override then + + ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2> + If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then + ActiveHgCVOrders = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'IQS_HGCV_ALARM') + For each ActiveHgCVOrderId in ActiveHgCVOrders using @VM + Nica_Orders_Services('CancelOrder', ActiveHgCVOrderId) + Next ActiveHgCVOrderId + + Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'HGCV_OCAP_CHECKLIST') + + Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText) + If Error_Services('NoError') then + End_Dialog(@Window, NewMode) + end end else Message_Box(@Window, 'You must enter a comment greater than 4 letters!', 'Error', MSG_ICON_EXCLAM$) end end - end - - Case HgCVChecklistActive + + Case ActiveIntrMaintOrder - OverrideGroups = 'LEAD':@VM:'SUPERVISOR' - UserMsg = "HgCV OCAP Checklist must be completed in NICA. Override required from a lead or supervisor to bypass NICA." - UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg) - Override = UserVerification<1> - If Override then - - ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2> - If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then + OverrideGroups = 'LEAD':@VM:'SUPERVISOR' + UserMsg = "Intrusive Maintenance Checklist must be completed in NICA. Override required from a lead or supervisor to bypass NICA." + UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg) + Override = UserVerification<1> + If Override then - For each ActiveHgCVOrderId in ActiveHgCVChecklists using @VM - Nica_Orders_Services('CancelOrder', ActiveHgCVOrderId) - Next ActiveHgCVChecklistId + ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2> + If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then + ActiveIntrMaintOrders = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'INTRUSIVE_MAINT') + For each ActiveIntrMaintOrderId in ActiveIntrMaintOrders using @VM + Nica_Orders_Services('CancelOrder', ActiveIntrMaintOrderId) + Next ActiveIntrMaintOrderId + + Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'INTR_MAINT_CHECKLIST') - Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'HGCV_OCAP_CHECKLIST') - - Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText) - If Error_Services('NoError') then - End_Dialog(@Window, NewMode) + Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText) + If Error_Services('NoError') then + End_Dialog(@Window, NewMode) + end + end else + Message_Box(@Window, 'You must enter a comment greater than 4 letters!', 'Error', MSG_ICON_EXCLAM$) end - end else - Message_Box(@Window, 'You must enter a comment greater than 4 letters!', 'Error', MSG_ICON_EXCLAM$) end - end - End Case - + + End Case + end else + Error_Services('DisplayError') + end end end @@ -520,8 +551,3 @@ HideDropDownComments: return - - - - - diff --git a/LSL2/STPROC/REACT_SERVS_SERVICES.txt b/LSL2/STPROC/REACT_SERVS_SERVICES.txt index dfc92f6..3c61fce 100644 --- a/LSL2/STPROC/REACT_SERVS_SERVICES.txt +++ b/LSL2/STPROC/REACT_SERVS_SERVICES.txt @@ -23,12 +23,45 @@ Compile function React_Servs_Services(@Service, @Params) #pragma precomp SRP_PreCompiler -$Insert LOGICAL +$Insert SERVICE_SETUP +$Insert APP_INSERTS $Insert RLIST_EQUATES $Insert REACT_SERVS_EQUATES -Declare function Database_Services, Error_Services, SRP_JSON, React_Servs_Services -Declare subroutine SRP_JSON, Error_Services, React_Servs_Services +Equ NEW_EXIST$ To 0 +Equ NEXT_CUR$ To 1 +Equ ADD_EXIST$ to 2 +Equ THERMOCOUPLE_FRONT$ To 237 +Equ THERMOCOUPLE_SIDE$ To 238 +Equ THERMOCOUPLE_REAR$ To 239 +Equ LAMP_ZONE_1A$ to 10700 +Equ LAMP_ZONE_1B$ to 10701 +Equ LAMP_ZONE_1C$ to 10702 +Equ LAMP_ZONE_2A$ to 10703 +Equ LAMP_ZONE_2B$ to 10704 +Equ LAMP_ZONE_3A$ to 10705 +Equ LAMP_ZONE_3B$ to 10706 +Equ LAMP_ZONE_3C$ to 10707 +Equ LAMP_ZONE_3D$ to 10708 +Equ LAMP_ZONE_4$ to 10709 +Equ LAMP_ZONE_5$ to 10710 +Equ LAMP_ZONE_8A$ to 10711 +Equ LAMP_ZONE_8B$ to 10712 +Equ LAMP_ZONE_9B$ to 10713 +Equ LAMP_ZONE_6A$ to 10714 +Equ LAMP_ZONE_7A$ to 10715 +Equ LAMP_ZONE_10A$ to 10716 +Equ LAMP_ZONE_10B$ to 10717 +Equ LAMP_ZONE_9A$ to 10718 +Equ LAMP_ZONE_6C$ to 10720 +Equ LAMP_ZONE_6B$ to 10721 +Equ LAMP_ZONE_7B$ to 10722 +Equ LAMP_ZONE_11A$ to 10723 +Equ LAMP_ZONE_11B$ to 10724 +Equ LAMP_ZONE_12$ to 10725 + +Declare function Database_Services, Error_Services, SRP_JSON, React_Servs_Services, SrP_Array +Declare subroutine SRP_JSON, Error_Services, React_Servs_Services, Extract_Si_Keys GoToService @@ -39,6 +72,67 @@ Return Response or "" //----------------------------------------------------------------------------- +Service GetIntrMaintFlowIds(ReactServIds) + + ErrorMsg = '' + IntrMaintFlowIds = '' + If ReactServIds NE '' then + ReactServIds = SRP_Array('Clean', ReactServIds, 'TrimAndMakeUnique', @VM) + Convert @VM to @FM in ReactServIds + If RowExists('REACT_SERVS', ReactServIds) then + IntrusiveReactServs = '' + Extract_Si_Keys('REACT_SERVS', 'IS_INTRUSIVE', True$, IntrusiveReactServs) + ErrCode = '' + If Not(Get_Status(ErrCode)) then + Convert @FM to @VM in ReactServIds + ReactServIds = SRP_Array('Join', IntrusiveReactServs, ReactServIds, 'AND', @VM) + If ReactServIds NE '' then + IntrMaintFlowIds = Xlate('REACT_SERVS', ReactServIds, REACT_SERVS_INTR_MAINT_FLOW_ID$, 'X') + NumTCSvcs = 0 + NumLampSvcs = 0 + For each ReactServId in ReactServIds using @VM + NumTCSvcs += ( (ReactServId EQ THERMOCOUPLE_FRONT$) or (ReactServId EQ THERMOCOUPLE_SIDE$) or (ReactServId EQ THERMOCOUPLE_REAR$) ) + NumLampSvcs += (ReactServId EQ LAMP_ZONE_1A$) or (ReactServId EQ LAMP_ZONE_1B$) or (ReactServId EQ LAMP_ZONE_1C$) | + or (ReactServId EQ LAMP_ZONE_2A$) or (ReactServId EQ LAMP_ZONE_2B$) or (ReactServId EQ LAMP_ZONE_3A$) | + or (ReactServId EQ LAMP_ZONE_3B$) or (ReactServId EQ LAMP_ZONE_3C$) or (ReactServId EQ LAMP_ZONE_3D$) | + or (ReactServId EQ LAMP_ZONE_4$) or (ReactServId EQ LAMP_ZONE_5$) or (ReactServId EQ LAMP_ZONE_8A$) | + or (ReactServId EQ LAMP_ZONE_8B$) or (ReactServId EQ LAMP_ZONE_9B$) or (ReactServId EQ LAMP_ZONE_6A$) | + or (ReactServId EQ LAMP_ZONE_7A$) or (ReactServId EQ LAMP_ZONE_10A$) or (ReactServId EQ LAMP_ZONE_10B$) | + or (ReactServId EQ LAMP_ZONE_9A$) or (ReactServId EQ LAMP_ZONE_6C$) or (ReactServId EQ LAMP_ZONE_6B$) | + or (ReactServId EQ LAMP_ZONE_7B$) or (ReactServId EQ LAMP_ZONE_11A$) or (ReactServId EQ LAMP_ZONE_11B$) | + or (ReactServId EQ LAMP_ZONE_12$) + Until ( (NumTCSvcs GT 1) and (NumLampSvcs GT 1) ) + Next ReactServId + If (NumLampSvcs GT 1) then + // If two or more lamps are replaced, use flow "C" instead + // of "I" per EpiMSA WI-0022-1 Rev C Intrusive Maintenance Checklist.xlsx + Swap 'I' with 'C' in IntrMaintFlowIds + end + If (NumTCSvcs GT 1) then + // If two or more thermocouples are replaced, use flow "C" instead + // of "C" per EpiMSA WI-0022-1 Rev C Intrusive Maintenance Checklist.xlsx + Swap 'E' with 'C' in IntrMaintFlowIds + end + end + end else + ErrorMsg = 'Error in service ':Service:'. Error calling Extract_Si_Keys on the IS_INTRUSIVE column within the REACT_SERVS table.' + end + end else + Convert @FM to ',' in ReactServIds + ErrorMsg = 'Error in service ':Service:'. One or more keys, ':ReactServIds:', do not exist in the REACT_SERVS table.' + end + end else + ErrorMsg = 'Error in service ':Service:'. Null ReactServIds passed in.' + end + If ErrorMsg NE '' then + Error_Services('Add', ErrorMsg) + end else + Response = SRP_Array('Clean', IntrMaintFlowIds, 'TrimAndMakeUnique', @VM) + end + +end service + + Service GetReactMetrics() Response = '' diff --git a/LSL2/STPROC/TEST_CRISP.txt b/LSL2/STPROC/TEST_CRISP.txt deleted file mode 100644 index 975c827..0000000 --- a/LSL2/STPROC/TEST_CRISP.txt +++ /dev/null @@ -1,33 +0,0 @@ -Function Test_Crisp() -#pragma precomp SRP_PreCompiler - -Declare function Memberof, Msg, Database_Services, Reactor_Services -DECLARE subroutine Write_Oi_To_Sql - -Equ Tab$ to Char(9) -Equ Esc$ to \1B\ -Equ CRLF$ to \0D0A\ - -r = 28 -loaded = Reactor_services('GetReactorCurrLoad', r) - -return loaded -*debug -KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'CRISP_TEST') -For each KeyID in KeyList using @FM setting fPos then - TableName = 'JCH_LOG' - - If TableName NE '' and KeyID NE '' then - TransID = '' - TransID<1> = 'WRITE' - TransID<2> = 'LSL2' - TransID<3> = 'LSL' - TransID<4> = TableName - TransID<5> = KeyID - Write_OI_To_Sql(TransID) - end - - //Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -Next KeyID - - diff --git a/LSL2/STPROC/TEST_CRISP2.txt b/LSL2/STPROC/TEST_CRISP2.txt deleted file mode 100644 index 0189853..0000000 --- a/LSL2/STPROC/TEST_CRISP2.txt +++ /dev/null @@ -1,191 +0,0 @@ -Function Test_Crisp2() -#pragma precomp SRP_PreCompiler - -* Use to add shipment record numbers to WOMatKey based on WO or ship date + reactor type - -Declare subroutine Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services -Declare subroutine Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, FTP_Services -Declare subroutine EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables, obj_RDS -Declare subroutine Error_Services, RDS_Services, Dialog_Box, Insert, Unlock, QA_Services, Validate, Development_Services -Declare subroutine Update_Index, Database_Services, Obj_WO_Mat_QA, Fmt, Yield, WinYield, Sleepery, Qa_Services, Reactor_Services -Declare subroutine Obj_Post_Log, GaN_Services, Excel_Services, obj_WO_React, Sap_Services, obj_sap, Errlog, Set_FSError, Print_Cass_Labels -Declare function Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Utility -Declare function Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Error_Services, RDS_Services -Declare function MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services, ErrMsg -Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, SRP_Trim, Xlate, Obj_Wo_Mat -Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8 -Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services -Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array, ICONV, SRP_Path -Declare function Development_Services, Obj_WO_Mat_QA, SRP_Join_Arrays, NextKey, Obj_Prod_Spec, FTP_Services, SQL_Format, Direct_Print -Declare Function DateTime, GaN_Services, SRP_Array, SRP_Clean_Array, Excel_Services, EpiPro_Services, Sap_Services, Signature_Services, Rti_Openid_Support -Declare Function Set_Printer, Printer_Select, Print_SAP_Cass_Ship_Label -Declare subroutine Data_Map_Test, Print_SAP_Cass_Ship_Label -Declare Function Get.RecCount -Declare Function DCount -Declare Function Database_Services -Declare Function Environment_Services, Select_Into - -$INSERT POPUP_EQUATES -$INSERT MSG_EQUATES -$INSERT APPCOLORS -//$insert APP_INSERTS -$INSERT WM_IN_EQUATES -$Insert WM_OUT_EQUATES -$INSERT WO_LOG_EQU -$INSERT WO_STEP_EQU -$INSERT WO_MAT_EQUATES -$INSERT ORDER_EQU -$INSERT RDS_EQUATES -$INSERT PROD_SPEC_EQU -$INSERT NOTIFICATION_EQU -$INSERT LSL_USERS_EQU -$INSERT SECURITY_RIGHTS_EQU -$INSERT LOGICAL -$INSERT RTI_LH_INFO_EQUATES -$INSERT WO_MAT_QA_EQUATES -$INSERT CUST_EPI_PART_EQUATES -$INSERT PRS_STAGE_EQUATES -$Insert RLIST_EQUATES -$Insert CLEAN_INSP_EQUATES -$Insert TOOL_PARMS_EQUATES -$Insert SCHEDULE_EQU -$Insert SCHED_DET_EQUATES -$Insert SCHEDULER_EQUATES -$Insert NCR_EQUATES -$Insert REACT_RUN_EQUATES -$Insert TOOL_EQUATES -$Insert TOOL_LOG_EQUATES -$Insert PM_EQUATES -$Insert EPI_PART_EQUATES -$insert SCANS_EQUATES -$insert SERVICE_SETUP - -equ crlf$ to \0D0A\ - -*debug -*open "REPLICATION_QUEUE_LSL2_RUN_STAGE_WFR" to REP_TABLE then -*open "REPLICATION_QUEUE_GLOBAL_PUBLIC" to REP_TABLE then -*open "REPLICATION_QUEUE_LSL2_WO_MAT" to REP_TABLE then -open "REPLICATION_QUEUE_LSL2_RDS" to REP_TABLE then -*open "REPLICATION_QUEUE_LSL2_REACT_RUN" to REP_TABLE then -*open "REPLICATION_QUEUE_LSL2_WO_WFR" to REP_TABLE then - -end -select REP_TABLE - done = FALSE$ - idList = '' - status='' - loop - readnext @ID Else Done = TRUE$ - until done - read REC from REP_TABLE, @ID then - *if REC<5> EQ 'R69' then - *if REC<5> EQ '459904*JV_XRD*170095.19.10' then - if REC<5> EQ '518495' then - delete REP_TABLE, @ID - end - *end else -* idList =+ idList:@ID:',' -* swap '.' with '*' in REC -* write REC on REP_TABLE, @ID else -* return 'Delete_error @':@ID -* status = Set_FSError() -* end -* end else -* *return 'Read Error @':@ID -* end - *end - end - repeat -end else - return 'Open_Error' -end - -* return idList -* -* * open "SEC_GROUPS" to REP_TABLE then -* * select REP_TABLE -* * done = FALSE$ -* * loop -* * readnext @ID Else Done = TRUE$ -* * until done -* * read REC from REP_TABLE, @ID then -* * if REC<5> EQ '403583' then -* * delete REP_TABLE, @ID else -* * return 'Delete_error @':@ID -* * end -* * end -* * end else -* * return 'Read Error @':@ID -* * end -* * repeat -* * end else -* * return 'Open_Error' -* * end -* -* return -* -* //printing 4x4 label (WO_NO, CASS_NO, STAGE, RDS_NO) -* *Print_SAP_Cass_Ship_Label(168982,1,1,390211) -* * -* * //below is code snippet where BTREE extract not pulling up SAP_BATCH_NO on Ship Label Check form -* * Open 'DICT.WO_MAT' To DictWOMat Then -* * BatchID = 'M014188.1' -* * Search = 'SAP_BATCH_NO':@VM:BatchID:@FM -* * Flag = '' -* * ScanWOMatKey = '' -* * -* * Set_Status(0) -* * Btree.Extract(Search,'WO_MAT',DictWOMat,ScanWOMatKey,'',Flag) -* * If Get_Status(errCode) Then -* * ErrMsg(errCode) -* * End -* * return ScanWOMatKey -* * end -* * -* * return -* -* -* Open 'REPLICATION_QUEUE_LSL2_WO_MAT' To table THEN -* -* Select table -* Done = 0 -* LOOP -* READNEXT @ID ELSE Done = 1 -* UNTIL Done -* Read @RECORD From table, @ID THEN -* DELETE table, @ID -* end -* REPEAT -* end -* -* return -* -* vStmt = "SELECT RDS WITH SEQ >= '395284' AND WITH SEQ <= '396000' " : @fm -* vStmt := "LIST RDS" -* -* results = Select_into ( vStmt, "CSV" ) -* filename = "d:\temp\test.csv" -* OsWrite results on filename -* *Call shellexecute(0,'Open':\\00\, filename:\00\,'','',1) -* return -* -* -* *debug -* tableName = 'WO_MAT' -* fileName = "d:\temp\":tableName:"_2keys.txt" -* Open tableName To tablevar THEN -* tablename = '' -* Select tablevar -* report = '' -* Done = 0 -* LOOP -* READNEXT @ID ELSE Done = 1 -* UNTIL Done -* *Read @RECORD From tablevar, @ID THEN -* report := @ID:crlf$ -* *end -* REPEAT -* end -* -* OSWrite report To filename diff --git a/LSL2/STPROC/TEST_CRISP3.txt b/LSL2/STPROC/TEST_CRISP3.txt deleted file mode 100644 index aa7eaf6..0000000 --- a/LSL2/STPROC/TEST_CRISP3.txt +++ /dev/null @@ -1,86 +0,0 @@ -Function Test_Crisp3() -#pragma precomp SRP_PreCompiler - -* Use to add shipment record numbers to WOMatKey based on WO or ship date + reactor type - -Declare subroutine Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services -Declare subroutine Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, FTP_Services -Declare subroutine EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables, obj_RDS -Declare subroutine Error_Services, RDS_Services, Dialog_Box, Insert, Unlock, QA_Services, Validate, Development_Services -Declare subroutine Update_Index, Database_Services, Obj_WO_Mat_QA, Fmt, Yield, WinYield, Sleepery, Qa_Services, Reactor_Services -Declare subroutine Obj_Post_Log, GaN_Services, Excel_Services, obj_WO_React, Sap_Services, obj_sap, Errlog, Set_FSError, Print_Cass_Labels -Declare function Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Utility -Declare function Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Error_Services, RDS_Services -Declare function MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services, ErrMsg -Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, SRP_Trim, Xlate, Obj_Wo_Mat -Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8 -Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services -Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array, ICONV, SRP_Path -Declare function Development_Services, Obj_WO_Mat_QA, SRP_Join_Arrays, NextKey, Obj_Prod_Spec, FTP_Services, SQL_Format, Direct_Print -Declare Function DateTime, GaN_Services, SRP_Array, SRP_Clean_Array, Excel_Services, EpiPro_Services, Sap_Services, Signature_Services, Rti_Openid_Support -Declare Function Set_Printer, Printer_Select, Replication_Services -Declare subroutine Data_Map_Test, Replication_Services -Declare Function Get.RecCount -Declare Function DCount -Declare Function Database_Services -Declare Function Environment_Services - -$INSERT POPUP_EQUATES -$INSERT MSG_EQUATES -$INSERT APPCOLORS -//$insert APP_INSERTS -$INSERT WM_IN_EQUATES -$Insert WM_OUT_EQUATES -$INSERT WO_LOG_EQU -$INSERT WO_STEP_EQU -$INSERT WO_MAT_EQUATES -$INSERT ORDER_EQU -$INSERT RDS_EQUATES -$INSERT PROD_SPEC_EQU -$INSERT NOTIFICATION_EQU -$INSERT LSL_USERS_EQU -$INSERT SECURITY_RIGHTS_EQU -$INSERT LOGICAL -$INSERT RTI_LH_INFO_EQUATES -$INSERT WO_MAT_QA_EQUATES -$INSERT CUST_EPI_PART_EQUATES -$INSERT PRS_STAGE_EQUATES -$Insert RLIST_EQUATES -$Insert CLEAN_INSP_EQUATES -$Insert TOOL_PARMS_EQUATES -$Insert SCHEDULE_EQU -$Insert SCHED_DET_EQUATES -$Insert SCHEDULER_EQUATES -$Insert NCR_EQUATES -$Insert REACT_RUN_EQUATES -$Insert TOOL_EQUATES -$Insert TOOL_LOG_EQUATES -$Insert PM_EQUATES -$Insert EPI_PART_EQUATES -$insert SCANS_EQUATES -$insert SERVICE_SETUP -equ crlf$ to \0D0A\ - - -report = '' -tableName = 'JCH_LOG' -tableVar = '' -fileName = 'd:\temp\':tableName:'.txt' - -Open tableName To tablevar THEN - - Select tablevar - Done = 0 - - LOOP - READNEXT @ID ELSE Done = 1 - UNTIL Done - *if @ID < 80000 AND @ID > 73291 then - report := @ID:crlf$ - *end - REPEAT -End - -OSWrite report To filename - -return diff --git a/LSL2/STPROC/TEST_CRISP4.txt b/LSL2/STPROC/TEST_CRISP4.txt deleted file mode 100644 index b5adc22..0000000 --- a/LSL2/STPROC/TEST_CRISP4.txt +++ /dev/null @@ -1,70 +0,0 @@ -Function Test_Crisp4() -#pragma precomp SRP_PreCompiler -equ crlf$ to \0D0A\ -$Insert LOGICAL -Declare function Replication_Services -Declare subroutine Database_Services - - Open 'REPLICATION_QUEUE_LSL2_RDS' to TableHandle then - Select TableHandle - EOF = False$ - Loop - ReadNext @ID else EOF = True$ - Until EOF - If Not(Num(@ID)) and Not(Index(@ID, '%', 1)) then - Delete TableHandle, @ID then Null - end - Repeat - end - - -return - -* -* Flag = '' -* RDSTestKeyIDs = '' -* RDSNo = '' -* hDictRDSTest = Database_Services('GetTableHandle', 'DICT.RDS_TEST') -* SearchString = 'RDS_NO' : @VM : RDSNo : @FM -* Btree.Extract(SearchString, 'RDS_TEST', hDictRDSTest, RDSTestKeyIDs, '', Flag) -* If Flag EQ 0 then -* If RDSTestKeyIDs NE '' then -* For Each RDSTestKeyID in RDSTestKeyIDs using @VM -* If Len(RDSTestKeyID) LT 7 then -* Database_Services('DeleteDataRow', 'RDS_TEST', RDSTestKeyID, True$) -* If Error_Services('NoError') then -* Results = RDSTestKeyID : ' deleted' -* end else -* Results = RDSTestKeyID : ' not deleted. Error : ' : Error_Services('GetMessage') -* end -* LogData<1> = LoggingDTM -* LogData<2> = Results -* Logging_Services('AppendLog', objLog2, LogData, @RM, @FM) -* end -* Next RDSTestKeyID -* end -* end -* -* -* return -* -* fileName = "d:\temp\Replication_keys.txt" -* open 'REPLICATION_QUEUE_LSL2_REACT_RUN' to REP_TABLE then -* select REP_TABLE -* done = 0 -* report='' -*debug -* loop -* readnext @ID Else Done = 1 -* until done -* read REC from REP_TABLE, @ID then -* report := REC<5>:crlf$ -* end -* repeat -* end else -* return 'Open_Error' -* end -* -* OSWrite report To filename -* -* return diff --git a/LSL2/STPROC/TEST_CRISP5.txt b/LSL2/STPROC/TEST_CRISP5.txt deleted file mode 100644 index 37aeb62..0000000 --- a/LSL2/STPROC/TEST_CRISP5.txt +++ /dev/null @@ -1,9 +0,0 @@ -Function Test_Crisp5() -#pragma precomp SRP_PreCompiler - -Debug -IF 1 EQ 1 then - a = 0 -end -return - diff --git a/LSL2/STPROC/TEST_DANIEL.txt b/LSL2/STPROC/TEST_DANIEL.txt deleted file mode 100644 index 284ae1b..0000000 --- a/LSL2/STPROC/TEST_DANIEL.txt +++ /dev/null @@ -1,2336 +0,0 @@ -Function Test_Daniel(@Service, @Params) -#pragma precomp SRP_PreCompiler - -$Insert SERVICE_SETUP -$Insert REVDOTNETEQUATES -$Insert LOGICAL -$Insert REACT_RUN_EQUATES -$Insert RUN_STAGE_WFR_EQUATES -$Insert SRP_IO_EQUATES -$Insert WO_MAT_EQUATES -$Insert PRS_STAGE_EQUATES -$Insert OIPRINT_EQUATES -$Insert PRINTSETUP_EQUATES -$Insert RLIST_EQUATES -$Insert ROTR_EQUATES -$Insert WO_WFR_EQUATES -$Insert RDS_EQUATES -$Insert PROD_SPEC_EQUATES -$Insert WO_MAT_QA_EQUATES -$Insert SCHED_DET_NG_EQUATES -$Insert MSG_EQUATES -$Insert WM_OUT_EQUATES -$Insert MAKEUP_WAFERS_EQUATES -$Insert CLEAN_INSP_EQUATES - -EQU PI$LEFT TO 1 ;* OIPI page parameters -EQU PI$TOP TO 2 -EQU PI$RIGHT TO 3 -EQU PI$BOTTOM TO 4 -EQU PI$WIDTH TO 5 -EQU PI$HEIGHT TO 6 -EQU PI$SIZE TO 7 - -Declare function SRPExampleDLL2, Database_Services, obj_WO_Mat, obj_Shipment, DateTime, SRP_Array, Gan_Services -Declare function Signature_Services, Memberof, Security_Services, SRPWinAPI_CreateFile, SRP_IO, Engineering_Services -Declare function Excel_Services, File_Services, QA_Services, Excel_Services_Dev, obj_Location, GetCommandLine -Declare function PrintSetup, Set_Printer, SRPWinAPI_CopyFile, Math_Services, obj_RDS, obj_React_Run, Reactor_Services -Declare subroutine Error_Services, Set_Status, Database_Services, Excel_Services, SRP_IO, File_Services, Set_Property -Declare subroutine SRPWinAPI_CloseHandle, ErrMsg, GetTempPath, GetTempFileName, Btree.Extract, Excel_Services_Dev -Declare subroutine Send_Message.Net, Engineering_Services, Qa_Services, Gan_Services, RList, Delete_Table, Sleepery -Declare subroutine SRP_Stopwatch, Dialog_Box, Schedule_Services, Set_IDXSvr, Set_Bgnd_IX_Time, Signature_Services -Declare subroutine Mona_Services, Msg, Work_Order_Services, Copy_Record_To_SQL, Material_Services, Sql_Services -Declare subroutine SQL_Services_RevDotNet, Memory_Services, Replication_Services, Write_OI_To_Sql, Attach_Table -Declare subroutine Detach_Table -Declare function Repository, Get_Status, Get_Repos_Entities, obj_NCR, RTI_CreateGUID -Declare function Epi_Part_Services, SRP_Math, obj_WM_Out, Error_Services, Signature_Services, obj_WO_Mat_QA -Declare function GetTickCount, Schedule_Services, Msg, SRP_Stopwatch, IConv, OConv, SRP_Get_FileVersion -Declare function GetVersionEx, RTI_Lock_Owner, Sql_Services, SQL_Services_RevDotNet, Replication_Services -Declare function Printer_Select - -GoToService else - Error_Services('Set', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.') -end - -Return Response else '' - - -Service NCRCount() - - Debug - NumNCR = Xlate('RDS', 582818, 'TOT_REJ', 'X') - - - - -end service - - -Service NewScript() - - - KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') - For each WOMatKey in KeyList using @FM setting fPos then - WONo = Field(WOMatKey, '*', 1) - MUBox = False$ - ReactType = Xlate('WO_MAT', WOMatKey, 'REACTOR_TYPE', 'X') - If ReactType EQ 'EPP' then - - WMOKey = Xlate('WO_MAT', WOMatKey, 'WMO_KEY', 'X') - MUBox = Xlate('WM_OUT', WMOKey, 'MAKEUP_BOX', 'X') - - If MUBox then - CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKey) - If CurrWaferCount GT 0 then - // Populate MAKEUP_WAFERS table - // Add/update cassette data to the MAKEUP_WAFERS table - Database_Services('ActivateRecord', 'WM_OUT', WMOKey) - WOMatKey = {WO_MAT_KEY} - MUWfrRec = '' - MUWfrRec = {SAP_BATCH_NO} - MUWfrRec = {PS_NO} - MUWfrRec = Xlate('WO_LOG', WONo, 'CUST_NO', 'X') - MUWfrRec = Xlate('WO_LOG', WONo, 'PROD_ORD_NO', 'X') - MUWfrRec = Xlate('WO_MAT', WOMatKey, 'WAFER_SIZE', 'X') - MUWfrRec = {PART_NO} - MUWfrRec = {RDS} - MUWfrRec = WMOKey - MUWfrRec = Xlate('WO_MAT', WOMatKey, 'PROD_VER_NO', 'X') - MUWfrRec = Xlate('WO_MAT', WOMatKey, 'CUST_PART_NO', 'X') - MUWfrRec = Xlate('WO_LOG', WONo, 'REACT_TYPE', 'X') - MUWfrRec = {CURR_STATUS_STATIC} - RDSNos = {RDS} - RDSNos = SRP_Array('Clean', RDSNos, 'TrimAndMakeUnique', @VM) - UnloadDTMs = '' - For each RDSNo in RDSNos using @VM - DateOut = Xlate('RDS', RDSNo, 'DATE_OUT', 'X') - TimeOut = Xlate('RDS', RDSNo, 'TIME_OUT', 'X') / 86400 - TimeOut[1, 2] = '' - TimeOut = TimeOut[1, 5] - UnloadDTMs<0, -1> = DateOut:'.':TimeOut - Next RDSNo - UnloadDTMs = SRP_Array('Clean', UnloadDTMs, 'TrimAndMakeUnique', @VM) - UnloadDTMs = SRP_Array('SortSimpleList', UnloadDTMs, 'AscendingNumbers', @VM) - MUWfrRec = UnloadDTMs<0, 1> - Database_Services('WriteDataRow', 'MAKEUP_WAFERS', WOMatKey, MUWfrRec, True$, False$, True$) - end else - // Remove cassette data from MAKEUP_WAFERS table if it is present - If RowExists('MAKEUP_WAFERS', WOMatKey) then - Database_Services('DeleteDataRow', 'MAKEUP_WAFERS', WOMatKey, True$, False$) - end - end - end - end else - MUBox = Xlate('WO_MAT', WOMatKey, 'MAKEUP_BOX', 'X') - If MUBox then - CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKey) - If CurrWaferCount GT 0 then - Database_Services('ActivateRecord', 'WO_MAT', WOMatKey) - // Populate MAKEUP_WAFERS table - // Add/update cassette data to the MAKEUP_WAFERS table - MUWfrRec = '' - MUWfrRec = {SAP_BATCH_NO} - MUWfrRec = Xlate('WO_LOG', WONo, 'PS_NO', 'X') - MUWfrRec = {CUST_NO} - MUWfrRec = {PROD_ORD_NO} - MUWfrRec = {WAFER_SIZE} - MUWfrRec = {EPI_PART_NO} - MUWfrRec = {RDS_NO} - MUWfrRec = '' ; // Only applies to EPP - MUWfrRec = {PROD_VER_NO} - MUWfrRec = {CUST_PART_NO} - MUWfrRec = {REACTOR_TYPE} - MUWfrRec = {CURR_STATUS_STATIC} - DateOut = Xlate('RDS', {RDS_NO}, 'DATE_OUT', 'X') - TimeOut = Xlate('RDS', {RDS_NO}, 'TIME_OUT', 'X') / 86400 - TimeOut[1, 2] = '' - TimeOut = TimeOut[1, 5] - UnloadDTM = DateOut:'.':TimeOut - MUWfrRec = UnloadDTM - Database_Services('WriteDataRow', 'MAKEUP_WAFERS', WOMatKey, MUWfrRec, True$, False$, True$) - end else - // Remove cassette data from MAKEUP_WAFERS table if it is present - If RowExists('MAKEUP_WAFERS', WOMatKeyID) then - Database_Services('DeleteDataRow', 'MAKEUP_WAFERS', WOMatKey, True$, False$) - end - end - end - end -* If MUBox then -* CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKey) -* If CurrWaferCount GT 0 then NewKeyList<-1> = WOMatKey -* end - - Next Key - -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL3', NewKeyList) - -end service - -* Open 'DICT.MAKEUP_WAFERS' to @Dict then -* Open 'MAKEUP_WAFERS' to hMUWfrs then -* Done = False$ -* Select hMUWfrs -* Loop -* ReadNext @ID, hMUWfrs else Done = True$ -* Until Done -* If {REACT_TYPE} EQ 'EPP' then -* debug -* WMOKey = Field(@ID, '*', 1):'*1*':Field(@ID, '*', 2) -* WMORec = Database_Services('ReadDataRow', 'WM_OUT', WMOKey) -* Database_Services('WriteDataRow', 'WM_OUT', WMOKey, WMORec) -* end else -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', @ID) -* Database_Services('WriteDataRow', 'WO_MAT', @ID, WOMatRec) -* end -* Repeat -* end -* end - -* List = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -* For each @ID in List using @FM setting fPos -* UnloadDTM = '' -* MUWfrRec = Database_Services('ReadDataRow', 'MAKEUP_WAFERS', @ID) -* ReactType = Xlate('WO_MAT', @ID, 'REACTOR_TYPE', 'X') -* If ReactType EQ 'EPP' then -* WMOKey = Field(@ID, '*', 1):'*1*':Field(@ID, '*', 2) -* RDSNos = Xlate('WM_OUT', WMOKey, 'RDS', 'X') -* RDSNos = SRP_Array('Clean', RDSNos, 'TrimAndMakeUnique', @VM) -* RDSNos = SRP_Array('Clean', RDSNos, 'TrimAndMakeUnique', @SVM) -* RDSNos = SRP_Array('Clean', RDSNos, 'TrimAndMakeUnique', @TM) -* RDSNos = SRP_Array('Clean', RDSNos, 'TrimAndMakeUnique', @STM) -* If RDSNos NE '' then -* UnloadDTMs = '' -* For each RDSNo in RDSNos using @VM -* DateOut = Xlate('RDS', RDSNo, 'DATE_OUT', 'X') -* TimeOut = Xlate('RDS', RDSNo, 'TIME_OUT', 'X') / 86400 -* TimeOut[1, 2] = '' -* TimeOut = TimeOut[1, 5] -* UnloadDTMs<0, -1> = DateOut:'.':TimeOut -* Next RDSNo -* UnloadDTMs = SRP_Array('Clean', UnloadDTMs, 'TrimAndMakeUnique', @VM) -* UnloadDTMs = SRP_Array('SortSimpleList', UnloadDTMs, 'AscendingNumbers', @VM) -* UnloadDTM = UnloadDTMs<0, 1> -* end else -* // Inspect the signature profile -* SigProf = Xlate('WO_MAT', @ID, 'SIG_PROFILE', 'X') -* SigDTMs = Xlate('WO_MAT', @ID, 'SIG_DTM', 'X') -* Locate '1MO_QA' in SigProf using @VM setting vPos then -* UnloadDTM = SigDTMs<0, vPos> -* end -* end -* end else -* RDSNo = Xlate('WO_MAT', @ID, 'RDS_NO', 'X') -* RDSNo = SRP_Array('Clean', RDSNo, 'TrimAndMakeUnique', @VM) -* RDSNo = SRP_Array('Clean', RDSNo, 'TrimAndMakeUnique', @SVM) -* RDSNo = SRP_Array('Clean', RDSNo, 'TrimAndMakeUnique', @TM) -* RDSNo = SRP_Array('Clean', RDSNo, 'TrimAndMakeUnique', @STM) -* If RDSNo NE '' then -* DateOut = Xlate('RDS', RDSNo, 'DATE_OUT', 'X') -* TimeOut = Xlate('RDS', RDSNo, 'TIME_OUT', 'X') -* If DateOut NE '' and TimeOut NE '' and TimeOut GT 0 then -* TimeOut = TimeOut / 86400 -* TimeOut[1, 2] = '' -* TimeOut = TimeOut[1, 5] -* UnloadDTM = DateOut:'.':TimeOut -* end -* end else -* // Inspect the signature profile -* SigProf = Xlate('WO_MAT', @ID, 'SIG_PROFILE', 'X') -* SigDTMs = Xlate('WO_MAT', @ID, 'SIG_DTM', 'X') -* Locate '1UNLOAD' in SigProf using @VM setting vPos then -* UnloadDTM = SigDTMs<0, vPos> -* end -* end -* end -* If UnloadDTM NE '' then -* MUWfrRec = UnloadDTM -* Database_Services('WriteDataRow', 'MAKEUP_WAFERS', @ID, MUWfrRec, True$, False$, True$) -* end -* Next @ID - - -Service CleanRepMan() - debug - ErrorList = '' - Application = 'LSL' - Table = 'REPLICATION_QUEUE_WO_WFR' - hQueueTable = Replication_Services('GetReplicationQueueTableHandle', Application, Table) - If hQueueTable then - - Select hQueueTable - Done = False$ - Loop - Readnext Key else Done = True$ - If Index(Key, '*', 1) then - Delete hQueueTable, Key else - ErrorList<-1> = Key - end - end - Repeat - Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL', ErrorList) - end - -end service - - -Service PopulateMUWafers() -* debug - // Non EpiPro - -* NonEppList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -* - Def = "" - Def = "Populating Non EpiPro Makeup Wafers..." - Def = "GC" - Def = Dcount(NonEppList, @FM) - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For each WOMatKey in NonEppList setting fPos -* Database_Services('ActivateRecord', 'WO_MAT', WOMatKey) -* If {MAKEUP_BOX} then -* WONo = Field(WOMatKey, '*', 1, 1) -* CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKey) -* If CurrWaferCount GT 0 then -* // Populate MAKEUP_WAFERS table -* // Add/update cassette data to the MAKEUP_WAFERS table -* MUWfrRec = '' -* MUWfrRec = {SAP_BATCH_NO} -* MUWfrRec = Xlate('WO_LOG', WONo, 'PS_NO', 'X') -* MUWfrRec = {CUST_NO} -* MUWfrRec = {PROD_ORD_NO} -* MUWfrRec = {WAFER_SIZE} -* MUWfrRec = {EPI_PART_NO} -* MUWfrRec = {RDS_NO} -* MUWfrRec = '' ; // Only applies to EPP -* MUWfrRec = {PROD_VER_NO} -* MUWfrRec = {CUST_PART_NO} -* MUWfrRec = {REACTOR_TYPE} -* MUWfrRec = {CURR_STATUS} -* Database_Services('WriteDataRow', 'MAKEUP_WAFERS', WOMatKey, MUWfrRec, True$, False$, True$) -* end -* end -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* Next WOMatKey -* Msg(@WINDOW,MsgUp) ;* Take message down - - // EpiPro - - EppList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL2') - - Def = "" - Def = "Populating EpiPro Makeup Wafers..." - Def = "GC" - Def = Dcount(EppList, @FM) - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - - For each WMOKey in EppList setting fPos - Database_Services('ActivateRecord', 'WM_OUT', WMOKey) - If {MAKEUP_BOX} then - WOMatKey = {WO_MAT_KEY} - WONo = Field(WOMatKey, '*', 1, 1) - CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKey) - If CurrWaferCount GT 0 then - // Populate MAKEUP_WAFERS table - // Add/update cassette data to the MAKEUP_WAFERS table - WOMatKey = {WO_MAT_KEY} - MUWfrRec = '' - MUWfrRec = {SAP_BATCH_NO} - MUWfrRec = {PS_NO} - MUWfrRec = Xlate('WO_LOG', WONo, 'CUST_NO', 'X') - MUWfrRec = Xlate('WO_LOG', WONo, 'PROD_ORD_NO', 'X') - MUWfrRec = Xlate('WO_MAT', WOMatKey, 'WAFER_SIZE', 'X') - MUWfrRec = {PART_NO} - MUWfrRec = {RDS} - MUWfrRec = WMOKey - MUWfrRec = Xlate('WO_MAT', WOMatKey, 'PROD_VER_NO', 'X') - MUWfrRec = Xlate('WO_MAT', WOMatKey, 'CUST_PART_NO', 'X') - MUWfrRec = Xlate('WO_LOG', WONo, 'REACT_TYPE', 'X') - MUWfrRec = {CURR_STATUS} - Database_Services('WriteDataRow', 'MAKEUP_WAFERS', WOMatKey, MUWfrRec, True$, False$, True$) - end - end - Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message - Next WMOKey - - Msg(@WINDOW,MsgUp) ;* Take message down - -end service - - -Service GetEPP() - - EPPRTUMUList = '' - RTUMUList = Database_Services('ReadDataRow', 'SYSLISTS', 'RTU_MU') - - For each WONo in RTUMUList using @FM - - RType = Xlate('WO_LOG', WONo, 'REACT_TYPE', 'X') - If RType EQ 'EPP' then - EPPRTUMUList<-1> = WONo - end - - Next WONo - Database_Services('WriteDataRow', 'SYSLISTS', 'EPP_RTU_MU', EPPRTUMUList) - -end service - - -Service GetMergeClause() - debug - JoinClause = 'RDS_NO = 460155 AND CASS_NO = 2' - Swap ' AND ' with @FM in JoinClause - MergeClause = '' - For each Clause in JoinClause using @FM - MergeClause := Clause : ' = src.':Clause - Next Clause - - - -end service - - - -Service AddTrans() - - debug -* File = '2021-07-02 SQL Services Log.csv' - Path = 'D:\apps\LogFiles\SQL_Services\' -* FileList = File - InitDir Path:'*' - FileList = DirList() - NumFiles = DCount(FileList, @FM) - - For each File in FileList using @FM setting fPos - - OSRead FileData from Path:File then - - Def = "" - Def = "Replicating data in file ":File:"..." - Def = "GC" - Def = Dcount(FileData, CRLF$) - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - - For each Line in FileData using CRLF$ setting fPos - TableName = Field(Line, ',', 2, 1) - KeyID = Field(Line, ',', 3, 1) - - If TableName NE '' and KeyID NE '' then - TransID = '' - TransID<1> = 'WRITE' - TransID<2> = 'LSL2' - TransID<3> = 'LSL' - TransID<4> = TableName - TransID<5> = KeyID - Write_OI_To_Sql(TransID) - end - - Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message - Next Line - end - Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message - Next File - - Msg(@WINDOW,MsgUp) ;* Take message down - -end service - - -Service GetDup() - - Export = '' - DupList = '' - DupCnt = 0 - Queue = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') - For each Key in Queue using @FM setting fPos - QueueRec = Database_Services('ReadDataRow', 'REPLICATION_QUEUE_LSL2_WO_MAT', Key) - QueueAction = QueueRec<1> - QueueTable = QueueRec<4> - QueueKey = QueueRec<5> - ExportRow = QueueAction:',':QueueTable:',':QueueKey:CRLF$ - Export := ExportRow - LookupKeyID = QueueAction:'*':QueueTable:'*':QueueKey - If LookupKeyID NE '' then - Locate LookupKeyID in DupList using @FM setting fPos then - DupCnt += 1 - Database_Services('DeleteDataRow', 'REPLICATION_QUEUE_LSL2_WO_MAT', Key, True$, False$) - end else - DupList<-1> = LookupKeyID - end - end - Next Key - OSWrite Export To 'D:\temp\DupList.csv' - Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL2', DupList) - -end service - - -Service TestReactState() - debug - WONo = 170033 - For CassNo = 1 to 96 - Key = WONo:'*1*':CassNo - Rec = Database_Services('ReadDataRow', 'WM_OUT', Key) - FlatFinderDTM = Rec - Rec = '' - Database_Services('WriteDataRow', 'WM_OUT', Key, Rec, True$, False$, False$) - Rec = FlatFinderDTM - Database_Services('WriteDataRow', 'WM_OUT', Key, Rec, True$, False$, False$) - Next CassNo - -end service - - -Service TestRepMan() - - - * Memory_Services('SetValue', 'SQL_SERVICES*GetConnectionObject*messv01ec.ec.local\PROD1,53959*objConnection', '') - * Free_Class.NET() - Server = 'messv01ec.ec.local\PROD1,53959' - TableData = SQL_Services('GetTables', '', Server, '', '', False$, True$, True$, True$) - * objConn = Sql_Services('GetConnectionObject', 'messv01ec.ec.local\PROD1,53959') - - * ConnString = SQL_Services('GetConnectionString', 'messv01ec.ec.local\PROD1,53959') - * objConn = SQL_Services('GetConnectionObject', 'messv01ec.ec.local\PROD1,53959') - * If objConn then SQL_Services('DestroyConnectionObject', objConn) - - * RDSNo = 457493 - * RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) - * Sql_Services('WriteDataRowToSQL', 'RDS', RDSNo, RDSRec) - - * Table = 'WO_MAT' - * WONo = '170178' - * Key = '170213*34' - * For CassNo = 54 to 67 - * Key = WONo:'*':CassNo - * Rec = Database_Services('ReadDataRow', Table, Key) - * Sql_Services('WriteDataRowToSQL', Table, Key, Rec) - * If Error_Services('HasError') then - * debug - * end - * Next CassNo - - -end service - - -Service TestRevDotNet() - debug - objConn = SQL_Services('GetConnectionObject', 'IQSDMS1') - QueryStatement = "select [Probe_Key] from [G4Wafers_01].[dbo].[Probe3]" - ProbeKey = SQL_Services('ExecuteQuery', objConn, QueryStatement, True$) - NewProbeKey = ProbeKey + 1 - QueryStatements = '' - QueryStatements<1> = 'update [G4Wafers_01].[dbo].[Probe3] set [Probe_Key] = ':NewProbeKey:' where [Probe_Key] = ':ProbeKey - ProbeKey = NewProbeKey - NewProbeKey = ProbeKey + 1 - QueryStatements<2> = 'update [G4Wafers_01].[dbo].[Probe3] set [Probe_Key] = ':NewProbeKey:' where [Probe_Key] = ':ProbeKey - SQL_Services('ExecuteQueries', objConn, QueryStatements, True$) - - - If objConn then SQL_Services('DestroyConnectionObject', objConn) - -end service - - -Service Test7() - - WOMatList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_WO_MAT_BAD') - For each WOMatKey in WOMatList using @FM setting fPos - Material_Services('PostWOMatUpdateRequest', WOMatKey) - Next WOMatKey - -end service - - -Service Test6() - - BadList = '' - WOMatList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_WO_MAT') - NumWOMat = DCount(WOMatList, @FM) - Def = "" - Def = "Verifying WO_MAT CURR_STATUS_STATIC..." - Def = "GC" - Def = NumWOMat - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - - For each WOMatKey in WOMatList using @FM setting fPos - StaticCurrStatus = Xlate('WO_MAT', WOMatKey, 'CURR_STATUS_STATIC', 'X') - CalcCurrStatus = obj_WO_Mat('CurrStatus', WOMatKey) - If StaticCurrStatus NE CalcCurrStatus then - BadList<-1> = WOMatKey - end - Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message - Next WOMatKey - - Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_WO_MAT_BAD', BadList) - - Msg(@WINDOW,MsgUp) ;* Take message down - -end service - - -Service Test5() - - WOMatKeyList = Xlate('SYSLISTS', 'WO_MAT_100000', '', 'X') - NumWOMat = DCount(WOMatKeyList, @FM) - Def = "" - Def = "Updating WO_MAT CURR_STATUS_STATIC..." - Def = "GC" - Def = NumWOMat - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - - WOMatKeyListIndex = 1 - NewWOMatKeyList = WOMatKeyList - - Loop - - WOMatKey = WOMatKeyList - WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) - CurrStatus = Xlate('WO_MAT', WOMatKey, 'CURR_STATUS', 'X') - StaticCurrStatus = WOMatRec - If CurrStatus NE StaticCurrStatus then - WOMatRec = CurrStatus - Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, True$, True$) - If Error_Services('HasError') then - ErrorList = Database_Services('ReadDataRow', 'SYSLISTS', 'WO_MAT_ERROR') - ErrorList<-1> = WOMatKey - Database_Services('WriteDataRow', 'SYSLISTS', 'WO_MAT_ERROR', ErrorList) - end - end - If Error_Services('NoError') then - NewWOMatKeyList = Delete(NewWOMatKeyList, 1, 0, 0) - WOMatKeyListIndex += 1 - Database_Services('WriteDataRow', 'SYSLISTS', 'WO_MAT_100000', NewWOMatKeyList) - end - - Running = Msg(@WINDOW, MsgUp, WOMatKeyListIndex, MSGINSTUPDATE$) ;* Update message - - Until WOMatKeyListIndex GE NumWOMat - Repeat - - Msg(@WINDOW,MsgUp) ;* Take message down - -end service - - -Service FabtimePush() - - debug - WOMatKeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'WO_MAT_PUSH') - NumWOMatKeys = DCount(WOMatKeyList, @FM) - - Def = "" - Def = "Updating WO_MAT..." - Def = "GC" - Def = NumWOMatKeys - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - Table = 'WO_MAT' - WOMatKeyListIndex = 1 - NewWOMatKeyList = WOMatKeyList - Loop - ID = WOMatKeyList - Copy_Record_To_SQL(Table, ID, 1) - NewWOMatKeyList = Delete(NewWOMatKeyList, 1, 0, 0) - WOMatKeyListIndex += 1 - Database_Services('WriteDataRow', 'SYSLISTS', 'WO_MAT_PUSH', NewWOMatKeyList) - Running = Msg(@WINDOW, MsgUp, WOMatKeyListIndex, MSGINSTUPDATE$) ;* Update message - Until WOMatKeyListIndex GE NumWOMatKeys - Repeat - - Msg(@WINDOW,MsgUp) ;* Take message down - -end service - - -Service Test2() - debug - WOLogKeyList = Xlate('SYSLISTS', 'TEST_DANIEL', '', 'X') - NumWOLog = DCount(WOLogKeyList, @FM) - Def = "" - Def = "Updating WO_MAT..." - Def = "GC" - Def = NumWOLog - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - - WOLogKeyListIndex = 1 - NewWOLogKeyList = WOLogKeyList - - Loop - GoSub ClearCursors - Query = 'COUNT WO_STEP_QUEUE' - Rlist(Query, Target_ActiveList$, '', '', '') - - If @RecCount LT 25 then - // Don't overwhelm the SQL queue - WONo = WOLogKeyList - Work_Order_Services('PostWOStepUpdateRequest', WONo) - NewWOLogKeyList = Delete(NewWOLogKeyList, 1, 0, 0) - WOLogKeyListIndex += 1 - Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL', NewWOLogKeyList) - end else - // Give the queue time to crunch - Sleepery(30000) - end - GoSub ClearCursors - - Running = Msg(@WINDOW, MsgUp, WOLogKeyListIndex, MSGINSTUPDATE$) ;* Update message - - Until WOLogKeyListIndex GE NumWOLog - Repeat - - Msg(@WINDOW,MsgUp) ;* Take message down - -end service - - -Service Script() - - debug - WOMatKeyList = Xlate('SYSLISTS', 'SIG_PROF_PUSH', '', 'X') - NumWOMat = DCount(WOMatKeyList, @FM) - Def = "" - Def = "Updating WO_MAT..." - Def = "GC" - Def = NumWOMat - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - - WOMatKeyListIndex = 1 - NewWOMatKeyList = WOMatKeyList - - Loop - GoSub ClearCursors - Query = 'COUNT SQL_BACKLOG_WO_MAT' - Rlist(Query, Target_ActiveList$, '', '', '') - - If @RecCount LT 25 then - // Don't overwhelm the SQL queue - WOMatKey = WOMatKeyList - SigProf = Signature_Services('GetSigProfile', WOMatKey) - Stages = SigProf<1> - Sigs = SigProf<2> - SigDTMs = SigProf<3> - WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) - WOMatSigProf = WOMatRec - For each Stage in Stages using @VM setting sPos - WOMatStage = '1':Stage - Locate WOMatStage in WOMatSigProf using @VM setting vPos then - WOMatRec = Sigs<0, sPos> - WOMatRec = IConv(SigDTMS<0, sPos>, 'DT') - end - Next Stage - Error_Services('Clear') - Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$) - If Error_Services('NoError') then - NewWOMatKeyList = Delete(NewWOMatKeyList, 1, 0, 0) - WOMatKeyListIndex += 1 - Database_Services('WriteDataRow', 'SYSLISTS', 'SIG_PROF_PUSH', NewWOMatKeyList) - end - end else - // Give the queue time to crunch - Sleepery(30000) - end - GoSub ClearCursors - - Running = Msg(@WINDOW, MsgUp, WOMatKeyListIndex, MSGINSTUPDATE$) ;* Update message - - Until WOMatKeyListIndex GE NumWOMat - Repeat - - Msg(@WINDOW,MsgUp) ;* Take message down - -end service - - -Service Test() - - SRP_Stopwatch('Reset') - SRP_Stopwatch('Start', 'Release') - Sleepery(1000) - SRP_Stopwatch('Stop', 'Release') - SRP_Stopwatch('Start', 'Refresh') - Sleepery(1000) - SRP_Stopwatch('Stop', 'Refresh') - SRP_Stopwatch('Start', 'Refresh') - Sleepery(1000) - SRP_Stopwatch('Stop', 'Refresh') - debug - Data = SRP_Stopwatch('GetAll') -end service - - -Service RDSFix1() - debug - SuccessList = '' - ErrorList = '' - * RDSList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') - - NextRDSNo = Xlate('DICT.RDS', '%SK%', '', 'X') - LastRDSNo = NextRDSNo - 1 - FirstRDSNo = LastRDSNo - 1000 - - For RDSNo = FirstRDSNo to LastRDSNo Step 1 - RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) - If Error_Services('NoError') then - Database_Services('DeleteDataRow', 'RDS', RDSNo, True$, True$) - If Error_Services('NoError') then - Database_Services('WriteDataRow', 'RDS', RDSNo, RDSRec, True$, True$, True$) - If Error_Services('NoError') then - SuccessList<-1> = RDSNo - end else - ErrorMsg = Error_Services('GetMessage') - ErrorList<-1> = RDSNo : ' ' :ErrorMsg - end - end else - ErrorMsg = Error_Services('GetMessage') - ErrorList<-1> = RDSNo : ' ' :ErrorMsg - end - end else - ErrorMsg = Error_Services('GetMessage') - ErrorList<-1> = RDSNo : ' ' :ErrorMsg - end - Next RDSNo - - Database_Services('WriteDataRow', 'SYSLISTS', 'RDS_SUCCESS', SuccessList) - Database_Services('WriteDataRow', 'SYSLISTS', 'RDS_ERROR', ErrorList) - -end service - - -Service RDSFix2() - - debug - SuccessList = '' - ErrorList = '' - * RDSList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL3') - RDSList = 441972 - * NumRDS = DCount(RDSList, @FM) - * - * Def = "" - * Def = "Updating RDS Indexes..." - * Def = "GC" - * Def = NumRDS - * Def = 600 - * MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - For each RDSNo in RDSList using @FM setting vPos - RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) - If Error_Services('NoError') then - Database_Services('DeleteDataRow', 'RDS', RDSNo, True$, True$) - If Error_Services('NoError') then - Database_Services('WriteDataRow', 'RDS', RDSNo, RDSRec, True$, True$, True$) - If Error_Services('NoError') then - SuccessList<-1> = RDSNo - end else - ErrorMsg = Error_Services('GetMessage') - ErrorList<-1> = RDSNo : ' ' :ErrorMsg - end - end else - ErrorMsg = Error_Services('GetMessage') - ErrorList<-1> = RDSNo : ' ' :ErrorMsg - end - end else - ErrorMsg = Error_Services('GetMessage') - ErrorList<-1> = RDSNo : ' ' :ErrorMsg - end - * Running = Msg(@WINDOW, MsgUp, vPos, MSGINSTUPDATE$) ;* Update message - Next RDSNo - - Database_Services('WriteDataRow', 'SYSLISTS', 'RDS_SUCCESS', SuccessList) - Database_Services('WriteDataRow', 'SYSLISTS', 'RDS_ERROR', ErrorList) - - * Msg(@WINDOW,MsgUp) ;* Take message down -end service - - - - - -If @USER4 EQ 'DANIEL_ST' then - debug - OrigQty = 2400 - NewQty = 2000 - ModifyQty = NewQty - OrigQty - WONo = 169909 - Begin Case - Case ModifyQty GT 0 - // Search schedule for most recent event and increase that event quantity by the difference. - Query = 'SELECT SCHED_DET_NG WITH WO_NO EQ ':WONo:' BY-DSND STOP_DTM' - GoSub ClearCursors - Set_Status(0) - RList(Query, TARGET_ACTIVELIST$, '', '', False$) - errCode = '' - If Get_Status(errCode) then - ErrorMsg = 'Error retrieving event list in WO_LOG_Actions. Error code ':errCode:'.' - Error_Services('Add', ErrorMsg) - end else - EOF = False$ - ReadNext SchedDetNGKey else EOF = True$ - If SchedDetNGKey NE '' then - EventRec = Database_Services('ReadDataRow', 'SCHED_DET_NG', SchedDetNGKey) - ReactNo = EventRec - WONo = EventRec - StartDTM = EventRec - StopDTM = EventRec - Desc = EventRec - EventQty = EventRec - NewEventQty = EventQty + ModifyQty - Schedule_Services('ModifySchedEvent', SchedDetNGKey, ReactNo, WONo, StartDTM, StopDTM, Desc, NewEventQty) - end - end - GoSub ClearCursors - Schedule_Services('AdjustScheduleEvents') - Case ModifyQty LT 0 - // Search schedule for most recent events and decrease/delete those events as needed. - Query = 'SELECT SCHED_DET_NG WITH WO_NO EQ ':WONo:' BY-DSND STOP_DTM' - GoSub ClearCursors - Set_Status(0) - RList(Query, TARGET_ACTIVELIST$, '', '', False$) - errCode = '' - If Get_Status(errCode) then - ErrorMsg = 'Error retrieving event list in WO_LOG_Actions. Error code ':errCode:'.' - Error_Services('Add', ErrorMsg) - end else - EOF = False$ - Done = False$ - Loop - ReadNext SchedDetNGKey else EOF = True$ - Until EOF EQ True$ - If SchedDetNGKey NE '' then - EventRec = Database_Services('ReadDataRow', 'SCHED_DET_NG', SchedDetNGKey) - ReactNo = EventRec - WONo = EventRec - StartDTM = EventRec - StopDTM = EventRec - Desc = EventRec - EventQty = EventRec - If EventQty GT Abs(ModifyQty) then - // This event has enough wafers, so just reduce the quantity. - Done = True$ - NewEventQty = EventQty + ModifyQty - Schedule_Services('ModifySchedEvent', SchedDetNGKey, ReactNo, WONo, StartDTM, StopDTM, Desc, NewEventQty) - end else - // This event has fewer wafers than are being removed. Delete this event and continue - // onto the next event. - Schedule_Services('CancelScheduleEvent', SchedDetNGKey, True$) - ModifyQty += EventQty - end - end - Until Done EQ True$ - Repeat - Schedule_Services('AdjustScheduleEvents') - end - GoSub ClearCursors - - Case Otherwise$ - Null - End Case -end - -return - -ClearCursors: - For counter = 0 to 8 - ClearSelect counter - Next counter -return - -* EOF = False$ -* ReactProbCatData = '' -* Filepath = 'D:\FITemp\ReactProbCatList.txt' -* Open 'REACT_PROB_CAT' to RPCTable then -* Select RPCTable -* Loop -* ReadNext @ID else EOF = True$ -* Until EOF EQ True$ -* Read @Record from RPCTable, @ID then -* Desc = @Record<1> -* Category = Xlate('REACT_PROB_CAT', @ID, 'REACTOR_PROBLEM_CATEGORY_XREF', 'X') -* ReactProbCatData := @ID:',':Desc:',':Category:CRLF$ -* end -* Repeat -* end -* OSWrite ReactProbCatData on Filepath - -* EOF = False$ -* ReactServCatData = '' -* Filepath = 'D:\FITemp\ReactServCatList.txt' -* Open 'REACT_SERV_CAT' to RSCTable then -* Select RSCTable -* Loop -* ReadNext @ID else EOF = True$ -* Until EOF EQ True$ -* Read @Record from RSCTable, @ID then -* Desc = @Record<1> -* ReactServCatData := @ID:',':Desc:CRLF$ -* end -* Repeat -* end -* OSWrite ReactServCatData on Filepath - -return - -* debug -* Query = 'SELECT SQL_BACKLOG' -* Rlist(Query, Target_ActiveList$, '', '', '') -* QueueCount = @RecCount -* GoSub ClearCursors -* Mona_Services('SendMetric', 'SQL_BACKLOG', 'Test', QueueCount) -* -* Query = 'SELECT SQL_BACKLOG_WO_LOG' -* Rlist(Query, Target_ActiveList$, '', '', '') -* QueueCount = @RecCount -* GoSub ClearCursors -* Mona_Services('SendMetric', 'SQL_BACKLOG', 'Test', QueueCount) -* -* Query = 'SELECT SQL_BACKLOG_WO_MAT' -* Rlist(Query, Target_ActiveList$, '', '', '') -* QueueCount = @RecCount -* GoSub ClearCursors -* Mona_Services('SendMetric', 'SQL_BACKLOG', 'Test', QueueCount) - -* return -* -* -* ClearCursors: -* For counter = 0 to 8 -* ClearSelect counter -* Next counter -* return - -* debug -* 02:30:30PM - -* List1 = 10:@VM:11:@VM:12:@VM:13 -* For Index = 1 to 4 -* List1<0, Index> = List1<0, Index> - 3 -* Next Index -* ThickTest = Xlate('RDS', 425385, 'UNLOAD_THICK_TEST', 'X') -* Database_Services('ActivateRecord', 'RDS', 425385) -* -* UnloadThickTest = False$ -* Parms = {WO_MAT_KEY}:@RM -* Parms := '':@RM -* Parms := FIELD(@RECORD<256>,'*',2):@RM ;* WOStep -* Parms := 'UNLOAD':@RM -* Parms := WO_MAT_QA_PROFILE$ -* QAMetArray = obj_WO_Mat_QA('GetQAMet', Parms) -* For each Row in QAMetArray using @FM setting fPos -* Locate 'THICK_ONLY' in Row using @VM setting vPos then -* UnloadThickTest = True$ -* end -* Until UnloadThickTest EQ True$ -* Next Row -* ActionFlow = UnloadThickTest - -return - -ProdSpecKeys = Database_Services('ReadDataRow', 'APP_INFO', 'SS_MODIFY_SET') -For each ProdSpecKey in ProdSpecKeys using @FM - PRSKey = ProdSpecKey:'*LWI' - PRSRec = Database_Services('ReadDataRow', 'PRS_STAGE', PRSKey) - SSQtys = PRSRec - SSSODs = PRSRec - SSHazes = PRSRec - Locate 6 in SSQtys using @VM setting vPos then - SOD = SSSODs<0, vPos> - Haze = SSHazes<0, vPos> - Locate 25 in SSQtys using @VM setting sPos then - SSSODs<0, sPos> = SOD - SSHazes<0, sPos> = Haze - PRSRec = SSSODs - PRSRec = SSHazes - Database_Services('WriteDataRow', 'PRS_STAGE', PRSKey, PRSRec, True$, False$, True$) - end - end -Next ProdSpecKey -return - - -* ErrorList = '' -* ProdSpecKeys = Database_Services('ReadDataRow', 'APP_INFO', 'SS_MODIFY_SET') -* For each ProdSpecKey in ProdSpecKeys using @FM -* LWIPRSKey = ProdSpecKey:'*LWI' -* LWIPRSRec = Database_Services('ReadDataRow', 'PRS_STAGE', LWIPRSKey) -* If Error_Services('NoError') then -* SSRecipes = LWIPRSRec -* SSQtys = LWIPRSRec -* ASFlag = False$ -* IFXFlag = False$ -* Locate 'AS_IFX_ROTR' in SSRecipes using @VM setting vPos then -* ASFlag = True$ -* end else -* Locate 'AS_IFX100_ROTR' in SSRecipes using @VM setting vPos then -* ASFlag = True$ -* end else -* Locate '8IN_IFX_ROTR' in SSRecipes using @VM setting vPos then -* IFXFlag = True$ -* end else -* Locate 'IFX100_ROTR' in SSRecipes using @VM setting vPos then -* IFXFlag = True$ -* end -* end -* end -* end -* Begin Case -* Case ASFlag EQ True$ -* SSRecipes<0, -1> = 'AS_IFX25_ROTR' -* SSQtys<0, -1> = 25 -* Case IFXFlag EQ True$ -* SSRecipes<0, -1> = 'IFX25_ROTR' -* SSQtys<0, -1> = 25 -* Case Otherwise$ -* ErrorList<-1> = LWIPRSKey -* Error_Services('Add', 'Error finding recipe') -* End Case -* -* If Error_Services('NoError') then -* LWIPRSRec = SSRecipes -* LWIPRSRec = SSQtys -* Database_Services('WriteDataRow', 'PRS_STAGE', LWIPRSKey, LWIPRSRec, True$, False$, True$) -* If Error_Services('HasError') then -* ErrorList<-1> = LWIPRSKey -* end -* end -* end else -* ErrorList<-1> = LWIPRSKey -* end -* Next ProdSpecKey -* Database_Services('WriteDataRow', 'APP_INFO', 'SS_ERROR_SET', ErrorList) - -return - - -* * turn off dedicated indexing -* Set_IDXSvr(0) -* * reset background indexing delay to zero (no indexing) -* Set_Bgnd_IX_Time(0) -* -* * update indexes every 10 seconds -* Set_Bgnd_IX_Time(10) -* * turn on dedicated indexing -* Set_IDXSvr(1) - -* return - -PSNList = Database_Services('ReadDataRow', 'APP_INFO', 'PCRB_4_TO_8') -ThickList = Database_Services('ReadDataRow', 'APP_INFO', 'PCRB_4_TO_8_THICK') -RESList = Database_Services('ReadDataRow', 'APP_INFO', 'PCRB_4_TO_8_RES') -For each PSNo in PSNList using @FM setting fPos - PSRec = Database_Services('ReadDataRow', 'PROD_SPEC', PSNo) - If Error_Services('NoError') then - SpecEpi = PSRec - ThickData = SpecEpi<0, 13> - ResData = SpecEpi<0, 14> - Swap '~' with @SVM in ThickData - Swap '~' with @SVM in ResData - OrigThickQty = ThickData<0, 0, 4> - OrigResQty = ResData<0, 0, 4> - NewThickQty = ThickList - NewResQty = ResList - ThickData<0, 0, 4> = NewThickQty - ResData<0, 0, 4> = NewResQty - Swap @SVM with '~' in ThickData - Swap @SVM with '~' in ResData - SpecEpi<0, 13> = ThickData - SpecEpi<0, 14> = ResData - PSRec = SpecEpi - Database_Services('WriteDataRow', 'PROD_SPEC', PSNo, PSRec, True$, False$, True$) - end -Next PSNo - -// Extract new values to verify data -NewThickList = '' -NewResList = '' -For each PSNo in PSNList using @FM setting fPos - PSRec = Database_Services('ReadDataRow', 'PROD_SPEC', PSNo) - If Error_Services('NoError') then - SpecEpi = PSRec - ThickData = SpecEpi<0, 13> - ResData = SpecEpi<0, 14> - Swap '~' with @SVM in ThickData - Swap '~' with @SVM in ResData - CurrThickQty = ThickData<0, 0, 4> - CurrResQty = ResData<0, 0, 4> - NewThickList = CurrThickQty - NewResList = CurrResQty - end -Next PSNo -Database_Services('WriteDataRow', 'APP_INFO', 'PCRB_4_TO_8_THICK_VERIFY', NewThickList) -Database_Services('WriteDataRow', 'APP_INFO', 'PCRB_4_TO_8_RES_VERIFY', NewResList) - -return - -* -* SigStage = 'LWIS' -* WOMatKey = '169821*5' -* Signature_Services('CheckSigOrder', WOMatKey, SigStage) -* If Error_Services('HasError') then -* ErrMsg(Error_Services('GetMessage')) -* return -* end -* -* return -* -* InspReqList = '' -* RDSNos = Xlate('WO_STEP', '169803*1', 'RDS_KEY', 'X') -* For each RDSNo in RDSNos using @VM -* LWICINo = Xlate('RDS', RDSNo, 'LWI_CI_NO', 'X') -* InspReq = Xlate('CLEAN_INSP', LWICINo, 'INSP_REQ', 'X') -* If InspReq then -* InspReqList<-1> = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X') -* end -* Next RDSNo -* -* Database_Services('WriteDataRow', 'APP_INFO', 'INSP_INTERVAL_VERIFY', InspReqList) -* -* -* return - -* CIKey = 2380297 -* InspReq = Xlate('CLEAN_INSP', 2380297, 'INSP_REQ', 'X') -* -* Database_Services('ActivateRecord', 'CLEAN_INSP', CIKey) -* RDSNo = {RDS_NO} -* RunNo = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X') -* InspInterval = Xlate('PRS_STAGE', {PS_STAGE_KEY}, 'INSP_INTERVAL', 'X') -* InspReq = (Mod((RunNo + 1), InspInterval) EQ 0) -* ActionFlow = InspReq - - -* InspReq = Xlate('CLEAN_INSP', 2380298, 'INSP_REQ', 'X') -* Database_Services('ReleaseKeyIDLock', 'PROD_SPEC', 5192) -* If Error_Services('HasError') then -* ErrorMessage = Error_Services('GetMessage') -* end -* SoftBlock = Xlate('SCHED_DET_NG', 'C362B3694D7841F1B7FBE689422C80D1', 'HARD_BLOCK', 'X') - -* return - -* CSVOutput = 'EpiPart,Reactor Type,Reactor Utilization,MPW,WPD,WPDA' -* EpiPartNos = Xlate('SYSLISTS', 'TEST_DANIEL', '', 'X') -* EpiPartNos = Delete(EpiPartNos, 1, 0, 0) -* ReactorTypes = 'ASM,ASM+,HTR,EpiPro,GaN' -* For each EpiPartNo in EpiPartNos using @FM setting EPIndex -* MPWArray = Xlate('EPI_PART', EpiPartNo, 'MINUTES_PER_WAFER_SCHEDULER', 'X') -* For each ReactorType in ReactorTypes using ',' setting RTIndex -* ReactorUtil = Epi_Part_Services('GetReactorUtilization', ReactorType) -* RowIndex = ((EPIndex - 1) * 5) + RTIndex -* MPW = OConv(MPWArray<0, RTIndex>, 'MD3') -* WPD = Epi_Part_Services('GetIdealWafersPerDayScheduler', EpiPartNo, ReactorType, MPW) -* WPDA = Epi_Part_Services('GetAdjustedWafersPerDayScheduler', EpiPartNo, ReactorType, MPW) -* CSVOutput = EpiPartNo -* CSVOutput = ReactorUtil -* CSVOutput = ReactorType -* CSVOutput = MPW -* CSVOutput = WPD -* CSVOutput = WPDA -* Next ReactorType -* Next EpiPartNo -* -* Swap @VM with ',' in CSVOutput -* Swap @FM with CRLF$ in CSVOutput -* CSVFile = 'C:\Users\StieberD\Desktop\MPW.csv' -* OSWrite CSVOutput to CSVFile - -* return - - - -* SchedDetNGRec = Database_Services('ReadDataRow', 'SCHED_DET_NG', '4DCEC176F0774A478CD6A3C06BEBA3A8') - -PRSKeys = Database_Services('ReadDataRow', 'APP_INFO', 'SS_REDUCTION_SET') -For each PRSKey in PRSKeys using @FM - PRSRec = Database_Services('ReadDataRow', 'PRS_STAGE', PRSKey) - SSQtys = PRSRec - SSSODs = PRSRec - SSHazes = PRSRec - Locate 6 in SSQtys using @VM setting vPos then - SOD = SSSODs<0, vPos> - Haze = SSHazes<0, vPos> - Locate 25 in SSQtys using @VM setting sPos then - SSSODs<0, sPos> = SOD - SSHazes<0, sPos> = Haze - PRSRec = SSSODs - PRSRec = SSHazes - Database_Services('WriteDataRow', 'PRS_STAGE', PRSKey, PRSRec, True$, False$, True$) - end - end -Next PRSKey - -* return - -* WOStepKey = '169717*1' -* RDSNos = Xlate('WO_STEP', WOStepKey, 'RDS_KEY', 'X') -* For each RDSNo in RDSNos using @VM setting vPos -* RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) -* DateOut = RDSRec -* TimeOut = RDSRec -* RDSRec = '' -* RDSRec = '' -* Database_Services('WriteDataRow', 'RDS', RDSNo, RDSRec) -* RDSRec = DateOut -* RDSRec = TimeOut -* Database_Services('WriteDataRow', 'RDS', RDSNo, RDSRec) -* Next RDSNo -* -* return - - - -* RDSNo = 424161 -* WOWfrID = '169697*1*4' -* GaN_Services('CreateRunStageWfr', RDSNo, 'XRD', WOWfrID) -* GaN_Services('CreateRunStageWfr', RDSNo, 'PR', WOWfrID) -* Database_Services('ActivateRecord', 'REACT_RUN', RDSNo) -* ActionFlow = 0 -* InWfrIDs = {IN_WFR_ID} -* For each WfrID in InWfrIDs using @VM setting vPos -* ActionFlow += ( Xlate('WO_WFR', WfrID, 'CRITICAL_FAILURE', 'X') EQ True$ ) -* Next WfrID -* Testing = Xlate('REACT_RUN', RDSNo, 'NUM_ANKO_CRITICAL_FAIL_WFRS', 'X') - - -* LayerKeys = '' -* LayerKeys<0, -1> = '422908*L1' -* LayerKeys<0, -1> = '422908*L2' -* LayerKeys<0, -1> = '422908*2' -* MetEntered = XLATE('RDS_LAYER',LayerKeys,'TEST_MET_ENTERED','X') -* Schedule_Services('AddSchedEvent', 22, 169702, 19397, 19404, 'Test', 600) - -* For RDSTestKeyID = 400000 to 1 Step -1 -* -* If RowExists('RDS_TEST', RDSTestKeyID) then -* Database_Services('DeleteDataRow', 'RDS_TEST', RDSTestKeyID, True$) -* end -* -* Next RDSTestKeyID -* -* -* return - - -* StartKey = Xlate('DICT.RDS', '%SK%', '', 'X') -* For RDSKey = StartKey to 500000 -* If RowExists('RDS', RDSKey) then -* Database_Services('DeleteDataRow', 'RDS', RDSKey, True$, True$) -* end -* Next RDSKey -* -* - -* CheckID = '168246.1.20' -* NumDec = Count(CheckID, '.') - -* ReactorType = Xlate('WO_MAT', '168246*20', 'REACTOR_TYPE', 'X') -* CassIDSAP = Xlate('WO_MAT', '168246*20', 'CASS_ID_SAP', 'X') -* return - -CurrCassNo = '' -DateIn = '' -RDSKeys = Xlate('WO_STEP', '169583*1', 'RDS_KEY', 'X') -NumKeys = DCount(RDSKeys, @VM) -For KeyIndex = NumKeys to 1 Step -1 - RDSKey = RDSKeys<0, KeyIndex> - DateIn = Xlate('RDS', RDSKey, 'DATE_IN', 'X') -Until DateIn NE '' -Next KeyIndex -If DateIn NE '' then CurrCassNo = Xlate('RDS', RDSKey, 'CASS_NO', 'X') - -return CurrCassNo - -* GUID = RTI_CreateGUID() -table = "SCHED_DET_NG" -Open "DICT ":table To @DICT Else - RetVal = Set_FSError() - Return -End -Column = "WO_NO" -QueryParam = 169254 -search_criteria = Column:@VM:QueryParam:@FM -keylist = "" -option = "" -flag = "" -Btree.Extract(search_criteria, table, @DICT, keylist, option, flag) - -ScheduledQty = 0 - -For each KeyID in keylist using @VM - ScheduledQty += Xlate('SCHED_DET_NG', KeyID, 'EVENT_TOTAL_WFRS', 'X') -Next KeyID - - -return ScheduledQty - - -RejWfrIDs = '' -RejWfrIDs<0, -1> = '168246*23*1' -RejWfrIDs<0, -1> = '168246*23*2' -RejWfrIDs<0, -1> = '168246*23*10' -RejWfrIDs<0, -1> = '168246*23*11' -Debug -WONo = 168246 -CassNo = 23 -ncrParms = WONo:@RM -ncrParms := '1':@RM -ncrParms := CassNo:@RM ;* Place holder for WO_MAT_CASS_NO -ncrParms := '':@RM ;* Single RDS field -ncrParms := '':@RM ;* Reactor No -ncrParms := '':@RM ;* Loss Stage -ncrParms := RejWfrIDs:@RM ;* WfrIDs ;* CarrWafer IDs -ncrParms := '':@RM ;* CarrSlotIDs ;* GaN PostEpi Carrier Slot ID -> GaN non-characterization wafers -ncrParms := '':@RM ;* CassSlotIDs ;* WOMat Cassette Slot ID -> Rej from cassette -ncrParms := '' ;* RunPocketZone ;* RPZ -> Rej from susceptor - -Set_Status(0) -NCRNo = obj_NCR('CreateWfr',ncrParms) ;* Create new NCR for this wafer/group of wafers -errCode = '' -IF Get_Status(errCode) THEN - ErrMsg(errCode) -end else - Dialog_Box('NCR', @Window, NCRNo) - // Add NCRNo to the rejected wafer ID records (WO_WFR table) - For each WfrID in RejWfrIDs using @VM - WOWfrRec = Database_Services('ReadDataRow', 'WO_WFR', WfrID) - WOWfrRec = NCRNo - Database_Services('WriteDataRow', 'WO_WFR', WfrID, WOWfrRec, True$, False$, True$) - Next WfrID -end - -return - - - - - - - - - -// Requirements for makeup wafer to be considered 'Available' -// 1. Cassette has to be marked as a makeup box. -// 2. RDS has to have FQA signature. -// 3. PSN must be 'Active' (i.e. 'A') -// 4. RDS cannot have a current status of 'MT, VOID, SHIP, REJ, or HOLD'. - -* debug -* RDSKeyID = 406141 -* LWICINo = Xlate('RDS', RDSKeyID, 'LWI_CI_NO', 'X') -* - -WOMatKeyID = '169433*19' -WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKeyID) -WfrData = obj_WO_Mat('SlotWaferIDs', WOMatKeyID:@RM:WOMatRec) -debug - -* SRP_Stopwatch('Reset') -* SRP_Stopwatch('Start', 'Routine') -* CurrStatus = obj_WO_Mat('CurrStatus', WOMatKeyID) -* SRP_Stopwatch('Stop', 'Routine') -* SRP_Stopwatch('Start', 'Index') -* CurrStatus = Xlate('WO_MAT', WOMatKeyID, 'CURR_STATUS', 'X') -* SRP_Stopwatch('Stop', 'Index') -* SRP_Stopwatch('ShowAll') -* CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKeyID) -return - -AppID = @APPID<1> ;* current application -TypeID = "OIWIN" ;* OpenInsight Forms -ClassID = "" ;* Not Applicable -recompile_if_unchanged = 1 -cleanup_orphan_entities = '' -creserve_linemarks = '' - -entlistt = Get_Repos_Entities(appID, typeID, classID) - -For each EntID in entlistt using @FM - Set_Status(0) - result = Repository("COMPILE", entid, recompile_if_unchanged, cleanup_orphan_entities, preserve_linemarks) - If Get_Status(ErrCode) then - call msg(@window, 'Error Message returned: ' : ErrCode) - end - -Next EntID - -return - -LastCIKey = 2361946 - -For CIKey = 2000000 to LastCIKey Step 1 - - ROTRReactorStatus = Xlate('CLEAN_INSP', CIKey, 'ROTR_REACTOR_STATUS', 'X') - If ROTRReactorStatus NE '' then - ROTRRec = '' - ROTRRec = ROTRReactorStatus - ROTRRec = Xlate('CLEAN_INSP', CIKey, 'ROTR_REACTOR_STATUS_REASON', 'X') - ROTRRec = Xlate('CLEAN_INSP', CIKey, 'ROTR_REACTOR_NCR_COUNT', 'X') - ROTRRec = Xlate('CLEAN_INSP', CIKey, 'ROTR_REACTOR_ZERO_NCR_RUN_COUNT', 'X') - ROTRRec = Xlate('CLEAN_INSP', CIKey, 'ROTR_REACTOR_UCL_EXCEEDED_RUN_COUNT', 'X') - Database_Services('WriteDataRow', 'ROTR', CIKey, ROTRRec, True$, False$, True$) - end -Next CIKey - -return - -TempList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -// Chomp info line -TempList = Delete(TempList, 1, 0, 0) -For each KeyID in TempList using @FM - Record = Database_Services('ReadDataRow', 'RUN_STAGE_WFR', KeyID) - Database_Services('WriteDataRow', 'RUN_STAGE_WFR', KeyID, Record, True$, False$, True$) -Next KeyID - - -return - - - -Sentence = 'SELECT EA_REQUESTS' -Set_Status(0) -RList(Sentence, TARGET_ACTIVELIST$, '', '', '') -EOF = False$ -RDSList = '' -Loop - ReadNext RequestKeyID else EOF = True$ - If RequestKeyID NE '' then - RDSNo = Field(RequestKeyID, '*', 1) - RDSList<-1> = RDSNo - end -Until EOF EQ True$ -Repeat -RDSList = SRP_Array('Clean', RDSList, 'TrimAndMakeUnique', @FM) - -For each RDSNo in RDSList using @FM - ClosedFlag = Xlate('REACT_RUN', RDSNo, 'DISP_COMPLETE', 'X') - If ClosedFlag EQ True$ then - Engineering_Services('ClearEARequests', RDSNo) - end -Next RDSNo - -return - -Stages = 'BV' -Tools = 'BVS01' -For each Stage in Stages using ',' setting sPos - ToolID = Field(Tools, ',', sPos, 1) - RDSNo = 403583 - WfrID = '168521*10*7' - GaN_Services('StartWaferStage', RDSNo, WfrID, Stage, ToolID) - GaN_Services('StopWaferStage', RDSNo, WfrID, Stage) - GaN_Services('CompleteWaferStage', RDSNo, WfrID, Stage) - -Next Stage - -* -* WfrID = '168521*9*25' -* Gan_Services('CharacterizeWafer', RDSNo, WfrID) -* -* For SlotNo = 1 to 6 -* WfrID = '168521*10*':SlotNo -* Gan_Services('DispositionWfr', RDSNo, WfrID) -* Next SlotNo -* -* WfrID = '168521*10*7' -* Gan_Services('CharacterizeWafer', RDSNo, WfrID) - - -return - -* If CAN_PST exists or WET_CLEAN comp then -* CAN_PST -* end else -* If WET_CLEAN comp then -* CAN_PST -* end else -* CAN_PRE -* end -* -* end - -* Initialize Common Printer parms -* debug -* SourceFilepath = 'C:\Users\ecStieberD\Desktop\Notes\SRP\SRPUtil.ocx':\00\ -* DestFilepath = 'C:\Users\ecStieberD\Desktop\SRPUtil.ocx':\00\ -* rv = SRPWinAPI_CopyFile(GetPointer(SourceFilepath), GetPointer(DestFilepath), 0) -* -* SourceFilePath = 'C:\Users\ecStieberD\Desktop\Notes\SRP\SRPUtil.ocx' -* DestFilepath = 'C:\Users\ecStieberD\Desktop\SRPUtil.ocx' -* rv = File_Services('CopyFile', SourceFilepath, DestFilepath) - -return -For I = 1 to 100 - PageInfo = '' - PageInfo = 0.5 ;* Margins - PageInfo = 1.35 - PageInfo = 0.5 - PageInfo = 0.25 - - PageSetup = '0' ;* Portrait - Models = '' - Printers = '' - Default = '' - PrinterCount = PrintSetup(PRN_GET$, Models, Printers, Default) - - - FileNameParms = 'Printing PDF Document':@FM: '' :@FM:'':@FM: '' - TitleParms = 'Shipping Documents' - - PrintSetup = '' - PrintSetup<1,1> = '2' ;* Preview Normal - PrintSetup<1,2> = '5' ;* Display Print and PDF buttons - PrintSetup<1,3> = '0' ;* Display Printing Window - PrintSetup<1,4> = '0' ;* Normal Start Mode - - PrinterParm = '' - PrinterParm<1, 1> = 'Microsoft XPS Document Writer' - PrinterParm<1, 2> = False$ ; // Do not set Windows default printer to this printer - PrinterParm<2> = 'Ne00:' ; // Printer port - PrinterParm<3> = 100 ; // Scale - PrinterParm<4> = '' ; // Bin Number - - stat = Set_Printer('INIT', FileNameParms, 'Shipping Documents', PageInfo, PageSetup, PrintSetup, PrinterParm) - - If Stat LT 0 then - ErrMsg('Failed to initialize printer! Error code: ':Stat) - end - - stat = Set_Printer("TERM") -Next I - - -return - -* PSNList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -* PSNList = Delete(PSNList, 1, 0, 0) -* PSNList = Delete(PSNList, 1, 0, 0) -* For each PSNo in PSNList using @FM -* UVRec = Database_Services('ReadDataRow', 'PRS_STAGE', PSNo:'*UV') -* If Error_Services('NoError') then -* UVRec = 'G_UV_PRE' -* Database_Services('WriteDataRow', 'PRS_STAGE', PSNo:'*UV_PRE', UVRec) -* Database_Services('DeleteDataRow', 'PRS_STAGE', PSNo:'*UV') -* end -* Next PSNo -* -* -* return - -* Test = 25 ** 0.5 -* CmdLine = GetCommandLine() - -debug -// Run IDs to post again once we add in CAN average -RunIDs = '' -RunIDs<0,-1> = '7104399mvfet' -RunIDs<0,-1> = '7104401mvfet' -RunIDs<0,-1> = '7104403mvfet' -RunIDs<0,-1> = '7104405mvfet' -RunIDs<0,-1> = '7104407mvfet' -RunIDs<0,-1> = '7104409mvfet' -RunIDs<0,-1> = '7104411mvfet' -RunIDs<0,-1> = '7104413mvfet' -RunIDs<0,-1> = '7104415mvfet' -RunIDs<0,-1> = '7104417mvfet' -RunIDs<0,-1> = '7104419mvfet' -RunIDs<0,-1> = '7104421mvfet' - -Table = 'REACT_RUN' -Open 'DICT.REACT_RUN' to dReactRun then - For each RunID in RunIDs using @VM - Column = "GAN_RUN_ID" - Query = Column:@VM:RunID:@FM - RDSNo = "" - Option = "" - Flag = "" - Btree.Extract(Query, Table, dReactRun, RDSNo, Option, Flag) - If ( (Flag EQ 0) and (RDSNo NE '') ) then - Engineering_Services('PostEARequest', RDSNo, 'UV_PRE') - end - Next RunID -end - -return - -RunIDs = '' -RunIDs<0,-1> = '6905517hvfet' -RunIDs<0,-1> = '6905519hvfet' -RunIDs<0,-1> = '6905522hvfet' -RunIDs<0,-1> = '6905525hvfet' -RunIDs<0,-1> = '6905527hvfet' -RunIDs<0,-1> = '6905530hvfet' -RunIDs<0,-1> = '6905534hvfet' -RunIDs<0,-1> = '6905537hvfet' -RunIDs<0,-1> = '6905540hvfet' -RunIDs<0,-1> = '6905543hvfet' -RunIDs<0,-1> = '6905545hvfet' -RunIDs<0,-1> = '6905548hvfet' -RunIDs<0,-1> = '6905550hvfet' -RunIDs<0,-1> = '6905552hvfet' -RunIDs<0,-1> = '6905555hvfet' -RunIDs<0,-1> = '6905557hvfet' -RunIDs<0,-1> = '6905560hvfet' -RunIDs<0,-1> = '6905562hvfet' -RunIDs<0,-1> = '6905564hvfet' -RunIDs<0,-1> = '6905566hvfet' -RunIDs<0,-1> = '6905569hvfet' -RunIDs<0,-1> = '6905571hvfet' -RunIDs<0,-1> = '6905573hvfet' -RunIDs<0,-1> = '6905575hvfet' -RunIDs<0,-1> = '6905577hvfet' -RunIDs<0,-1> = '6905579hvfet' -RunIDs<0,-1> = '6905582hvfet' -RunIDs<0,-1> = '6905585hvfet' -RunIDs<0,-1> = '6905588hvfet' -RunIDs<0,-1> = '6905590hvfet' -RunIDs<0,-1> = '6905593hvfet' -RunIDs<0,-1> = '6905596hvfet' -RunIDs<0,-1> = '6905598hvfet' -RunIDs<0,-1> = '6905601hvfet' -RunIDs<0,-1> = '6905603hvfet' -RunIDs<0,-1> = '6905606hvfet' -RunIDs<0,-1> = '6905609hvfet' -RunIDs<0,-1> = '6905612hvfet' -RunIDs<0,-1> = '6905615hvfet' -RunIDs<0,-1> = '6905618hvfet' -RunIDs<0,-1> = '6905621hvfet' -RunIDs<0,-1> = '6905624hvfet' - -Table = 'REACT_RUN' -Open 'DICT.REACT_RUN' to dReactRun then - For each RunID in RunIDs using @VM - Column = "GAN_RUN_ID" - Query = Column:@VM:RunID:@FM - RDSNo = "" - Option = "" - Flag = "" - Btree.Extract(Query, Table, dReactRun, RDSNo, Option, Flag) - If ( (Flag EQ 0) and (RDSNo NE '') ) then - Engineering_Services('PostEARequest', RDSNo, 'PR') - end - Next RunID -end - -return - - -SpreadsheetName = '8-inch New HV Epi Development.xlsx' -WorksheetName = '8inch HELENS' -Password = 'IRMN2714' -Directory = '\\messv02ecc1.ec.local\EC_GaN_Development\R69 EPI DEVELOPMENT\DAILY RUN RECORD\' -Offset = 18 -EndCol = 'CC' - -DocPath = Directory:'\':SpreadsheetName -DocObj = Excel_Services('GetDocumentObject', DocPath, 'IRMN2714') -CellRangeBegin = 'A16644' -CellRangeEnd = 'CC16661' -CopyToCell = 'A16662' -Excel_Services('CopyCellRange', DocObj, WorksheetName, CellRangeBegin, CellRangeEnd, CopyToCell) -Excel_Services('SaveDocument', DocObj, DocPath, 'IRMN2714') -Excel_Services('CloseDocument', DocObj) - -return -* S.WONo = 169154 -* KitData = obj_Location('KitLocations',S.WONo) -* -* SWAP CRLF$ WITH @VM IN KitData -* -* S.KitLocation = KitData<1> -* I.KitLocation = S.KitLocation -* -* S.KitQty = OCONV(SUM(KitData<2>) * 25,'MD0,Z') -* I.KitQty = S.KitQty -* -* -* -* -* Open 'DICT.WO_MAT' to DictVar then -* LocVar = 'SR*KTR]' -* WONo = S.WONo -* SearchString = 'WO_NO':@VM:WONo:@FM -* SearchString := 'CURR_LOCATION':@VM:LocVar:@FM -* Flag = '' -* WOMatKeys = '' -* Btree.Extract(SearchString, 'WO_MAT', DictVar, WOMatKeys, '', Flag) -* end -* -* return -* -* If @USER4 EQ 'DANIEL_ST' then debug -* WOMatKey = '169136*22' -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* SlotNCRs = WOMatRec -* SlotNCRs<0, 22> = 168779 -* SlotNCRs<0, 23> = 168779 -* WOMatRec = SlotNCRs -* Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$) -* -* return -* -* -* RDSList = '' -* RDSList<0, -1> = 397404 -* RDSList<0, -1> = 397200 -* RDSList<0, -1> = 397181 -* RDSList<0, -1> = 396893 -* RDSList<0, -1> = 396216 -* RDSList<0, -1> = 396143 -* RDSList<0, -1> = 396015 -* RDSList<0, -1> = 397166 -* RDSList<0, -1> = 396468 -* RDSList<0, -1> = 397037 -* RDSList<0, -1> = 397270 -* RDSList<0, -1> = 397310 -* RDSList<0, -1> = 397317 -* RDSList<0, -1> = 397429 -* RDSList<0, -1> = 397526 -* RDSList<0, -1> = 397526 -* RDSList<0, -1> = 397578 -* RDSList<0, -1> = 397695 -* RDSList<0, -1> = 397764 -* RDSList<0, -1> = 397777 -* RDSList<0, -1> = 397792 -* RDSList<0, -1> = 397808 -* RDSList<0, -1> = 397821 -* RDSList<0, -1> = 397821 -* RDSList<0, -1> = 397906 -* RDSList<0, -1> = 397972 -* RDSList<0, -1> = 398063 -* RDSList<0, -1> = 398101 -* RDSList<0, -1> = 398137 -* -* For each RDSNo in RDSList using @VM -* Engineering_Services('PostEARequest', RDSNo, 'XRD') -* Next RDSNo -* -* -* -* return -* -* CIList = '' -* CIList <0, -1> = 1075260 -* CIList <0, -1> = 1075263 -* CIList <0, -1> = 1075284 -* CIList <0, -1> = 1075287 -* CIList <0, -1> = 1075296 -* CIList <0, -1> = 1075350 -* CIList <0, -1> = 1075359 -* CIList <0, -1> = 1075374 -* CIList <0, -1> = 1075380 -* CIList <0, -1> = 1075395 -* CIList <0, -1> = 1075404 -* CIList <0, -1> = 1075416 -* CIList <0, -1> = 1075425 -* CIList <0, -1> = 1075428 -* CIList <0, -1> = 1075431 -* CIList <0, -1> = 1075455 -* CIList <0, -1> = 1075458 -* CIList <0, -1> = 1075488 -* CIList <0, -1> = 1075512 -* CIList <0, -1> = 1075521 -* CIList <0, -1> = 1075533 -* CIList <0, -1> = 1075539 -* CIList <0, -1> = 1075548 -* CIList <0, -1> = 1075572 -* CIList <0, -1> = 1075584 -* CIList <0, -1> = 1075587 -* CIList <0, -1> = 1075596 -* CIList <0, -1> = 1075599 -* CIList <0, -1> = 1075602 -* CIList <0, -1> = 1075611 -* CIList <0, -1> = 1075617 -* CIList <0, -1> = 1075632 -* CIList <0, -1> = 1075635 -* CIList <0, -1> = 1075644 -* CIList <0, -1> = 1075656 -* CIList <0, -1> = 1075659 -* CIList <0, -1> = 1075662 -* CIList <0, -1> = 1075665 -* CIList <0, -1> = 1075668 -* CIList <0, -1> = 1075677 -* CIList <0, -1> = 1075683 -* CIList <0, -1> = 1075686 -* CIList <0, -1> = 1075689 -* CIList <0, -1> = 1075695 -* CIList <0, -1> = 1075758 -* CIList <0, -1> = 1075776 -* CIList <0, -1> = 1075803 -* CIList <0, -1> = 1075806 -* CIList <0, -1> = 1075818 -* CIList <0, -1> = 1075821 -* CIList <0, -1> = 1075836 -* CIList <0, -1> = 1075842 -* CIList <0, -1> = 1075857 -* CIList <0, -1> = 1075863 -* CIList <0, -1> = 1075866 -* CIList <0, -1> = 1075881 -* CIList <0, -1> = 1075896 -* CIList <0, -1> = 1075905 -* CIList <0, -1> = 1075908 -* CIList <0, -1> = 1075914 -* CIList <0, -1> = 1075923 -* CIList <0, -1> = 1075947 -* CIList <0, -1> = 1075953 -* CIList <0, -1> = 1075962 -* CIList <0, -1> = 1075968 -* CIList <0, -1> = 1075971 -* CIList <0, -1> = 1075974 -* CIList <0, -1> = 1075980 -* CIList <0, -1> = 1075989 -* CIList <0, -1> = 1076004 -* CIList <0, -1> = 1076010 -* CIList <0, -1> = 1076028 -* CIList <0, -1> = 1076031 -* CIList <0, -1> = 1076034 -* CIList <0, -1> = 1076046 -* CIList <0, -1> = 1076049 -* CIList <0, -1> = 1076068 -* CIList <0, -1> = 1076074 -* CIList <0, -1> = 1076077 -* CIList <0, -1> = 1076080 -* CIList <0, -1> = 1076086 -* CIList <0, -1> = 1076092 -* CIList <0, -1> = 1076095 -* CIList <0, -1> = 1076098 -* CIList <0, -1> = 1076104 -* CIList <0, -1> = 1076107 -* CIList <0, -1> = 1076122 -* CIList <0, -1> = 1076128 -* CIList <0, -1> = 1076131 -* CIList <0, -1> = 1076140 -* CIList <0, -1> = 1076146 -* CIList <0, -1> = 1076153 -* CIList <0, -1> = 1076159 -* CIList <0, -1> = 1076162 -* CIList <0, -1> = 1076168 -* CIList <0, -1> = 1076183 -* CIList <0, -1> = 1076189 -* CIList <0, -1> = 1076192 -* CIList <0, -1> = 1076195 -* CIList <0, -1> = 1076201 -* CIList <0, -1> = 1076207 -* CIList <0, -1> = 1076210 -* CIList <0, -1> = 1076219 -* CIList <0, -1> = 1076225 -* CIList <0, -1> = 1076231 -* CIList <0, -1> = 1076313 -* CIList <0, -1> = 1076322 -* CIList <0, -1> = 1076358 -* CIList <0, -1> = 1076361 -* CIList <0, -1> = 2346304 -* -* For each CINo in CIList using @VM -* CIRec = Database_Services('ReadDataRow', 'CLEAN_INSP', CINo) -* DummyKey = 'CLEAN_INSP*':CINo -* Database_Services('WriteDataRow', 'DUMMY', DummyKey, CIRec) -* Database_Services('DeleteDataRow', 'CLEAN_INSP', CINo) -* Next CINo -* -* return -* -* -* RunIDList = '' -* RunIDList<0, -1> = '6905525hvfet' -* RunIDList<0, -1> = '6905527hvfet' -* RunIDList<0, -1> = '6905530hvfet' -* RunIDList<0, -1> = '6905534hvfet' -* RunIDList<0, -1> = '6905537hvfet' -* RunIDList<0, -1> = '6905540hvfet' -* RunIDList<0, -1> = '6905543hvfet' -* RunIDList<0, -1> = '6905545hvfet' -* RunIDList<0, -1> = '6905548hvfet' -* RunIDList<0, -1> = '6905550hvfet' -* RunIDList<0, -1> = '6905552hvfet' -* RunIDList<0, -1> = '6905555hvfet' -* RunIDList<0, -1> = '6905557hvfet' -* RunIDList<0, -1> = '6905560hvfet' -* RunIDList<0, -1> = '6905562hvfet' -* RunIDList<0, -1> = '7103949hvfet' -* RunIDList<0, -1> = '7103959hvfet' -* RunIDList<0, -1> = '7103968hvfet' -* RunIDList<0, -1> = '7103973hvfet' -* RunIDList<0, -1> = '7103993hvfet' -* RunIDList<0, -1> = '7104044hvfet' -* RunIDList<0, -1> = '7104214hvfet' -* RunIDList<0, -1> = '7104221hvfet' -* RunIDList<0, -1> = '7104235hvfet' -* RunIDList<0, -1> = '7104240hvfet' -* RunIDList<0, -1> = '7104243hvfet' -* RunIDList<0, -1> = '7104248hvfet' -* RunIDList<0, -1> = '7104253hvfet' -* RunIDList<0, -1> = '7104257mvfet' -* RunIDList<0, -1> = '7104263mvfet' -* RunIDList<0, -1> = '7104267mvfet' -* RunIDList<0, -1> = '7104269mvfet' -* RunIDList<0, -1> = '7104271mvfet' -* RunIDList<0, -1> = '7104275mvfet' -* RunIDList<0, -1> = '7104277mvfet' -* RunIDList<0, -1> = '7104279mvfet' -* RunIDList<0, -1> = '7104281mvfet' -* RunIDList<0, -1> = '7104283mvfet' -* RunIDList<0, -1> = '7104285mvfet' -* RunIDList<0, -1> = '7104287mvfet' -* RunIDList<0, -1> = '7104289mvfet' -* RunIDList<0, -1> = '7104291mvfet' -* RunIDList<0, -1> = '7104293mvfet' -* RunIDList<0, -1> = '7103937hvfet' -* RunIDList<0, -1> = '7104261hvfet' -* -* Open 'DICT.REACT_RUN' to hDict then -* For each RunID in RunIDList using @VM setting vPos -* Query = 'GAN_RUN_ID' : @VM : RunID : @FM -* RDSNo = '' -* Option = '' -* Flag = '' -* Btree.Extract(Query, 'REACT_RUN', hDict, RDSNo, Option, Flag) -* If RDSNo NE '' then -* Engineering_Services('PostEARequest', RDSNo, 'CHAR') -* end -* Next RunID -* end -* -* return -* -* -* DocumentPath = '\\messv02ecc1.ec.local\EC_GaN_Development\R69 EPI DEVELOPMENT\DAILY RUN RECORD\FITesting.xlsx' -* DocumentPW = 'IRMN2714' -* FileHandle = File_Services('LockFile', DocumentPath, GENERIC_WRITE$, FILE_SHARE_READ$, OPEN_EXISTING$) -* If FileHandle NE FILE_ERROR$ then -* DocObj = Excel_Services('OpenDocument', DocumentPath, DocumentPW) -* WorksheetName = '8inch HELENS' -* CellRangeObj = Excel_Services('GetCellRangeObject', DocObj, WorksheetName, 'A16068', 'CC16085') -* If Error_Services('NoError') then -* rv = Send_Message.Net(CellRangeObj, 'CopyTo', 'A16104', 'System.String', 0) -* If Get_Status(StatusCode) then -* Null -* end else -* Excel_Services('SaveDocument', DocObj, DocumentPath, DocumentPW) -* If Error_Services('HasError') then -* ErrorMessage = Error_Services('GetMessage') -* end -* end -* end else -* ErrorMessage = Error_Services("GetMessage") -* end -* end -* If FileHandle NE FILE_ERROR$ then File_Services('UnlockFile', FileHandle) -* Excel_Services('CloseDocument', DocObj) -* -* return -* hDict = Database_Services('GetTableHandle', 'DICT.EA_REQUESTS') -* If Error_Services('NoError') then -* RequestKeyID = '' -* RDSNo = 394235 -* Stage = 'HALL' -* Query = 'RDS_NO' : @VM : RDSNo : @FM : 'STAGE' : @VM : Stage : @FM -* Option = '' -* Flag = '' -* Btree.Extract(Query, 'EA_REQUESTS', hDict, RequestKeyID, Option, Flag) -* If RequestKeyID EQ '' then -* // This is a new request -* Log = 'EA request posted' -* end else -* Log = 'Duplicate EA request found, request ignored.' -* end -* end -* -* -* -* return -* -* Done = False$ -* TempFilepath = '\\messv02ecc1.ec.local\EC_GaN_Development\R71 EPI DEVELOPMENT\Daily Run Record\TempBackup.xlsx' -* Filepath = '\\messv02ecc1.ec.local\EC_GaN_Development\R71 EPI DEVELOPMENT\Daily Run Record\Francois.xlsx' -* TempPath = Str(\00\, 1024) -* GetTempPath(Len(TempPath), TempPath) -* Convert \00\ to '' in TempPath -* TempFilename = Str(\00\, 1024) -* GetTempFileName(TempPath, \00\, 0, TempFilename) -* -* -* FileHandle = File_Services('LockFile', Filepath, GENERIC_READ$, FILE_SHARE_READ$, OPEN_EXISTING$) -* If FileHandle NE FILE_ERROR$ then -* -* -* File_Services('CopyFile', Filepath, TempFilepath) -* FileSize = File_Services('GetFileSize', FileHandle) -* DocObj = Excel_Services('OpenDocument', Filepath, 'IRMN2714') -* If Error_Services('NoError') then -* SRP_IO('UnlockFile', FileHandle) -* Excel_Services('SaveDocument', DocObj, Filepath, 'IRMN2714') -* If Error_Services('HasError') then -* ErrMsg(Error_Services('GetMessage')) -* end -* end -* File_Services('UnlockFile', FileHandle) -* OSDelete TempFilepath -* end -* -* return -* -* RDSNo = 393710 -* RDSCombStatus = Xlate('RDS', RDSNo, 'COMB_STATUS', 'X') -* RDSCurrStatus = Xlate('RDS', RDSNo, 'CURR_STATUS', 'X') -* -* Database_Services('ActivateRecord', 'RDS', RDSNo) -* WOMatRepStatus = XLATE('WO_MAT',{WO_MAT_KEY},'REP_STATUS','X') -* RunStatus = XLATE('REACT_RUN',@ID,'RUN_STATUS','X') -* -* RunStatus = OCONV(RunStatus,'[RUN_STATUS_CONV]') -* -* BEGIN CASE -* CASE WOMatRepStatus NE '' AND RunStatus NE '' -* Ans = WOMatRepStatus -* -* CASE WOMatRepStatus = '' AND RunStatus NE '' -* Ans = RunStatus -* -* CASE WOMatRepStatus NE '' AND RunStatus = '' -* Ans = WOMatRepStatus -* -* CASE 1 -* Ans = '' -* END CASE -* -* WOMatKey = '169056*1' -* SigProfile = Signature_Services('GetSigProfile', WOMatKey) -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* RepStatus = obj_WO_Mat('ReportStatus', WOMatKey:@RM:WOMatRec) -* -* return -* -* TestDir = '\\messv02ecc1.ec.local\EC_GaN_Development\R69 EPI DEVELOPMENT\DAILY RUN RECORD\' -* TestFilename = 'Test.xlsx' -* TestFilepath = TestDir:TestFileName -* FileHandle = SRP_IO('LockFile', TestFilepath, GENERIC_READ$, FILE_SHARE_READ$, OPEN_EXISTING$) -* If FileHandle NE FILE_ERROR$ then -* DocObj = Excel_Services('OpenDocument', TestFilepath, 'IRMN2714') -* Excel_Services('SetCellValue', DocObj, '8inch HELENS', 'A', 15779, 'This is a test') -* SRP_IO('UnlockFile', FileHandle) -* Excel_Services('SaveDocument', DocObj, TestFilepath, 'IRMN2714') -* end else -* ErrCode = SRP_IO('GetLastError') -* end -* -* TestDir = 'D:\FITemp\' -* TestFilename = '8-inch New HV Epi Development.xlsx': \00\ -* TestFilepath = TestDir:TestFileName -* lpFileName = TestFilepath ; // File to open -* dwDesiredAccess = GENERIC_WRITE$ ; // File access requested -* dwShareMode = 0 ; // Do not allow file sharing (i.e. block all other access until file handle is closed) -* lpSecurityAttributes = 0 ; // Pointer to security structure - not needed -* dwCreationDisposition = OPEN_EXISTING$ ; // Open the file only if it exists already, otherwise throw an error -* dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL$ ; // -* hTemplateFile = 0 ; // When opening an existing file, CreateFile ignores this parameter. -* FileHandle = SRPWinAPI_CreateFile(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile) -* If Assigned(FileHandle) then SRPWinAPI_CloseHandle(FileHandle) -* -* return -* -* ADUser = 'kirkland' -* LSLUser = Security_Services('GetLSLUser', ADUser) -* Member = MemberOf(LSLUser, 'ENGINEERING') -* Testing = '123' -* TestingTesting = '' -* -* return -* GaNWIPList = Database_Services('ReadDataRow', 'APP_INFO', 'GAN_WIP') -* GaNWIPList = Delete(GaNWIPList, 1, 0, 0) -* GaNWIPList = SRP_Array('Rotate', GaNWIPList, @FM, @VM) -* RDSList = GaNWIPList<2> -* RDSList = SRP_Array('Clean', RDSList, 'TrimAndMakeUnique', @VM) -* -* For each RDSNo in RDSList using @VM -* ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* WfrIDs = ReactRunRec -* WfrStages = ReactRunRec -* For each WfrID in WfrIDs using @VM -* Convert '*' to '.' in WfrID -* For each WfrStage in WfrStages using @VM -* ToolClasses = Gan_Services('GetToolClassIDs', WfrStage) -* If ToolClasses NE '' then -* InvActions = Gan_Services('GetInvActions', WfrStage) -* RunStageWfrKey = RDSNo:'*':WfrStage:'*':WfrID -* If RowExists('RUN_STAGE_WFR', RunStageWfrKey) then -* RunStageWfrRec = Database_Services('ReadDataRow', 'RUN_STAGE_WFR', RunStageWfrKey) -* OrigRunStageWfrRec = RunStageWfrRec -* If Error_Services('NoError') then -* CurrToolClasses = RunStageWfrRec -* CurrInvActions = RunStageWfrRec -* If CurrToolClasses NE ToolClasses then -* RunStageWfrRec = ToolClasses -* end -* If CurrInvActions NE InvActions then -* RunStageWfrRec = InvActions -* end -* If RunStageWfrRec NE OrigRunStageWfrRec then -* Database_Services('WriteDataRow', 'RUN_STAGE_WFR', RunStageWfrKey, RunStageWfrRec, True$, False$, True$) -* end -* end -* end -* end -* Next WfrStage -* Next WfrID -* Next RDSNo -* -* return -* -* -* ShipNo = 155379 -* COCRec = Database_Services('ReadDataRow', 'COC', ShipNo) -* Set_Status(0) -* Database_Services('WriteDataRow', 'COC', ShipNo, COCRec) -* If Get_Status(errCode) then -* Null -* end -* -* return -* -* WONos = 168781; ShipNos = 155376 -* WONos<-1> = 168801; ShipNos<-1> = 155377 -* WONos<-1> = 168802; ShipNos<-1> = 155379 -* WONos<-1> = 168685; ShipNos<-1> = 155381 -* WONos<-1> = 168829; ShipNos<-1> = 155382 -* WONos<-1> = 168684; ShipNos<-1> = 155383 -* WONos<-1> = 168852; ShipNos<-1> = 155390 -* WONos<-1> = 168817; ShipNos<-1> = 155407 -* WONos<-1> = 168756; ShipNos<-1> = 155414 -* WONos<-1> = 168854; ShipNos<-1> = 155415 -* WONos<-1> = 168803; ShipNos<-1> = 155416 -* WONos<-1> = 168701; ShipNos<-1> = 155417 -* WONos<-1> = 168665; ShipNos<-1> = 155418 -* WONos<-1> = 168671; ShipNos<-1> = 155422 -* WONos<-1> = 168720; ShipNos<-1> = 155423 -* WONos<-1> = 168490; ShipNos<-1> = 155430 -* WONos<-1> = 168837; ShipNos<-1> = 155431 -* WONos<-1> = 168691; ShipNos<-1> = 155432 -* WONos<-1> = 168651; ShipNos<-1> = 155441 -* WONos<-1> = 168760; ShipNos<-1> = 155442 -* WONos<-1> = 168827; ShipNos<-1> = 155444 -* WONos<-1> = 168780; ShipNos<-1> = 155445 -* -* FilePath = 'D:\FITemp\TSV\' -* For each WONo in WONos using @FM setting fPos -* ShipNo = ShipNos -* PickDTM = Xlate('COC', ShipNo, 'PICK_DTM', 'X') -* PickDT = OConv(Field(PickDTM, '.', 1, 1), 'D4-') -* Year = Field(PickDT, '-', 3, 1) -* Month = Field(PickDT, '-', 1, 1) -* Day = Field(PickDT, '-', 2, 1) -* PickTM = Fmt(Field(PickDTM, '.', 2, 1), 'L#6') -* Swap ':' with '-' in PickDTM -* TSVFile = '' -* SAPDeliveryNo = Xlate('COC', ShipNo, 'SAP_DEL_NO', 'X') -* ProdOrdNo = Xlate('WO_LOG', WONo, 'PROD_ORD_NO', 'X') -* CassNos = Xlate('COC', ShipNo, 'CASS_NO', 'X') -* For each CassNo in CassNos using @VM setting vPos -* WOMatKey = WONo:'*':CassNo -* SAPBatchNo = Xlate('WO_MAT', WOMatKey, 'SAP_BATCH_NO', 'X') -* TSVFile := SAPDeliveryNo : TAB$ : ProdOrdNo : TAB$ : SAPBatchNo : CRLF$ -* Next CassNo -* Counter = Fmt(fPos, 'R(0)#3') -* TSVFileName = 'Delivery_':Year:Month:Day:'-':PickTM:'-':Counter:'.tsv' -* OSWrite TSVFile on FilePath:TSVFileName -* Next WONo -* -* return -* -* Set_Status(0) -* TableKey<-1> = 155430 -* Open 'COC' to TableVar then -* rv<-1> = Get_Status(errCode) -* Set_Status(0) -* READ TableRec FROM TableVar;TableKey THEN -* rv<-1> = Get_Status(errCode) -* Set_Status(0) -* WRITE TableRec ON TableVar;TableKey THEN -* -* rv<-1> = Get_Status(errCode) -* END ELSE -* ErrorMsg<-1> = 'Unable to write ':QUOTE(TableKey):' on ':QUOTE(TableName):' table.' -* end -* end -* end -* -* -* return -* InboundPath = 'C:\Users\StieberD\Desktop\FTP_IN_TESTING\' -* -* InitDir InboundPath:'*.tsv' -* FileList<-1> = DirList() -* -* FileNames<-1> = '' -* LOOP -* FileName<-1> = FileList[1;@FM] -* FileList[1;Col2()]<-1> = "" -* -* LOCATE FileName IN FileNames BY 'AR' USING @FM SETTING Pos ELSE -* FileNames<-1> = INSERT(FileNames;Pos;0;0;FileName) -* END -* -* UNTIL FileList<-1> = "" -* REPEAT -* -* IF FileNames[-1;1]<-1> = @FM THEN FileNames[-1;1]<-1> = '' -* Test<-1> = '' -* FileCnt<-1> = COUNT(FileNames;@FM) + (FileNames NE '') -* -* FOR N<-1> = 1 TO FileCnt -* -* FileName<-1> = FileNames -* StartTime<-1> = Time() -* OSREAD FileIn FROM InboundPath:FileName THEN -* -* SWAP TAB$ WITH @VM IN FileIn -* SWAP CRCRLF$ WITH @FM IN FileIn -* SWAP CRLF$ WITH @FM IN FileIn -* -* LOOP -* LastChar<-1> = FileIn[-1;1] -* UNTIL LastChar NE @FM -* FileIn[-1;1]<-1> = '' -* REPEAT -* -* Error_Services('Clear') -* RetVal<-1> = obj_Shipment('SAPCreate';FileIn) -* -* // If RetVal<-1> = 1 then succesful -* END -* NEXT N -* -* return -* -* -* -* -* -* -* WOMatKey<-1> = '168809*1' -* WOMatRec<-1> = Database_Services('ReadDataRow'; 'WO_MAT'; WOMatKey) -* GRProps<-1> = obj_WO_Mat('GetGRProps'; WOMatKey:@RM:WOMatRec) -* GRWfrQty<-1> = GRProps<1> -* ScrapQty<-1> = GRProps<2> -* ProdTWQty<-1> = GRProps<3> -* AvailMUWfrQty<-1> = GRProps<4> -* MUCassIDs<-1> = GRProps<5> -* MUCassQtys<-1> = GRProps<6> -* String<-1> = SRPExampleDLL2() -* DotNetHandle<-1> = StartDotNet(""; "4.0") -* rv <-1> = Set_Property.NET(DotNetHandle; "AssemblyName"; "ActiveDirectory.dll") -* ADApiHandle <-1> = Create_Class.NET(DotNetHandle; "ActiveDirectory.ActiveDirectory"; 0) -* -* Username<-1> = "StieberD" -* Domain <-1> = "Infineon" -* Groups <-1> = Send_Message.NET(ADApiHandle; "GetADGroups"; Username:@FM:Domain; "System.String":@FM:"System.String") -* Convert \0A\ to @FM in Groups -* - - - diff --git a/LSL2/STPROC/TEST_DANIEL2.txt b/LSL2/STPROC/TEST_DANIEL2.txt deleted file mode 100644 index 6e243fa..0000000 --- a/LSL2/STPROC/TEST_DANIEL2.txt +++ /dev/null @@ -1,1566 +0,0 @@ -Function Test_Daniel2(Param1) -#pragma precomp SRP_PreCompiler -* -* Declare subroutine Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services -* Declare subroutine Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, FTP_Services -* Declare subroutine EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables, obj_RDS -* Declare subroutine Error_Services, RDS_Services, Dialog_Box, Insert, Unlock, QA_Services, Validate, Development_Services -* Declare subroutine Update_Index, Database_Services, Obj_WO_Mat_QA, Fmt, Yield, WinYield, Sleepery, Qa_Services, -* Declare subroutine Obj_Post_Log, GaN_Services, Excel_Services, obj_WO_React, Activate_Save_Select, Reduce, FSMsg -* Declare subroutine SRP_Stopwatch, Copy_Record_To_SQL, SQL_Services, Material_Services, Messaging_Services -* Declare subroutine Reactor_Services, Reactor_Services_Dev, SRP_Stopwatch, Btree.Extract, Set_Env, Test_Daniel3 -* Declare subroutine obj_WO_Log, SAP_Services, PSN_Services -Declare subroutine set_env, Get_Env -* Declare function Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Utility -* Declare function Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Error_Services, RDS_Services -* Declare function MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services, ErrMsg -* Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, SRP_Trim, Xlate, Obj_Wo_Mat -* Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8 -* Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services -* Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array, ICONV -* Declare function Development_Services, Obj_WO_Mat_QA, SRP_Join_Arrays, NextKey, Obj_Prod_Spec, FTP_Services, SQL_Format -* Declare function DateTime, GaN_Services, SRP_Array, Excel_Services, EpiPro_Services, Repository, RTI_Task_Submit -* Declare function RTI_Task_Status, Rds_Services, StartDotNet, Reactor_Services, SRP_Get_FileVersion, Epi_Part_Services -* Declare function Schedule_Services, List_Users, rti_lh_info_DEBUG, RTI_Lock_Owner, Popup_Services -Declare function GetCurrentProcessID, GetTickCount, Get_Env -* -$INSERT ENVIRON_CONSTANTS -* $INSERT POPUP_EQUATES -* $INSERT MSG_EQUATES -* $INSERT APPCOLORS -* $INSERT WM_IN_EQUATES -* $Insert WM_OUT_EQUATES -* $INSERT WO_LOG_EQU -* $INSERT WO_STEP_EQU -* $INSERT WO_MAT_EQUATES -* $INSERT ORDER_EQU -* $INSERT RDS_EQUATES -* $INSERT PROD_SPEC_EQUATES -* $INSERT NOTIFICATION_EQU -* $INSERT LSL_USERS_EQU -* $INSERT SECURITY_RIGHTS_EQU -* $INSERT LOGICAL -* $INSERT RTI_LH_INFO_EQUATES -* $INSERT WO_MAT_QA_EQUATES -* $INSERT CUST_EPI_PART_EQUATES -* $INSERT PRS_STAGE_EQUATES -* $Insert RLIST_EQUATES -* $Insert CLEAN_INSP_EQUATES -* $Insert TOOL_PARMS_EQUATES -* $Insert SCHEDULE_EQU -* $Insert SCHED_DET_EQUATES -* $Insert SCHEDULER_EQUATES -* $Insert NCR_EQUATES -* $Insert REACT_RUN_EQUATES -* $Insert TOOL_EQUATES -* $Insert TOOL_LOG_EQUATES -* $Insert PM_EQUATES -* $Insert WO_WFR_EQUATES -* $Insert REVDOTNETEQUATES -* $Insert REACTOR_EQUATES -* $Insert RDS_TEST_EQUATES -* $Insert RUN_STAGE_WFR_EQUATES -* -* // Reduce modes (for Select statement) -* Equ NEW_EXIST$ To 0 -* Equ NEXT_CUR$ To 1 -* Equ ADD_EXIST$ To 2 -* -* EQU COL$QA_MET_PHASE_MIN TO 17 -* -* Equ Tab$ to \09\ -* Equ CRLF$ to \0D0A\ -* Equ LF$ to \0A\ -* Equ Comma$ to ',' -* -* $INSERT PRINTSETUP_EQUATES - -Testing: - -* RTI_Set_Debugger(1, '') -* on_off = 1 -* t_flag = 1 -* set_env(ENV_DEBUGGER_ENABLED$, on_off, t_flag) -* debug -* AttributeList = ENV_DEBUGGER_ENABLED$ -* DebuggerOn = Get_Env(AttributeList) -* DebuggerOn = AttributeList - -* TickCount = GetTickCount() -* Response = 'Hello World2! Ticks: ':TickCount:' Debugger is off' -* OSWrite Response on 'D:\tmp\HelloWorld2.txt' -* -* Response = Param1 - -return - -* Testing: -* -* TickCount = GetTickCount() -* Response = 'Hello World2! Ticks: ':TickCount -* OSWrite Response on 'D:\tmp\HelloWorld2.txt' -* -* return Response - - -* -* LHInfo: -* -* Start_Window('MANAGE_REVLH_SERVER_DEBUG', '', '', '', '') -* rslt = rti_lh_info(CMD_SESSION_INFO$) -* Stack = Retstack() -* Yield() -* WinYield() -* -* return -* -* SpecType: -* -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,COPY_RECORD_TO_SQL', '', '', '') -* debug -* Copy_Record_To_Sql('RDS_LAYER', '575735*L1', 1, 'RDS_LAYER*575735*L1*WRITE*20128*51623') -* debug -* Table = 'WO_LOG' -* ID = 171828 -* -* Open 'DICT.SQL_PENDING' to pDict then -* Query = 'TABLE':@VM:Table:@FM:'RECORD':@VM:ID -* PendingKeys = '' -* Option = '' -* Flag = '' -* Btree.Extract(Query, 'SQL_PENDING', pDict, PendingKeys, Option, Flag) -* If Flag EQ 0 then -* If PendingKeys NE '' then -* debug -* Skip = True$ -* end -* end -* end -* -* Encoded = SRP_Encode('616735*L1', 'BASE64') -* Key = SRP_Decode(Encoded, 'BASE64') -* Open 'DICT.SQL_PENDING' to Dictionary then -* Keys = '' -* Flag = '' -* Btree.Extract('TABLE':@VM:'WO_LOG':@FM:'RECORD':@VM:171887, 'SQL_PENDING', Dictionary, Keys, '', Flag) -* -* end -* -* WaferSize = XLATE( 'PROD_SPEC', 3511, 'SUB_WAFER_SIZE', 'X' ) -* SubOrientation = XLATE('PROD_SPEC',3511,'SUB_ORIENTATION','X') -* hSysLists = Database_Services('GetTableHandle', 'SYSLISTS') -* Unlock hSysLists, 'Copy_Pending_Records_To_SQL' else Null -* -* Lock hSysLists, 'Copy_Pending_Records_To_SQL' then -* Unlock hSysLists, 'Copy_Pending_Records_To_SQL' else Null -* end -* -* -* return -* -* -* Wait: -* -* debug -* KeyList = Xlate('SYSLISTS', 'TEST_DANIEL2', '', 'X') -* -* Counter = 0 -* Def = "" -* Def = "Pushing WM_OUT data..." -* Def = "GC" -* Def = DCount(KeyList, @FM) -* Def = 800 -* MsgUp = Msg(@window, Def) -* -* For each Key in KeyList using @FM -* Counter += 1 -* Msg(@window, MsgUp, Counter, MSGINSTUPDATE$) -* WMOKeys = Xlate('RDS', Key, 'WM_OUT_KEY', 'X') -* If WMOKeys NE '' then -* For each WMOKey in WMOKeys using @VM -* Copy_Record_To_Sql('WM_OUT', WMOKey, 1) -* Next WMOKey -* end -* Next Key -* Msg(@window, MsgUp) ;* take down the gauge -* -* return -* -* -* FixRDSTestLimits: -* -* WONo = 171301 -* For CassNo = 41 to 70 -* WOMatKey = WONo:'*':CassNo -* RDSNo = Xlate('WO_MAT', WONo:'*':CassNo, 'RDS_NO', 'X') -* If RDSNo NE '' then -* PSN_Services('UpdateRDSMetrologyLimits', RDSNo) -* end else -* Msg(@Window, '', 'OK', '', 'Process Error':@FM:'Null RDSNo returned for WO_MAT record ':WOMatKey) -* end -* -* Next CassNo -* -* Return -* -* -* FixGaNRDS: -* debug -* // Fix REACT_RUN records -* RDSList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL_BAD') -* -* Def = "" -* Def = "Fixing RDS records..." -* Def = "GC" -* Def = DCount(RDSList, @FM) -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For each RDSNo in RDSList using @FM setting fPos -* WriteRow = False$ -* RRRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* WfrStages = RRRec -* Locate 'PLATO' in WfrStages using @VM setting PlatoPos then -* Locate 'CAN_PRE' in WfrStages using @VM setting CanPrePos then -* If PlatoPos LT CanPrePos then -* // Move PLATO after CAN_PRE -* WfrStages = Insert(WfrStages, 0, CanPrePos + 1, 0, 'PLATO') -* WfrStages = Delete(WfrStages, 0, PlatoPos, 0) -* RRRec = WfrStages -* WriteRow = True$ -* end -* end -* end -* GaNStageRoute = RRRec -* Locate 'PLATO' in GaNStageRoute using @VM setting PlatoPos then -* Locate 'CAN_PRE' in GaNStageRoute using @VM setting CanPrePos then -* If PlatoPos LT CanPrePos then -* // Move PLATO after CAN_PRE -* GaNStageRoute = Insert(GaNStageRoute, 0, CanPrePos + 1, 0, 'PLATO') -* GaNStageRoute = Delete(GaNStageRoute, 0, PlatoPos, 0) -* RRRec = GaNStageRoute -* WriteRow = True$ -* end -* end -* end -* If WriteRow EQ True$ then Database_Services('WriteDataRow', 'REACT_RUN', RDSNo, RRRec, True$, False$, True$) -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* Next RDSNo -* -* Msg(@WINDOW,MsgUp) -* -* return -* -* FixGaNPSNs: -* -* debug -* // Fix PROD_SPEC records -* PSNList = Database_Services('ReadDataRow', 'SYSLISTS', 'GAN_PSNS') -* -* Def = "" -* Def = "Fixing PROD_SPEC records..." -* Def = "GC" -* Def = DCount(PSNList, @FM) -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For each PSNo in PSNList using @FM setting fPos -* PSNRec = Database_Services('ReadDataRow', 'PROD_SPEC', PSNo) -* PRSRoute = PSNRec -* Locate 'PLATO' in PRSRoute using @VM setting PlatoPos then -* Locate 'CAN_PRE' in PRSRoute using @VM setting CanPrePos then -* If PlatoPos LT CanPrePos then -* // Move PLATO after CAN_PRE -* PRSRoute = Insert(PRSRoute, 0, CanPrePos + 1, 0, 'PLATO') -* PRSRoute = Delete(PRSRoute, 0, PlatoPos, 0) -* PSNRec = PRSRoute -* Database_Services('WriteDataRow', 'PROD_SPEC', PSNo, PSNRec, True$, False$, True$) -* end -* end -* end -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* Next PSNo -* -* Msg(@WINDOW,MsgUp) -* -* return -* -* -* CleanRepMan: -* -* Open 'REPLICATION_QUEUE_GLOBAL_PUBLIC' to TableHandle then -* Select TableHandle -* EOF = False$ -* Loop -* ReadNext @ID else EOF = True$ -* Until EOF -* If Not(Num(@ID)) and Not(Index(@ID, '%', 1)) then -* Delete TableHandle, @ID then Null -* end -* Repeat -* end -* -* -* return -* -* Process: -* -* TableName = 'RDS_QUEUE' -* CursorVar = '' -* Flag = '' -* SortList = '#RDS_NO' -* ReduceScript = 'WITH {RDS_NO} FROM 460000 TO 479999' -* Mode = 1 ; // Use next cursor available -* EOF = False$ -* -* Reduce(ReduceScript, SortList, Mode, TableName, CursorVar, Flag) -* If Flag then -* Select TableName By SortList Using CursorVar then -* Loop -* Readnext KeyID using CursorVar by AT else EOF = True$ -* Until EOF -* Material_Services('UpdateRDSStatus', KeyID) -* If Error_Services('NoError') then -* // Successfully updated the current status, so delete the request from the queue. -* Database_Services('DeleteDataRow', 'RDS_QUEUE', KeyID, True$, True$) -* end -* Repeat -* End else -* status = Set_FSError() -* end -* end -* -* return -* -* -* ScratchPad: -* -* -* BadList = '' -* StartRDSKey = 400000 -* StopRDSKey = Xlate('DICT.RDS', '%SK%', '', 'X') - 1 -* NumKeys = StopRDSKey - StartRDSKey -* Counter = 0 -* -* Def = "" -* Def = "Scanning RDS records..." -* Def = "GC" -* Def = NumKeys -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For RDSNo = StartRDSKey to StopRDSKey -* Counter += 1 -* WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X') -* MakeupBox = Xlate('WO_MAT', WOMatKey, 'MAKEUP_BOX', 'X') -* ReactorType = Xlate('RDS', RDSNo, 'REACTOR_TYPE', 'X') -* SAPBatchNo = Xlate('WO_MAT', WOMatKey, 'SAP_BATCH_NO', 'X') -* FullBoxReject = (SAPBatchNo[-2, 2] EQ '.R') -* If ( (MakeupBox NE True$) and (ReactorType NE 'EPP') and (ReactorType NE 'GAN') and (FullBoxReject EQ False$) ) then -* InvLocs = Xlate('WO_MAT', WOMatKey, 'INV_LOCATION', 'X') -* InvActions = Xlate('WO_MAT', WOMatKey, 'INV_ACTION', 'X') -* Locate 'PTO' in InvLocs using @VM setting vPos else -* QASig = Xlate('RDS', RDSNo, 'SUP_VER_SIG', 'X') -* If QASig NE '' then -* BadList<-1> = RDSNo -* end -* end -* end -* Running = Msg(@WINDOW, MsgUp, Counter, MSGINSTUPDATE$) ;* Update message -* Next RDSNo -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL5', BadList) -* -* Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* -* debug -* WOMatQAKey = '170194*1' -* TypeOver = '' -* TypeOver = WOMatQAKey -* TypeOver = WO_MAT_QA_SLOT$ -* TypeOver = 'F' -* SelKey = Popup(@Window, TypeOver, 'WO_MAT_QA_QUERY') -* -** Code Generated from UI Workspace ** -* -* Popup_Rec = '' -* Popup_Rec = -1 -* Popup_Rec = -1 -* Popup_Rec = -1 -* Popup_Rec = -1 -* Popup_Rec = 16777215 -* Popup_Rec = 'Tahoma':@Svm:'-11':@Svm:'400':@Svm:'0':@Svm:'0':@Svm:'5':@Svm:'0':@Svm:'39':@Svm:'0':@Svm:'0':@Svm:'0':@Svm:'0':@Svm:'11':@Svm:'2':@Svm:'0':@Svm:'21' -* Popup_Rec = '' -* DisplayText = '' -* DisplayText := '1':@Vm:'L' -* Popup_Rec = DisplayText -* Popup_Rec = '1':@Svm:'5':@Svm:'C':@Svm:'C':@Svm:'':@Svm:'Slot':@Vm:'':@Svm:'':@Svm:'':@Svm:'':@Svm:'':@Svm:'' -* Popup_Rec = 'L' -* Popup_Rec = 1 -* Popup_Rec = 'QA Metrology Lookup' -* Popup_Rec = '' -* Popup_Rec = "F" -* Popup_Rec = 1 -* Popup_Rec = 1 -* Popup_Rec = 1 -* Popup_Rec = 1 -* Popup_Rec = 1 -* Popup_Rec = 1 -* Popup_Rec = 1 -* Popup_Rec = 0 -* Popup_Rec = 0 -* Popup_Rec = 0 -* Popup_Rec = 0 -* Popup_Rec = 0 -* Popup_Rec = 0 -* Popup_Rec = 1 -* Popup_Rec = 0 -* Popup_Rec = 0 -* -* x = Popup(@Window, Popup_Rec, '') -* RetVal = Popup_Services('DisplayPopupLiteral', 'Select QA Met Slot', 'Slot', '1':@VM:'L', 1) -* debug -* return -* -* -* CleanSched: -* -* For ReactNo = 40 to 52 Step 2 -* debug -* ReactRec = Database_Services('ReadDataRow', 'REACTOR', ReactNo) -* SchedList = ReactRec -* For each SchedKey in SchedList using @VM setting vPos -* Database_Services('DeleteDataRow', 'SCHED_DET_NG', SchedKey) -* Next SchedKey -* SchedList = '' -* ReactRec = SchedList -* Database_Services('WriteDataRow', 'REACTOR', ReactNo, ReactRec) -* Next ReactNo -* -* -* -* return -* -* -* Compare: -* -* Headers = 'Reactor Type':@VM:'PSN#':@VM:'Prod Ver No':@VM:'PSN MPW':@VM:'Epi Part No':@VM:'Epi Part MPW' -* ReportList = Headers -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL2') -* Def = "" -* Def = "Building Report..." -* Def = "GC" -* Def = DCount(KeyList, @FM) -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* KeyCounter = 0 -* RowIndex = 1 -* For each PSNo in KeyList using @FM setting KeyCounter -* ReactType = '' -* ProdVerNo = '' -* PSNMPW = '' -* EpiPartNo = '' -* EpiPartMPW = '' -* Running = Msg(@WINDOW, MsgUp, KeyCounter, MSGINSTUPDATE$) ;* Update message -* ReactType = Xlate('PROD_SPEC', PSNo, 'REACTOR_TYPE', 'X') -* Locate ReactType in 'ASM,ASM+,HTR,EPP,GAN' using ',' setting vPos else -* vPos = 0 -* end -* PSNMPW = OConv(Xlate('PROD_SPEC', PSNo, 'MINUTES_PER_WAFER', 'X'), 'MD3') -* ProdVerNos = Xlate('PROD_SPEC', PSNo, 'PROD_VER_NO', 'X') -* If ProdVerNos NE '' then -* For each ProdVerNo in ProdVerNos using @VM setting Dummy -* EpiPartNo = Xlate('PROD_VER', ProdVerNo, 'EPI_PART_NO', 'X') -* EpiPartMPW = OConv(Xlate('EPI_PART', EpiPartNo, 'MINUTES_PER_WAFER_SCHEDULER', 'X'), 'MD3') -* If vPos GT 0 then -* EpiPartMPW = EpiPartMPW<0, vPos> -* end else -* EpiPartMPW = '' -* end -* RowIndex += 1 -* ReportList = ReactType -* ReportList = PSNo -* ReportList = ProdVerNo -* ReportList = PSNMPW -* ReportList = EpiPartNo -* ReportList = EpiPartMPW -* Next ProdVerNo -* end else -* RowIndex += 1 -* ReportList = ReactType -* ReportList = PSNo -* ReportList = ProdVerNo -* ReportList = PSNMPW -* ReportList = EpiPartNo -* ReportList = EpiPartMPW -* end -* Next PSNo -* -* Swap @VM with ',' in ReportList -* Swap @FM with CRLF$ in ReportList -* Filepath = 'C:\Users\StieberD\Desktop\report.csv' -* OSWrite ReportList on Filepath -* Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* -* Script: -* -* Headers = 'Reactor':@VM:'Work Order':@VM:'Start':@VM:'Stop':@VM:'Cassettes':@VM:'Wafer Size':@VM -* Headers := 'PSN Target Thickness':@VM:'PSN#':@VM:'PSN MPW':@VM:'Epi Part MPW':@VM:'Epi WPD':@VM:'Epi WPDA':@VM:'Availablility' -* ReportList = Headers -* BadKeyList = '' -* Query = 'SELECT SCHED_DET_NG WITH STOP_DTM GT "11/03/2021"' -* Set_Status(0) -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* NumKeys = @RecCount -* EOF = False$ -* RowIndex = 1 -* Def = "" -* Def = "Building Report..." -* Def = "GC" -* Def = NumKeys -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* KeyCounter = 0 -* If Not(Get_Status(ErrCode)) then -* Loop -* ReadNext KeyID else EOF = True$ -* Until EOF -* KeyCounter += 1 -* Running = Msg(@WINDOW, MsgUp, KeyCounter, MSGINSTUPDATE$) ;* Update message -* Database_Services('ActivateRecord', 'SCHED_DET_NG', KeyID) -* ReactNo = {REACT_NO} -* WONo = {WO_NO} -* If WONo NE '' then -* ReactType = Xlate('REACTOR', ReactNo, 'REACT_TYPE', 'X') -* If ReactType EQ 'HTR' then -* RowIndex += 1 -* StartDTM = OConv({START_DTM}, 'DT2/^H') -* StopDTM = OConv({STOP_DTM}, 'DT2/^H') -* Cassettes = ((Xlate('WO_LOG', WONo, 'QTY', 'X'))/25) -* WaferSize = Xlate('WO_LOG', WONo, 'WAFER_SIZE', 'X') -* PSNo = Xlate('WO_STEP', WONo:'*1', 'PROD_SPEC_ID', 'X') -* PSNTargetThick = OConv(Sum(Xlate('PROD_SPEC', PSNo, 'THICK_TARGET_ALL', 'X')), 'MD3') -* PSNMPW = OConv(Xlate('PROD_SPEC', PSNo, 'MINUTES_PER_WAFER', 'X'), 'MD3') -* EpiPartNo = Xlate('PROD_SPEC', PSNo, 'EPI_PART_NO', 'X') -* EpiPartMPW = OConv(Xlate('EPI_PART', EpiPartNo, 'MINUTES_PER_WAFER_SCHEDULER', 'X'), 'MD3') -* EpiPartMPW = EpiPartMPW<0, 3> -* If EpiPartMPW NE '' then -* EpiWPD = Epi_Part_Services('GetIdealWafersPerDayScheduler', EpiPartNo, ReactType, EpiPartMPW) -* EpiWPDA = Epi_Part_Services('GetAdjustedWafersPerDayScheduler', EpiPartNo, ReactType, EpiPartMPW) -* end else -* EpiWPD = '' -* EpiWPDA = '' -* end -* Availability = Epi_Part_Services('GetReactorUtilization', 'HTR') -* ReportList = 'R':ReactNo -* ReportList = WONo -* ReportList = StartDTM -* ReportList = StopDTM -* ReportList = Cassettes -* ReportList = WaferSize -* ReportList = PSNTargetThick -* ReportList = PSNo -* ReportList = PSNMPW -* ReportList = EpiPartMPW -* ReportList = EpiWPD -* ReportList = EpiWPDA -* ReportList = Availability -* end -* end else -* BadKeyList<-1> = KeyID -* end -* Repeat -* end -* -* Swap @VM with ',' in ReportList -* Swap @FM with CRLF$ in ReportList -* Filepath = 'C:\Users\StieberD\Desktop\report.csv' -* OSWrite ReportList on Filepath -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL3', BadKeyList) -* Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* Set_Env(ENV_DEBUGGER_INTERCEPT_PROC$, 'TEST_DANIEL3', 1) -* Set_Env(ENV_DEBUGGER_ENABLED$, 2, 1) -* Result = 4/0 -* -* -* // cleanup -* Set_Env(ENV_DEBUGGER_ENABLED$, 1, 1) -* -* return -* -* -* Open 'REPLICATION_QUEUE_LSL2_WO_MAT' to TableHandle then -* Select TableHandle -* EOF = False$ -* Loop -* ReadNext @ID else EOF = True$ -* Until EOF -* TransType = Field(@ID, '*', 1) -* If TransType EQ 'WRITE' then -* Delete TableHandle, @ID then Null -* end -* Repeat -* end -* -* -* -* -* -* -* -* return -* -* WONo = 170528 -* CassNo = 29 -* WOMatKey = WONo:'*':CassNo -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* GRProps = obj_WO_Mat('GetGRProps', WOMatKey:@RM:WOMatRec) -* GRWfrQty -* ScrapQty -* ProdTWQty -* AvailMUWfrQty -* MUCassIDs -* MUCassQtys -* -* return -* -* -* 483953 -* BadList = '' -* NextRDSKey = 475000 -* StartRDSKey = 400000 -* StopRDSKey = Xlate('DICT.RDS', '%SK%', '', 'X') - 1 -* NumKeys = StopRDSKey - StartRDSKey -* Counter = 0 -* -* Def = "" -* Def = "Scanning RDS records..." -* Def = "GC" -* Def = NumKeys -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For RDSNo = StartRDSKey to StopRDSKey -* Counter += 1 -* WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X') -* MakeupBox = Xlate('WO_MAT', WOMatKey, 'MAKEUP_BOX', 'X') -* If MakeupBox NE True$ then -* InvLocs = Xlate('WO_MAT', WOMatKey, 'INV_LOCATION', 'X') -* InvActions = Xlate('WO_MAT', WOMatKey, 'INV_ACTION', 'X') -* Locate 'PTO' in InvLocs using @VM setting vPos else -* QASig = Xlate('RDS', RDSNo, 'SUP_VER_SIG', 'X') -* If QASig NE '' then -* BadList<-1> = RDSNo -* end -* end -* end -* Running = Msg(@WINDOW, MsgUp, Counter, MSGINSTUPDATE$) ;* Update message -* Next RDSNo -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL5', BadList) -* -* Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* -* Fixit: -* debug -* Timestamp = Datetime() -* ErrorList = '' -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL4') -* NumKeys = DCount(KeyList, @FM) -* -* Def = "" -* Def = "Fixing Material Log Entries..." -* Def = "GC" -* Def = NumKeys -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For each RDSNo in KeyList using @FM setting fPos -* RDSNo = Xlate('WO_MAT', WOMatKey, 'RDS_NO', 'X') -* WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X') -* If WOMatKey NE '' then -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* InvActions = WOMatRec -* Locate '1QA' in InvActions using @VM setting vPos else -* Locate 'LBLCHK' in InvActions using @VM setting vPos then -* QASig = Xlate('RDS', RDSNo, 'SUP_VER_SIG', 'X') -* QASigTime = Xlate('RDS', RDSNo, 'SUP_VER_SIG_TIME', 'X') -* QASigDate = Xlate('RDS', RDSNo, 'SUP_VER_SIG_DATE', 'X') -* QASigDTM = QASigDate + (QASigTime/86400) -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, '1QA') -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, 'CR') -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, 'QA') -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, 'OI ADMIN') -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, Timestamp) -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, '') -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, '') -* -* * WOMatRec = 'PLACE' -* * WOMatRec = '1K' -* * WOMatRec = 'PTI' -* * WOMatRec = 'OI_ADMIN' -* * WOMatRec = Timestamp -* * WOMatRec = RDSNo -* * WOMatRec = '' -* -* Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$) -* If Error_Services('HasError') then -* ErrorList<-1> = RDSNo -* end -* end -* end -* end else -* ErrorList<-1> = RDSNo -* end -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* Next WOMatKey -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL_ERROR', ErrorList) -* -* Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* debug -* WOMatKey = '170542*30' -* // Write success packaging -* LogFile = 'WO_MAT' -* Action = 'PACK' -* WhCd = 'CR' -* LocCd = 'PACK' -* UserID = @User4 -* Tag = 'Packaging complete' -* ToolID = '' -* -* WONo = Field(WOMatKey, '*', 1, 1) -* CassNo = Field(WOMatKey, '*', 2, 1) -* -* InvDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS') -* Set_Status(0) -* aiParms = 'WO_MAT':@RM:WONo:@RM:CassNo:@RM:WhCd:'*':LocCd:@RM:Action:@RM:InvDTM:@RM:UserID:@RM:Tag:@RM:ToolID -* obj_WO_Mat('AddInvTrans', aiParms) -* If Get_Status(errCode) then -* debug -* Null -* end -* -* return -* -* Script: -* -* WOMatKey = '170599*2' -* LogFile = 'WO_MAT' -* Action = 'PLACE' -* WhCd = 'CR' -* LocCd = 'QA' -* UserID = @User4 -* Tag = '170599.2' -* ToolID = '' -* errCode = '' -* WONo = Field(WOMatKey, '*', 1, 1) -* CassNo = Field(WOMatKey, '*', 2, 1) -* InvDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS') -* -* WOMLParms = LogFile:@RM -* WOMLParms := InvDTM:@RM -* WOMLParms := Action:@RM -* WOMLParms := WhCd:@RM -* WOMLParms := LocCd:@RM -* WOMLParms := WONo:@RM -* WOMLParms := CassNo:@RM -* WOMLParms := UserID:@RM -* WOMLParms := Tag:@RM -* WOMLParms := ToolID -* -* Set_Status(0) -* obj_WO_Mat_Log('Create',WOMLParms) -* -* aiParms = 'WO_MAT':@RM:WONo:@RM:CassNo:@RM:WhCd:'*':LocCd:@RM:Action:@RM:InvDTM:@RM:UserID:@RM:Tag:@RM:ToolID -* obj_WO_Mat('AddInvTrans', aiParms) -* -* errCode = '' -* -* IF Get_Status(errCode) THEN -* debug -* end -* -* return -* -* Script: -* debug -* BadList = '' -* RDSNos = 482815:@FM ; //Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL_LIST') -* For each RDSNo in RDSNos using @FM setting fPos -* WfrIDs = Xlate('REACT_RUN', RDSNo, 'IN_WFR_ID', 'X') -* For each WfrID in WfrIDs using @VM setting vPos -* GaN_Services('WithdrawWfr', RDSNo, WfrID) -* Next WfrID -* GaN_Services('SplitSelection', RDSNo) -* ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* If Error_Services('NoError') then -* ReactRunRec = '' -* Database_Services('WriteDataRow', 'REACT_RUN', RDSNo, ReactRunRec, True$, False$, True$) -* If Error_Services('HasError') then -* BadList<-1> = RDSNo -* end -* end else -* BadList<-1> = RDSNo -* end -* Next RDSNo -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL_ERROR', BadList) -* -* -* return -* -* -* -* return -* -* OPEN 'SCHED_DET_NG' TO SchedDetTable then -* OPEN 'DICT.SCHED_DET_NG' TO @DICT then -* Today = Datetime() -* SchedDetKeys = '' -* SelectSent = 'SELECT SCHED_DET_NG WITH STOP_DTM GE ':Today:' BY REACT_NO' -* -* RList(SelectSent,TARGET_ACTIVELIST$,'','','') -* IF Get_Status(errCode) THEN -* ErrMsg(errCode) -* RETURN -* END -* -* Done = 0 -* @ID = '' -* LOOP -* PrevSchedDetKey = @ID -* READNEXT @ID ELSE Done = 1 -* UNTIL Done -* SchedDetKeys<-1> = @ID -* REPEAT -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL2', SchedDetKeys) -* end -* end -* -* -* return -* -* WONo = 170326 -* For CassNo = 1 to 76 step 1 -* WOMatKey = WONo:'*':CassNo -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* WOMatRec = WONo:'*1*':CassNo -* WOMatRec = WONo:'*1*':CassNo -* Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$) -* Next CassNo -* -* -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL4') -* For each RDSNo in KeyList using @FM -* -* RDSTestKeys = Xlate('RDS', RDSNo, 'RDS_TEST_KEYS', 'X') -* If RDSTestKeys NE '' then -* For each RDSTestKey in RDSTestKeys using @VM -* RDSTestRec = Database_Services('ReadDataRow', 'RDS_TEST', RDSTestKey) -* RDSTestRec = 'LSL_8IN' -* Database_Services('WriteDataRow', 'RDS_TEST', RDSTestKey, RDSTestRec) -* Next RDSTestKey -* end -* -* Next RDSNo -* -* CtrlVer = 1.2 -* Msg(@Window, '', 'OK', '', 'Control Version':@FM:CtrlVer) -* *Version = SRP_Get_FileVersion("D:\apps\OICurrent\SRPControls.ocx") -* Version = SRP_Get_FileVersion("C:\Program Files (x86)\RevSoft\OIClient\SRPControls.ocx") -* -* return -* -* CutoffDate = Date() - 912 ; // 2.5 years -* RemoveList = '' -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -* For each WOMatKey in KeyList using @FM setting fPos -* -* WONo = Field(WOMatKey, '*', 1) -* WOEntryDt = Xlate('WO_LOG', WONo, 'ENTRY_DATE', 'X') -* If WOEntryDt LT CutoffDate then -* RemoveList<-1> = WOMatKey -* end -* -* ReactType = Xlate('WO_MAT', WOMatKey, 'REACTOR_TYPE', 'X') -* If ReactType EQ 'EPP' then -* -* end else -* RDSNo = Xlate('WO_MAT', WOMatKey, 'RDS_NO', 'X') -* DateOut = Xlate('RDS', RDSNo, 'DATE_OUT', 'X') -* CutoffDate = Date() - 730 -* If ( (DateOut LT CutoffDate) or (DateOut EQ '') ) then -* // Old makeup cassette -* end -* end -* -* Next WOMatKey -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL2', RemoveList) -* -* return -* -* -* WOMatKey = '170484*9' -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* debug -* GRProps = obj_WO_Mat('GetGRProps',WOMatKey:@RM:WOMatRec) -* -* WMOKey = '170328*1*62' -* WMORec = Database_Services('ReadDataRow', 'WM_OUT', WMOKey) -* CurrStatus = obj_WM_Out('CurrStatus', WMOKey:@RM:WMORec) -* RepStatus = Xlate('WM_OUT', WMOKey, 'REP_STATUS', 'X') -* -* -* WOMatKey = '170328*62' -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* RepStatus = obj_WO_Mat('ReportStatus', WOMatKey:@RM:WOMatRec) -* -* WOStepKey = '170422*1' -* LoadCount = Sum(Xlate('WO_STEP', WOStepKey, 'ALL_RDS_WFRS_EPI_LOAD', 'X')) -* WONo = 170328 -* EventWfrs = 444 -* WOQty = Xlate('WO_LOG', WONo, 'QTY', 'X') -* FirstWfr = (WOQty - EventWfrs) / 25 -* FirstWfr = FirstWfr[-1, 'B.'] -* FirstWfr = (FirstWfr * .25) + 1 -* -* return -* -* -* StartDate = Date() - 1 -* EndDate = Date() - 1 -* -* For Date = StartDate to EndDate Step 1 -* -* Reactor_Services('ClearWafersExpected', OConv(Date, 'D')) -* Reactor_Services('ClearWafersProcessed', OConv(Date, 'D')) -* Reactor_Services('CreatePerformanceTrackers', OConv(Date, 'D'), True$) -* Reactor_Services('UpdatePerformanceTrackers', OConv(Date, 'D'), True$) -* -* Next Date -* -* -* For Date = StartDate to EndDate Step 1 -* -* Reactor_Services_Dev('ClearWafersExpectedDev', OConv(Date, 'D')) -* Reactor_Services_Dev('ClearWafersProcessedDev', OConv(Date, 'D')) -* Reactor_Services_Dev('CreatePerformanceTrackersDev', OConv(Date, 'D'), True$) -* Reactor_Services_Dev('UpdatePerformanceTrackersDev', OConv(Date, 'D'), True$) -* -* Next Date -* -* ZombieList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -* For each EventID in ZombieList using @FM setting fPos -* Database_Services('DeleteDataRow', 'SCHED_DET_NG', EventID, True$, False$) -* Next EventID -* -* -* -* RDSList = '' -* RDSList<-1> = 469318 -* RDSList<-1> = 469320 -* RDSKey = Dialog_Box('NDW_RDS_QUERY', @Window, RDSList) -* Debug -* Messaging_Services('SendMessage', 'RefreshSchedule', 'Response', '', 'All', '', 'EventHandler', 'SCHEDULER_DEV' : ',OMNIEVENT,@MESSAGE,@ARGUMENTS') -* EOF = False$ -* Query = 'SELECT WO_SCHEDULE_NG WITH UNSCHED_QTY EQ 0' -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* Loop -* Readnext WOLogKeyID else EOF = True$ -* Until EOF = True$ -* Database_Services('DeleteDataRow', 'WO_SCHEDULE_NG', WOLogKeyID) -* Repeat -* -* -* WOMatKey = Xlate('RDS', 469320, 'WO_MAT_KEY', 'X') -* WOMatKey = Xlate('RDS', 469318, 'WO_MAT_KEY', 'X') -* -* RType = Xlate('RDS', 469320, 'REACTOR_TYPE', 'X') -* RType = Xlate('RDS', 469318, 'REACTOR_TYPE', 'X') -* -* RxList = Reactor_Services('GetReactorNumbers') -* For each Reactor in RxList using @FM setting vPos -* -* ReactRec = Database_Services('ReadDataRow', 'REACTOR', Reactor) -* If ReactRec NE '' then -* ReactRec = '' -* Database_Services('WriteDataRow', 'REACTOR', Reactor, ReactRec, True$, False$, True$) -* end -* -* Next Reactor -* -* return -* -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -* -* Def = "" -* Def = "Populating Test Wafer Data..." -* Def = "GC" -* Def = Dcount(KeyList, @FM) -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For each RDSNo in KeyList using @FM setting fPos -* -* ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* Database_Services('WriteDataRow', 'REACT_RUN', RDSNo, ReactRunRec, True$, False$, True$) -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* Next RDSNo -* -* Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* -* TestRevDotNetCommon: -* -* //Define the dotNet version -* RevDotNetCommon = '' -* DotNetHandle = StartDotNet("", '', RevDotNetCommon) -* -* DotNetDir = CheckDotNet('4.0'):'\' -* SqlClientDLLPath = DotNetDir:'System.Data.dll' -* ConnectionString = 'Password=mesa@1234@IQSDMS1!0987;Persist Security Info=True;User ID=IQSDMS1;Initial Catalog=G4Wafers_01;Data Source=messv01ec.ec.local\PROD1,53959' -* //Specify the DLL -* rv = Set_Property.NET(DotNetHandle, "AssemblyName", SqlClientDLLPath, RevDotNetCommon) -* //Define the classes -* SqlConnectionObj = Create_Class.NET(DotNetHandle, "System.Data.SqlClient.SqlConnection", 0, ConnectionString, 'System.String', RevDotNetCommon) -* IF Get_Status(errCode) THEN -* ErrMsg(errCode) -* END else -* mthds = Get_Info.Net(SqlConnectionObj, REVDOTNET_INFO_METHODS, RevDotNetCommon) -* Set_Status(0) -* rv = Send_Message.Net(SqlConnectionObj, "Open", RevDotNetCommon) -* -* IF Not(Get_Status(errCode)) THEN -* ConnectionState = Get_Property.Net(SqlConnectionObj, "State", RevDotNetCommon) -* -* If ConnectionState EQ 'Open' then -* SQLStatement = "select [Probe_Key] from [G4Wafers_01].[dbo].[Probe3]" -* Params = SQLStatement:@FM:SqlConnectionObj -* ParamTypes = 'System.String':@FM:'RevDotNet' -* Set_Status(0) -* SqlCommandObj = Create_Class.NET(DotNetHandle, "System.Data.SqlClient.SqlCommand", 0, Params, ParamTypes, RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* SqlCommandMethods = Get_Info.Net(SqlCommandObj, REVDOTNET_INFO_METHODS) -* Set_Status(0) -* ProbeKey = Send_Message.Net(SqlCommandObj, "ExecuteScalar", RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* If ( (ProbeKey NE 0) and (ProbeKey NE '') ) then -* NewProbeKey = ProbeKey + 1 -* SQLStatement = 'update [G4Wafers_01].[dbo].[Probe3] set [Probe_Key] = ':NewProbeKey:' where [Probe_Key] = ':ProbeKey -* Set_Status(0) -* rv = Set_Property.NET(SqlCommandObj, "CommandText", SQLStatement, RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* Set_Status(0) -* rv = Send_Message.Net(SqlCommandObj, "ExecuteNonQuery", RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* // Verify Probe Key was updated -* SQLStatement = "select [Probe_Key] from [G4Wafers_01].[dbo].[Probe3]" -* Set_Status(0) -* rv = Set_Property.NET(SqlCommandObj, "CommandText", SQLStatement, RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* Set_Status(0) -* VerifyProbeKey = Send_Message.Net(SqlCommandObj, "ExecuteScalar", RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* If VerifyProbeKey NE NewProbeKey then -* // Log error -* end -* end -* end -* end -* end -* end else -* // Log error -* end -* end -* end -* rv = Send_Message.Net(SqlConnectionObj, 'Close', RevDotNetCommon) -* ConnectionState = Get_Property.Net(SqlConnectionObj, "State", RevDotNetCommon) -* end -* end -* end -* Free_Class.Net('', RevDotNetCommon) -* -* return -* -* -* Main: -* -* -* objConnection = SQL_Services('GetConnectionObject', 'SPC') -* -* If objConnection then -* -* Query = "select [Probe_Key] from [G4Wafers_01].[dbo].[Probe2]" -* SQL_Services('ExecuteQuery', objConnection, Query, True$) -* -* SQL_Services('DestroyConnectionObject', objConnection) -* end -* -* -* -* return -* -* -* -* -* Test5: -* -* ConnString = Database_Services('ReadDataRow', 'SERVERS', 'SPC') -* ConnString = Delete(ConnString, 2, 0, 0) -* ProviderIdx = IndexC(ConnString, 'Provider', 1) -* ConnString = ConnString[(ProviderIdx + 1), 999] -* ProviderEndIdx = Index(ConnString, ';', 1) -* ConnString = ConnString[(ProviderEndIdx + 1), 999] -* CIKey = 2409742 -* InspReq = Xlate('CLEAN_INSP', CIKey, 'SPEC_INSP_REQ', 'X') -* If InspReq EQ '' then InspReq = Xlate('CLEAN_INSP', CIKey, 'INSP_REQ', 'X') -* -* InspFreq = Xlate('CLEAN_INSP', CIKey, 'INSP_INTERVAL', 'X') -* If InspFreq NE '' then -* // Use the stored interval -* RDSNo = Xlate('CLEAN_INSP', CIKey, 'RDS_NO', 'X') -* PSNo = Xlate('CLEAN_INSP', CIKey, 'PS_NO', 'X') -* WONo = Xlate('CLEAN_INSP', CIKey, 'WO_NO', 'X') -* WOQty = Xlate('WO_LOG', WONo, 'QTY', 'X') -* RunNo = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X') -* StageKey = PSNo:'*LWI' -* InspInterval = Xlate('PRS_STAGE', StageKey, 'INSP_INTERVAL', 'X') -* LastRun = ( (RunNo * 25) EQ WOQty ) -* InspReq = ( (Mod((RunNo - 1), InspInterval) EQ 0) or LastRun ) -* end else -* // Use the current PRS_STAGE interval -* InspReq = Xlate('CLEAN_INSP', CIKey, 'INSP_REQ', 'X') -* end -* -* return -* -* -* Export: -* -* NonEppList = '' -* WOMatList = Database_Services('ReadDataRow', 'SYSLISTS', 'NULL_RDS_NON_EPP') -* -* For each WOMatKey in WOMatList using @FM setting fPos -* -* ReactorType = Xlate('WO_MAT', WOMatKey, 'REACTOR_TYPE', 'X') -* If ReactorType NE 'EPP' and ReactorType NE 'GAN' then -* NonEppList<-1> = WOMatKey -* end -* Next WOMatKey -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'NULL_RDS_NON_EPP', NonEppList) -* -* NonEppList = Database_Services('ReadDataRow', 'SYSLISTS', 'NULL_RDS_NON_EPP') -* Swap @FM with CRLF$ in NonEppList -* OSWrite NonEppList on 'C:\Users\StieberD\Desktop\null-rds-non-epp.csv' -* -* -* -* return -* -* -* -* -* WOMatPush: -* -* * WOMatKeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'FABTIME_PUSH') -* * -* * NumWOMatKeys = DCount(WOMatKeyList, @FM) -* * -* * Def = "" -* * Def = "Updating WO_MAT..." -* * Def = "GC" -* * Def = NumWOMatKeys -* * Def = 600 -* * MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* * Table = 'WO_MAT' -* * WOMatKeyListIndex = 1 -* * NewWOMatKeyList = WOMatKeyList -* * Loop -* * ID = WOMatKeyList -* * Copy_Record_To_SQL(Table, ID, 1) -* * NewWOMatKeyList = Delete(NewWOMatKeyList, 1, 0, 0) -* * WOMatKeyListIndex += 1 -* * Database_Services('WriteDataRow', 'SYSLISTS', 'FABTIME_PUSH', NewWOMatKeyList) -* * Running = Msg(@WINDOW, MsgUp, WOMatKeyListIndex, MSGINSTUPDATE$) ;* Update message -* * Until WOMatKeyListIndex GE NumWOMatKeys -* * Repeat -* * -* * Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* -* TaskSubmit: -* -* TaskID = RTI_Task_Submit('', 'TEST_DANIEL', '', '', '', '') -* -* If TaskID NE 0 then -* Done = False$ -* TaskResponse = '' -* Loop -* Status = RTI_Task_Status(TaskID, TaskResponse) -* If (Status EQ 'COMPLETED') OR (Status EQ 'ERROR') then Done = True$ -* Until Done -* Repeat -* end else -* // Track if task id wasn't created at all. -* end -* StatusError = Get_Status(errCode) -* If (Index(errCode, 'SHELLEXECUTE', 1)) NE 0 then StatusError = 0 -* -* -* return -* -* retval = Utility("PRINTSETUP") -* -* IF NOT(ASSIGNED(PrinterID)) THEN PrinterID = '' -* IF NOT(ASSIGNED(RetDefault)) THEN RetDefault = '' -* -* Printers = '' -* Default = '' -* -* //PrintCount = PrintSetupNew(Printers,Default) ;* OI routine returns printer names, driver, port information -* //end else -* PrintCount = PrintSetup(PRN_GET$,'',Printers,Default) ;* OI routine returns printer names, driver, port information -* //end -* -* DefPrinter = Default[1,','] -* DefPort = FIELD(Default,',',3) -* DefLine = DefPrinter:' on ':DefPort -* -* If Default NE 'Microsoft XPS Document Writer,winspool,Ne00:' then -* Null -* PrintSetup(PRN_SET$, 'Microsoft XPS Document Writer,winspool,Ne00:') -* end -* -* return -* -* -* // Import 6 inch Excel spreadsheet -* -* RetainFilepath = 'D:\Apps\Temp\6in-IFEPI GaN Retain Inventory.xlsx' -* RetainFilepath = 'D:\Apps\Temp\8in-IFEpi GaN Retain Inventory.xlsx' -* RetainFilepath = 'D:\Apps\Temp\Sample.xlsx' -* RetainExcelHandle = Excel_Services('OpenDocument', RetainFilepath) -* RetainWorksheet = 'Sheet1' -* NumExcelRows = Excel_Services('GetNumRows', RetainExcelHandle, RetainWorksheet) -* -* Open 'DICT.REACT_RUN' to @DICT then -* For ExcelRow = 2 to NumExcelRows -* -* RunID = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'A', ExcelRow) ) -* Convert @Upper.Case to @Lower.Case in RunID -* RDSNo = '' -* Column = 'GAN_RUN_ID' -* SearchString = Column:@VM:RunID:@FM -* Btree.Extract(SearchString, 'REACT_RUN', @DICT, RDSNo) -* If RDSNo NE '' then -* ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* If Error_Services('NoError') then -* RRRecipe = ReactRunRec -* RRPart = Xlate('REACT_RUN', RDSNo, 'EPI_PART_NO', 'X') -* RRScribes = Xlate('REACT_RUN', RDSNo, 'WFR_SCRIBES', 'X') -* InWfrIDs = ReactRunRec -* -* * Read the data from the Excel retain spreadsheet * -* Recipe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'B', ExcelRow) ) -* Pocket = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'C', ExcelRow) ) -* If Pocket _NEC 'ref' then -* Scribe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'D', ExcelRow) ) -* Grade = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'E', ExcelRow) ) -* Part = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'F', ExcelRow) ) -* WorkOrder = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'G', ExcelRow) ) -* RetainBox = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'H', ExcelRow) ) -* RetainSlot = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'I', ExcelRow) ) -* Operator = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'J', ExcelRow) ) -* RetainDTM = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'K', ExcelRow) ) -* CurrLoc = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'L', ExcelRow) ) -* Status = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'M', ExcelRow) ) -* Comment = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'N', ExcelRow) ) -* -* Begin Case -* Case Operator _EQC 'AH' -* RetainSig = 'ANTHONY_H' -* Case Operator _EQC 'SB' -* RetainSig = 'SYEDA_B' -* Case Operator _EQC 'PM' -* RetainSig = 'PEYTON_M' -* Case Operator _EQC 'JL' -* RetainSig = 'JAVIER_L' -* Case Operator _EQC 'PS' -* RetainSig = 'PRISCILA_S' -* Case Operator _EQC 'NC' -* RetainSig = 'NIKOLAS_C' -* Case Operator _EQC 'HG' -* RetainSig = 'HECTOR_G' -* Case Operator _EQC 'ES' -* RetainSig = 'ESTEBAN_S' -* Case Operator _EQC 'AD' -* RetainSig = 'ALIYAH_D' -* Case Operator _EQC 'LB' -* RetainSig = 'LACEY_B' -* Case Operator _EQC 'IP' -* RetainSig = 'IAN_P' -* Case Operator _EQC 'RC' -* RetainSig = 'RYAN_C' -* Case Operator _EQC 'GR' -* RetainSig = 'GEORGE_R' -* Case Operator _EQC 'AH/JL' -* RetainSig = 'ANTHONY_H' -* Case Operator _EQC 'NC/JL' -* RetainSig = 'NIKOLAS_C' -* Case Operator _EQC 'SW' -* RetainSig = 'STEVEN_W' -* Case Otherwise$ -* RetainSig = '' -* End Case -* -* // Truncate DTM to just the date, then convert to internal format -* RetainDate = RetainDTM[1, 'F '] -* RetainDate = IConv(RetainDate, 'D') -* -* * Clean the data * -* // Format the Recipe -* Convert @Lower.Case to @Upper.Case in Recipe -* // Format the Pocket -* If Pocket[1, 1] NE '0' then Pocket = '0':Pocket -* // Format the Scribe -* Convert @Lower.Case to @Upper.Case in Scribe -* // Format the Grade -* Begin Case -* Case Grade _EQC 'aborted' -* Grade = 'Aborted' -* Case Grade _EQC 'CT' -* Grade = 'CT' -* Case ( (Grade _EQC 'Eng test') or (Grade _EQC 'Eng test') or (Grade _EQC 'Engtest') or (Grade _EQC 'Test') ) -* Grade = 'Eng Test' -* Case Grade _EQC 'Eq Failure' -* Grade = 'EQ Failure' -* Case Grade _EQC 'Mechanical' -* Grade = 'Mechanical' -* Case Grade _EQC 'NA' -* Grade = 'NA' -* Case Grade _EQC 'retain' -* Grade = 'Retain' -* Case Grade _EQC 'scrap' -* Grade = 'Scrap' -* Case Grade _EQC 'Terminated' -* Grade = 'Terminated' -* Case Grade _EQC '' -* Grade = '' -* Case Otherwise$ -* Null -* End Case -* // Format the Part No -* Convert @Lower.Case to @Upper.Case in Part -* // Format the Current Location -* Begin Case -* Case CurrLoc _EQC 'Cleanroom' -* CurrLoc = 'Cleanroom' -* Case ( (CurrLoc _EQC 'Wafer Destroyed') or (CurrLoc _EQC 'Wafers Destroyed') or (CurrLoc _EQC 'Wasfer Destroyed') ) -* CurrLoc = 'Wafer Destroyed' -* Case CurrLoc _EQC 'Warehouse' -* CurrLoc = 'Warehouse' -* End Case -* -* * Write the data to the WO_WFR record * -* WfrIndex = Pocket + 0 ; // Convert string to integer and trim 0 padding -* -* RRScribe = RRScribes<0, WfrIndex> -* WfrID = InWfrIDs<0, WfrIndex> -* WOWfrRec = Database_Services('ReadDataRow', 'WO_WFR', WfrID) -* If Error_Services('NoError') then -* WOWfrRec = Grade -* WOWfrRec = RunID -* WOWfrRec = Pocket -* WOWfrRec = Scribe -* WOWfrRec = RetainBox -* WOWfrRec = RetainSlot -* WOWfrRec = CurrLoc -* WOWfrRec = Comment -* WOWfrRec = Status -* WOWfrRec = RetainSig -* WOWfrRec = RetainDate -* Database_Services('WriteDataRow', 'WO_WFR', WfrID, WOWfrRec, True$, False$, True$) -* end -* end -* end -* end -* Next ExcelRow -* end -* Excel_Services('CloseDocument', RetainExcelHandle) -* -* // Import 8 inch Excel spreadsheet -* -* RetainFilepath = 'D:\Apps\Temp\8in-IFEpi GaN Retain Inventory.xlsx' -* RetainExcelHandle = Excel_Services('OpenDocument', RetainFilepath) -* RetainWorksheet = 'Sheet1' -* NumExcelRows = Excel_Services('GetNumRows', RetainExcelHandle, RetainWorksheet) -* -* Open 'DICT.REACT_RUN' to @DICT then -* For ExcelRow = 2 to NumExcelRows -* -* RunID = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'A', ExcelRow) ) -* Convert @Upper.Case to @Lower.Case in RunID -* RDSNo = '' -* Column = 'GAN_RUN_ID' -* SearchString = Column:@VM:RunID:@FM -* Btree.Extract(SearchString, 'REACT_RUN', @DICT, RDSNo) -* If RDSNo NE '' then -* ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* If Error_Services('NoError') then -* RRRecipe = ReactRunRec -* RRPart = Xlate('REACT_RUN', RDSNo, 'EPI_PART_NO', 'X') -* RRScribes = Xlate('REACT_RUN', RDSNo, 'WFR_SCRIBES', 'X') -* InWfrIDs = ReactRunRec -* -* * Read the data from the Excel retain spreadsheet * -* Recipe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'B', ExcelRow) ) -* Pocket = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'C', ExcelRow) ) -* If Pocket _NEC 'ref' then -* Scribe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'D', ExcelRow) ) -* Grade = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'E', ExcelRow) ) -* Part = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'F', ExcelRow) ) -* WorkOrder = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'G', ExcelRow) ) -* RetainBox = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'H', ExcelRow) ) -* RetainSlot = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'I', ExcelRow) ) -* Operator = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'J', ExcelRow) ) -* RetainDate = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'K', ExcelRow) ) -* CurrLoc = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'L', ExcelRow) ) -* Status = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'M', ExcelRow) ) -* Comment = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'N', ExcelRow) ) -* -* Begin Case -* Case Operator _EQC 'AH' -* RetainSig = 'ANTHONY_H' -* Case Operator _EQC 'SB' -* RetainSig = 'SYEDA_B' -* Case Operator _EQC 'PM' -* RetainSig = 'PEYTON_M' -* Case Operator _EQC 'JL' -* RetainSig = 'JAVIER_L' -* Case Operator _EQC 'PS' -* RetainSig = 'PRISCILA_S' -* Case Operator _EQC 'NC' -* RetainSig = 'NIKOLAS_C' -* Case Operator _EQC 'HG' -* RetainSig = 'HECTOR_G' -* Case Operator _EQC 'ES' -* RetainSig = 'ESTEBAN_S' -* Case Operator _EQC 'AD' -* RetainSig = 'ALIYAH_D' -* Case Operator _EQC 'LB' -* RetainSig = 'LACEY_B' -* Case Operator _EQC 'IP' -* RetainSig = 'IAN_P' -* Case Operator _EQC 'RC' -* RetainSig = 'RYAN_C' -* Case Operator _EQC 'GR' -* RetainSig = 'GEORGE_R' -* Case Operator _EQC 'AH/JL' -* RetainSig = 'ANTHONY_H' -* Case Operator _EQC 'NC/JL' -* RetainSig = 'NIKOLAS_C' -* Case Operator _EQC 'SW' -* RetainSig = 'STEVEN_W' -* Case Otherwise$ -* RetainSig = '' -* End Case -* -* // Truncate DTM to just the date, then convert to internal format -* RetainDate = RetainDTM[1, 'F '] -* RetainDate = IConv(RetainDate, 'D') -* -* * Clean the data * -* // Format the Recipe -* Convert @Lower.Case to @Upper.Case in Recipe -* // Format the Pocket -* If Pocket[1, 1] NE '0' then Pocket = '0':Pocket -* // Format the Scribe -* Convert @Lower.Case to @Upper.Case in Scribe -* // Format the Grade -* Begin Case -* Case Grade _EQC 'aborted' -* Grade = 'Aborted' -* Case Grade _EQC 'CT' -* Grade = 'CT' -* Case ( (Grade _EQC 'Eng test') or (Grade _EQC 'Eng test') or (Grade _EQC 'Engtest') or (Grade _EQC 'Test') ) -* Grade = 'Eng Test' -* Case Grade _EQC 'Eq Failure' -* Grade = 'EQ Failure' -* Case Grade _EQC 'Mechanical' -* Grade = 'Mechanical' -* Case Grade _EQC 'NA' -* Grade = 'NA' -* Case Grade _EQC 'retain' -* Grade = 'Retain' -* Case Grade _EQC 'scrap' -* Grade = 'Scrap' -* Case Grade _EQC 'Terminated' -* Grade = 'Terminated' -* Case Grade _EQC '' -* Grade = '' -* Case Otherwise$ -* Null -* End Case -* // Format the Part No -* Convert @Lower.Case to @Upper.Case in Part -* // Format the Current Location -* Begin Case -* Case CurrLoc _EQC 'Cleanroom' -* CurrLoc = 'Cleanroom' -* Case ( (CurrLoc _EQC 'Wafer Destroyed') or (CurrLoc _EQC 'Wafers Destroyed') or (CurrLoc _EQC 'Wasfer Destroyed') ) -* CurrLoc = 'Wafer Destroyed' -* Case CurrLoc _EQC 'Warehouse' -* CurrLoc = 'Warehouse' -* End Case -* -* * Write the data to the WO_WFR record * -* WfrIndex = Pocket + 0 ; // Convert string to integer and trim 0 padding -* -* RRScribe = RRScribes<0, WfrIndex> -* WfrID = InWfrIDs<0, WfrIndex> -* WOWfrRec = Database_Services('ReadDataRow', 'WO_WFR', WfrID) -* If Error_Services('NoError') then -* WOWfrRec = Grade -* WOWfrRec = RunID -* WOWfrRec = Pocket -* WOWfrRec = Scribe -* WOWfrRec = RetainBox -* WOWfrRec = RetainSlot -* WOWfrRec = CurrLoc -* WOWfrRec = Comment -* WOWfrRec = Status -* WOWfrRec = RetainSig -* WOWfrRec = RetainDate -* Database_Services('WriteDataRow', 'WO_WFR', WfrID, WOWfrRec, True$, False$, True$) -* end -* end -* end -* end -* Next ExcelRow -* end -* Excel_Services('CloseDocument', RetainExcelHandle) -* -* return - - - diff --git a/LSL2/STPROC/TEST_DANIEL3_DEV.txt b/LSL2/STPROC/TEST_DANIEL3_DEV.txt deleted file mode 100644 index 285de5b..0000000 --- a/LSL2/STPROC/TEST_DANIEL3_DEV.txt +++ /dev/null @@ -1,440 +0,0 @@ -Function Test_Daniel3_DEV() -#pragma precomp SRP_PreCompiler - -Declare subroutine Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services -Declare subroutine Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, FTP_Services -Declare subroutine EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables, obj_RDS -Declare subroutine Error_Services, RDS_Services, Dialog_Box, Insert, Unlock, QA_Services, Validate, Development_Services -Declare subroutine Update_Index, Database_Services, Obj_WO_Mat_QA, Fmt, Yield, WinYield, Sleepery, Qa_Services, Reactor_Services -Declare subroutine Obj_Post_Log, GaN_Services, Excel_Services, obj_WO_React, Activate_Save_Select, Reduce, FSMsg -Declare subroutine SRP_Stopwatch, Copy_Record_To_SQL -Declare function Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Utility -Declare function Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Error_Services, RDS_Services -Declare function MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services, ErrMsg -Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, SRP_Trim, Xlate, Obj_Wo_Mat -Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8 -Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services -Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array, ICONV -Declare function Development_Services, Obj_WO_Mat_QA, SRP_Join_Arrays, NextKey, Obj_Prod_Spec, FTP_Services, SQL_Format -Declare function DateTime, GaN_Services, SRP_Array, Excel_Services, EpiPro_Services, Repository, RTI_Task_Submit -Declare function RTI_Task_Status, Rds_Services - -Declare subroutine SRP_Stopwatch, Btree.Extract - - -$INSERT POPUP_EQUATES -$INSERT MSG_EQUATES -$INSERT APPCOLORS -$INSERT WM_IN_EQUATES -$Insert WM_OUT_EQUATES -$INSERT WO_LOG_EQU -$INSERT WO_STEP_EQU -$INSERT WO_MAT_EQUATES -$INSERT ORDER_EQU -$INSERT RDS_EQUATES -$INSERT PROD_SPEC_EQU -$INSERT NOTIFICATION_EQU -$INSERT LSL_USERS_EQU -$INSERT SECURITY_RIGHTS_EQU -$INSERT LOGICAL -$INSERT RTI_LH_INFO_EQUATES -$INSERT WO_MAT_QA_EQUATES -$INSERT CUST_EPI_PART_EQUATES -$INSERT PRS_STAGE_EQUATES -$Insert RLIST_EQUATES -$Insert CLEAN_INSP_EQUATES -$Insert TOOL_PARMS_EQUATES -$Insert SCHEDULE_EQU -$Insert SCHED_DET_EQUATES -$Insert SCHEDULER_EQUATES -$Insert NCR_EQUATES -$Insert REACT_RUN_EQUATES -$Insert TOOL_EQUATES -$Insert TOOL_LOG_EQUATES -$Insert PM_EQUATES -$Insert WO_WFR_EQUATES -$Insert DICT_EQUATES -$Insert RTI_DEBUG_COMMON -$Insert PRINTSETUP_EQUATES - -// Reduce modes (for Select statement) -Equ NEW_EXIST$ To 0 -Equ NEXT_CUR$ To 1 -Equ ADD_EXIST$ To 2 - -EQU COL$QA_MET_PHASE_MIN TO 17 - -Equ Tab$ to \09\ -Equ CRLF$ to \0D0A\ -Equ LF$ to \0A\ -Equ Comma$ to ',' - -LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\SQL_Backlog' -LogDate = Oconv(Date(), 'D4/') -LogTime = Oconv(Time(), 'MTS') -LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Quarantine Log.csv' -Headers = 'Logging DTM' : @FM : 'Debug Info' -objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$) -LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM - -Main: - - LogData = LoggingDTM : @RM : SPStatus@ : @RM : SPStatCode@ : @RM : Curr_Program@ : @RM : CallDepth@ : @RM : LineNo@ : @RM : CallStack@ - Swap @RM with @FM in LogData - Logging_Services('AppendLog', objLog, LogData, @RM, @FM) - -return - - TaskID = RTI_Task_Submit('', 'TEST_DANIEL', '', '', '', '') - - If TaskID NE 0 then - Done = False$ - TaskResponse = '' - Loop - Status = RTI_Task_Status(TaskID, TaskResponse) - If (Status EQ 'COMPLETED') OR (Status EQ 'ERROR') then Done = True$ - Until Done - Repeat - end else - // Track if task id wasn't created at all. - end - StatusError = Get_Status(errCode) - If (Index(errCode, 'SHELLEXECUTE', 1)) NE 0 then StatusError = 0 - - -return - -* retval = Utility("PRINTSETUP") - - IF NOT(ASSIGNED(PrinterID)) THEN PrinterID = '' - IF NOT(ASSIGNED(RetDefault)) THEN RetDefault = '' - - Printers = '' - Default = '' - IF @User4 EQ 'DAN_CR' then debug - //PrintCount = PrintSetupNew(Printers,Default) ;* OI routine returns printer names, driver, port information - //end else - PrintCount = PrintSetup(PRN_GET$,'',Printers,Default) ;* OI routine returns printer names, driver, port information - //end - - DefPrinter = Default[1,','] - DefPort = FIELD(Default,',',3) - DefLine = DefPrinter:' on ':DefPort - -* If Default NE 'Microsoft XPS Document Writer,winspool,Ne00:' then -* Null - PrintSetup(PRN_SET$, 'Microsoft XPS Document Writer,winspool,Ne00:') -* end - -return - - - // Import 6 inch Excel spreadsheet - - RetainFilepath = 'D:\Apps\Temp\6in-IFEPI GaN Retain Inventory.xlsx' -* RetainFilepath = 'D:\Apps\Temp\8in-IFEpi GaN Retain Inventory.xlsx' -* RetainFilepath = 'D:\Apps\Temp\Sample.xlsx' - RetainExcelHandle = Excel_Services('OpenDocument', RetainFilepath) - RetainWorksheet = 'Sheet1' - NumExcelRows = Excel_Services('GetNumRows', RetainExcelHandle, RetainWorksheet) - - Open 'DICT.REACT_RUN' to @DICT then - For ExcelRow = 2 to NumExcelRows - - RunID = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'A', ExcelRow) ) - Convert @Upper.Case to @Lower.Case in RunID - RDSNo = '' - Column = 'GAN_RUN_ID' - SearchString = Column:@VM:RunID:@FM - Btree.Extract(SearchString, 'REACT_RUN', @DICT, RDSNo) - If RDSNo NE '' then - ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) - If Error_Services('NoError') then - RRRecipe = ReactRunRec - RRPart = Xlate('REACT_RUN', RDSNo, 'EPI_PART_NO', 'X') - RRScribes = Xlate('REACT_RUN', RDSNo, 'WFR_SCRIBES', 'X') - InWfrIDs = ReactRunRec - - * Read the data from the Excel retain spreadsheet * - Recipe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'B', ExcelRow) ) - Pocket = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'C', ExcelRow) ) - If Pocket _NEC 'ref' then - Scribe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'D', ExcelRow) ) - Grade = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'E', ExcelRow) ) - Part = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'F', ExcelRow) ) - WorkOrder = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'G', ExcelRow) ) - RetainBox = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'H', ExcelRow) ) - RetainSlot = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'I', ExcelRow) ) - Operator = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'J', ExcelRow) ) - RetainDTM = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'K', ExcelRow) ) - CurrLoc = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'L', ExcelRow) ) - Status = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'M', ExcelRow) ) - Comment = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'N', ExcelRow) ) - - Begin Case - Case Operator _EQC 'AH' - RetainSig = 'ANTHONY_H' - Case Operator _EQC 'SB' - RetainSig = 'SYEDA_B' - Case Operator _EQC 'PM' - RetainSig = 'PEYTON_M' - Case Operator _EQC 'JL' - RetainSig = 'JAVIER_L' - Case Operator _EQC 'PS' - RetainSig = 'PRISCILA_S' - Case Operator _EQC 'NC' - RetainSig = 'NIKOLAS_C' - Case Operator _EQC 'HG' - RetainSig = 'HECTOR_G' - Case Operator _EQC 'ES' - RetainSig = 'ESTEBAN_S' - Case Operator _EQC 'AD' - RetainSig = 'ALIYAH_D' - Case Operator _EQC 'LB' - RetainSig = 'LACEY_B' - Case Operator _EQC 'IP' - RetainSig = 'IAN_P' - Case Operator _EQC 'RC' - RetainSig = 'RYAN_C' - Case Operator _EQC 'GR' - RetainSig = 'GEORGE_R' - Case Operator _EQC 'AH/JL' - RetainSig = 'ANTHONY_H' - Case Operator _EQC 'NC/JL' - RetainSig = 'NIKOLAS_C' - Case Operator _EQC 'SW' - RetainSig = 'STEVEN_W' - Case Otherwise$ - RetainSig = '' - End Case - - // Truncate DTM to just the date, then convert to internal format - RetainDate = RetainDTM[1, 'F '] - RetainDate = IConv(RetainDate, 'D') - - * Clean the data * - // Format the Recipe - Convert @Lower.Case to @Upper.Case in Recipe - // Format the Pocket - If Pocket[1, 1] NE '0' then Pocket = '0':Pocket - // Format the Scribe - Convert @Lower.Case to @Upper.Case in Scribe - // Format the Grade - Begin Case - Case Grade _EQC 'aborted' - Grade = 'Aborted' - Case Grade _EQC 'CT' - Grade = 'CT' - Case ( (Grade _EQC 'Eng test') or (Grade _EQC 'Eng test') or (Grade _EQC 'Engtest') or (Grade _EQC 'Test') ) - Grade = 'Eng Test' - Case Grade _EQC 'Eq Failure' - Grade = 'EQ Failure' - Case Grade _EQC 'Mechanical' - Grade = 'Mechanical' - Case Grade _EQC 'NA' - Grade = 'NA' - Case Grade _EQC 'retain' - Grade = 'Retain' - Case Grade _EQC 'scrap' - Grade = 'Scrap' - Case Grade _EQC 'Terminated' - Grade = 'Terminated' - Case Grade _EQC '' - Grade = '' - Case Otherwise$ - Null - End Case - // Format the Part No - Convert @Lower.Case to @Upper.Case in Part - // Format the Current Location - Begin Case - Case CurrLoc _EQC 'Cleanroom' - CurrLoc = 'Cleanroom' - Case ( (CurrLoc _EQC 'Wafer Destroyed') or (CurrLoc _EQC 'Wafers Destroyed') or (CurrLoc _EQC 'Wasfer Destroyed') ) - CurrLoc = 'Wafer Destroyed' - Case CurrLoc _EQC 'Warehouse' - CurrLoc = 'Warehouse' - End Case - - * Write the data to the WO_WFR record * - WfrIndex = Pocket + 0 ; // Convert string to integer and trim 0 padding - - RRScribe = RRScribes<0, WfrIndex> - WfrID = InWfrIDs<0, WfrIndex> - WOWfrRec = Database_Services('ReadDataRow', 'WO_WFR', WfrID) - If Error_Services('NoError') then -* WOWfrRec = Grade -* WOWfrRec = RunID -* WOWfrRec = Pocket -* WOWfrRec = Scribe -* WOWfrRec = RetainBox -* WOWfrRec = RetainSlot -* WOWfrRec = CurrLoc -* WOWfrRec = Comment -* WOWfrRec = Status -* WOWfrRec = RetainSig - WOWfrRec = RetainDate - Database_Services('WriteDataRow', 'WO_WFR', WfrID, WOWfrRec, True$, False$, True$) - end - end - end - end - Next ExcelRow - end - Excel_Services('CloseDocument', RetainExcelHandle) - - // Import 8 inch Excel spreadsheet - - RetainFilepath = 'D:\Apps\Temp\8in-IFEpi GaN Retain Inventory.xlsx' - RetainExcelHandle = Excel_Services('OpenDocument', RetainFilepath) - RetainWorksheet = 'Sheet1' - NumExcelRows = Excel_Services('GetNumRows', RetainExcelHandle, RetainWorksheet) - - Open 'DICT.REACT_RUN' to @DICT then - For ExcelRow = 2 to NumExcelRows - - RunID = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'A', ExcelRow) ) - Convert @Upper.Case to @Lower.Case in RunID - RDSNo = '' - Column = 'GAN_RUN_ID' - SearchString = Column:@VM:RunID:@FM - Btree.Extract(SearchString, 'REACT_RUN', @DICT, RDSNo) - If RDSNo NE '' then - ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) - If Error_Services('NoError') then - RRRecipe = ReactRunRec - RRPart = Xlate('REACT_RUN', RDSNo, 'EPI_PART_NO', 'X') - RRScribes = Xlate('REACT_RUN', RDSNo, 'WFR_SCRIBES', 'X') - InWfrIDs = ReactRunRec - - * Read the data from the Excel retain spreadsheet * - Recipe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'B', ExcelRow) ) - Pocket = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'C', ExcelRow) ) - If Pocket _NEC 'ref' then - Scribe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'D', ExcelRow) ) - Grade = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'E', ExcelRow) ) - Part = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'F', ExcelRow) ) - WorkOrder = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'G', ExcelRow) ) - RetainBox = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'H', ExcelRow) ) - RetainSlot = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'I', ExcelRow) ) - Operator = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'J', ExcelRow) ) - RetainDate = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'K', ExcelRow) ) - CurrLoc = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'L', ExcelRow) ) - Status = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'M', ExcelRow) ) - Comment = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'N', ExcelRow) ) - - Begin Case - Case Operator _EQC 'AH' - RetainSig = 'ANTHONY_H' - Case Operator _EQC 'SB' - RetainSig = 'SYEDA_B' - Case Operator _EQC 'PM' - RetainSig = 'PEYTON_M' - Case Operator _EQC 'JL' - RetainSig = 'JAVIER_L' - Case Operator _EQC 'PS' - RetainSig = 'PRISCILA_S' - Case Operator _EQC 'NC' - RetainSig = 'NIKOLAS_C' - Case Operator _EQC 'HG' - RetainSig = 'HECTOR_G' - Case Operator _EQC 'ES' - RetainSig = 'ESTEBAN_S' - Case Operator _EQC 'AD' - RetainSig = 'ALIYAH_D' - Case Operator _EQC 'LB' - RetainSig = 'LACEY_B' - Case Operator _EQC 'IP' - RetainSig = 'IAN_P' - Case Operator _EQC 'RC' - RetainSig = 'RYAN_C' - Case Operator _EQC 'GR' - RetainSig = 'GEORGE_R' - Case Operator _EQC 'AH/JL' - RetainSig = 'ANTHONY_H' - Case Operator _EQC 'NC/JL' - RetainSig = 'NIKOLAS_C' - Case Operator _EQC 'SW' - RetainSig = 'STEVEN_W' - Case Otherwise$ - RetainSig = '' - End Case - - // Truncate DTM to just the date, then convert to internal format - RetainDate = RetainDTM[1, 'F '] - RetainDate = IConv(RetainDate, 'D') - - * Clean the data * - // Format the Recipe - Convert @Lower.Case to @Upper.Case in Recipe - // Format the Pocket - If Pocket[1, 1] NE '0' then Pocket = '0':Pocket - // Format the Scribe - Convert @Lower.Case to @Upper.Case in Scribe - // Format the Grade - Begin Case - Case Grade _EQC 'aborted' - Grade = 'Aborted' - Case Grade _EQC 'CT' - Grade = 'CT' - Case ( (Grade _EQC 'Eng test') or (Grade _EQC 'Eng test') or (Grade _EQC 'Engtest') or (Grade _EQC 'Test') ) - Grade = 'Eng Test' - Case Grade _EQC 'Eq Failure' - Grade = 'EQ Failure' - Case Grade _EQC 'Mechanical' - Grade = 'Mechanical' - Case Grade _EQC 'NA' - Grade = 'NA' - Case Grade _EQC 'retain' - Grade = 'Retain' - Case Grade _EQC 'scrap' - Grade = 'Scrap' - Case Grade _EQC 'Terminated' - Grade = 'Terminated' - Case Grade _EQC '' - Grade = '' - Case Otherwise$ - Null - End Case - // Format the Part No - Convert @Lower.Case to @Upper.Case in Part - // Format the Current Location - Begin Case - Case CurrLoc _EQC 'Cleanroom' - CurrLoc = 'Cleanroom' - Case ( (CurrLoc _EQC 'Wafer Destroyed') or (CurrLoc _EQC 'Wafers Destroyed') or (CurrLoc _EQC 'Wasfer Destroyed') ) - CurrLoc = 'Wafer Destroyed' - Case CurrLoc _EQC 'Warehouse' - CurrLoc = 'Warehouse' - End Case - - * Write the data to the WO_WFR record * - WfrIndex = Pocket + 0 ; // Convert string to integer and trim 0 padding - - RRScribe = RRScribes<0, WfrIndex> - WfrID = InWfrIDs<0, WfrIndex> - WOWfrRec = Database_Services('ReadDataRow', 'WO_WFR', WfrID) - If Error_Services('NoError') then -* WOWfrRec = Grade -* WOWfrRec = RunID -* WOWfrRec = Pocket -* WOWfrRec = Scribe -* WOWfrRec = RetainBox -* WOWfrRec = RetainSlot -* WOWfrRec = CurrLoc -* WOWfrRec = Comment -* WOWfrRec = Status -* WOWfrRec = RetainSig - WOWfrRec = RetainDate - Database_Services('WriteDataRow', 'WO_WFR', WfrID, WOWfrRec, True$, False$, True$) - end - end - end - end - Next ExcelRow - end - Excel_Services('CloseDocument', RetainExcelHandle) - -return - - diff --git a/LSL2/STPROC/TEST_DANIEL4.txt b/LSL2/STPROC/TEST_DANIEL4.txt deleted file mode 100644 index f12f466..0000000 --- a/LSL2/STPROC/TEST_DANIEL4.txt +++ /dev/null @@ -1,227 +0,0 @@ -Function Test_Daniel4() -#pragma precomp SRP_PreCompiler - -Declare subroutine Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services -Declare subroutine Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, FTP_Services -Declare subroutine EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables, obj_RDS -Declare subroutine Error_Services, RDS_Services, Dialog_Box, Insert, Unlock, QA_Services, Validate, Development_Services -Declare subroutine Update_Index, Database_Services, Obj_WO_Mat_QA, Fmt, Yield, WinYield, Sleepery, Qa_Services, -Declare subroutine Obj_Post_Log, GaN_Services, Excel_Services, obj_WO_React, Activate_Save_Select, Reduce, FSMsg -Declare subroutine SRP_Stopwatch, Copy_Record_To_SQL, SQL_Services, Material_Services, Messaging_Services -Declare subroutine Reactor_Services, Reactor_Services_Dev, SRP_Stopwatch, Btree.Extract, Set_Env, Test_Daniel3 -Declare subroutine obj_WO_Log, SAP_Services, Report_Services, Make.List -Declare function Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Utility -Declare function Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Error_Services, RDS_Services -Declare function MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services, ErrMsg -Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, SRP_Trim, Xlate, Obj_Wo_Mat -Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8 -Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services -Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array, ICONV -Declare function Development_Services, Obj_WO_Mat_QA, SRP_Join_Arrays, NextKey, Obj_Prod_Spec, FTP_Services, SQL_Format -Declare function DateTime, GaN_Services, SRP_Array, Excel_Services, EpiPro_Services, Repository, RTI_Task_Submit -Declare function RTI_Task_Status, Rds_Services, StartDotNet, Reactor_Services, SRP_Get_FileVersion, Epi_Part_Services -Declare function Schedule_Services, List_Users, rti_lh_info_DEBUG, RTI_Lock_Owner, Popup_Services -Declare function GetCurrentProcessID, Report_Services - -$INSERT ENVIRON_CONSTANTS -$INSERT POPUP_EQUATES -$INSERT MSG_EQUATES -$INSERT APPCOLORS -$INSERT WM_IN_EQUATES -$Insert WM_OUT_EQUATES -$INSERT WO_LOG_EQU -$INSERT WO_STEP_EQU -$INSERT WO_MAT_EQUATES -$INSERT ORDER_EQU -$INSERT RDS_EQUATES -$INSERT PROD_SPEC_EQU -$INSERT NOTIFICATION_EQU -$INSERT LSL_USERS_EQU -$INSERT SECURITY_RIGHTS_EQU -$INSERT LOGICAL -$INSERT RTI_LH_INFO_EQUATES -$INSERT WO_MAT_QA_EQUATES -$INSERT CUST_EPI_PART_EQUATES -$INSERT PRS_STAGE_EQUATES -$Insert RLIST_EQUATES -$Insert CLEAN_INSP_EQUATES -$Insert TOOL_PARMS_EQUATES -$Insert SCHEDULE_EQU -$Insert SCHED_DET_EQUATES -$Insert SCHEDULER_EQUATES -$Insert NCR_EQUATES -$Insert REACT_RUN_EQUATES -$Insert TOOL_EQUATES -$Insert TOOL_LOG_EQUATES -$Insert PM_EQUATES -$Insert WO_WFR_EQUATES -$Insert REVDOTNETEQUATES -$Insert REACTOR_EQUATES -$Insert RDS_TEST_EQUATES -$Insert RUN_STAGE_WFR_EQUATES - -// Reduce modes (for Select statement) -Equ NEW_EXIST$ To 0 -Equ NEXT_CUR$ To 1 -Equ ADD_EXIST$ To 2 - -EQU COL$QA_MET_PHASE_MIN TO 17 - -Equ Tab$ to \09\ -Equ CRLF$ to \0D0A\ -Equ LF$ to \0A\ -Equ Comma$ to ',' - -$INSERT PRINTSETUP_EQUATES - - -* Round: -* -* Ratio = '97' -* debug -* Ratio = OConv(IConv(Ratio, 'MD2L'), 'MD2L') -* -* return - - -* FiscalYr: -* -* CurrDate = Date() -* Query = 'SELECT FISCAL_QTR WITH FISCAL_YR EQ 2022 AND WITH START_DT LT ':CurrDate:' AND WITH END_DT GT ':CurrDate -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* If Not(Get_Status(ErrCode)) then -* ReadNext FiscalQtrKey then -* WorkingDays = Xlate('FISCAL_QTR', FiscalQtrKey, 'PLAN_WORKING_DAYS', 'X') -* Targets = Xlate('FISCAL_QTR', FiscalQtrKey, 'THRU_TARGET', 'X') -* Qtys = Xlate('FISCAL_QTR', FiscalQtrKey, 'THRU_QTY', 'X') -* Locate 'Yield_Outs' in Targets using @VM setting vPos then -* QtrTarget = Qtys<0, vPos> -* DailyTarget = QtrTarget / WorkingDays -* end -* end -* end -* -* -* -* return - - -* Projected: -* -* Open 'RDS' to hTable then -* Open 'DICT.RDS' to hDict then -* Date = Date() -* CurrTime = Time() -* SearchString = 'DATE_OUT':@VM:(Date - 1):@FM:'TIME_OUT':@VM:'>':CurrTime -* YesterdayRDSKeys = '' -* Option = '' -* Flag = '' -* Set_Status(0) -* Btree.Extract(SearchString, 'RDS', hDict, YesterdayRDSKeys, Option, Flag) -* IF Not(Get_Status(errCode)) then -* SearchString = 'DATE_OUT':@VM:Date -* TodayRDSKeys = '' -* Option = '' -* Flag = '' -* Set_Status(0) -* Btree.Extract(SearchString, 'RDS', hDict, TodayRDSKeys, Option, Flag) -* If Not(Get_Status(errCode)) then -* TotalRDSKeys = SRP_Array('Join', YesterdayRDSKeys, TodayRDSKeys, 'OR', @VM) -* -* debug -* TotalThickness24 = 0 -* TotalReactorsOut24 = 0 -* For each RDS in TotalRDSKeys using @VM -* Database_Services('ActivateRecord', 'RDS', RDS) -* TargetThick = OConv({THICK_TARGET_TOT}, 'MD3') -* ReactorsOut = {WAFERS_IN} -* TotalThickness24 += TargetThick * ReactorsOut -* Next RDS -* DayRatio = CurrTime / 86400 -* ProjectedThick = TotalThickness24 / DayRatio -* ProjectedThick = ProjectedThick[1, 'F.'] -* ProjectedYield -* -* end -* end -* end -* end -* -* -* return - - - -Metrics: -* -* debug -* JSON = Report_Services("GetMetricsJSON", Date()) -* OSWrite JSON on 'D:\FITemp\Metrics.json' -* -* return - - StartDate = Date() - 9 - EndDate = Date() - 1 - For Date = StartDate to EndDate - Report_Services('UpdateDailyMetrics', Date) - Next Date - -return - - -ReactMode: - - debug - Tool = 'SP101' - Tool[4,1] = ' ' -* CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', 48, 1, 'X') - -return - - - -ErrorTest: - - Success = False$ - If Success then - MsgStruct = '' - MsgStruct = '*' ; // Info icon - Msg(@Window, MsgStruct, 'OK', '', 'Success':@FM:'Report generated.') - end else - MsgStruct = '' - MsgStruct = 'H' ; // Error icon - Msg(@Window, MsgStruct, 'OK', '', 'Error':@FM:'Error generating report') - end - -return - - -Process: - - TableName = 'RDS_QUEUE' - CursorVar = '' - Flag = '' - SortList = '#RDS_NO' - ReduceScript = 'WITH {RDS_NO} FROM 440000 TO 459999' - Mode = 1 ; // Use next cursor available - EOF = False$ - - Reduce(ReduceScript, SortList, Mode, TableName, CursorVar, Flag) - If Flag then - Select TableName By SortList Using CursorVar then - Loop - Readnext KeyID using CursorVar by AT else EOF = True$ - Until EOF - Material_Services('UpdateRDSStatus', KeyID) - If Error_Services('NoError') then - // Successfully updated the current status, so delete the request from the queue. - Database_Services('DeleteDataRow', 'RDS_QUEUE', KeyID, True$, True$) - end - Repeat - End else - status = Set_FSError() - end - end - -return - diff --git a/LSL2/STPROC/TEST_DANIEL5.txt b/LSL2/STPROC/TEST_DANIEL5.txt deleted file mode 100644 index 12e5375..0000000 --- a/LSL2/STPROC/TEST_DANIEL5.txt +++ /dev/null @@ -1,102 +0,0 @@ -Function Test_Daniel5() -#pragma precomp SRP_PreCompiler - -Declare subroutine Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services -Declare subroutine Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, FTP_Services -Declare subroutine EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables, obj_RDS -Declare subroutine Error_Services, RDS_Services, Dialog_Box, Insert, Unlock, QA_Services, Validate, Development_Services -Declare subroutine Update_Index, Database_Services, Obj_WO_Mat_QA, Fmt, Yield, WinYield, Sleepery, Qa_Services, -Declare subroutine Obj_Post_Log, GaN_Services, Excel_Services, obj_WO_React, Activate_Save_Select, Reduce, FSMsg -Declare subroutine SRP_Stopwatch, Copy_Record_To_SQL, SQL_Services, Material_Services, Messaging_Services -Declare subroutine Reactor_Services, Reactor_Services_Dev, SRP_Stopwatch, Btree.Extract, Set_Env, Test_Daniel3 -Declare subroutine obj_WO_Log, SAP_Services -Declare function Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Utility -Declare function Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Error_Services, RDS_Services -Declare function MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services, ErrMsg -Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, SRP_Trim, Xlate, Obj_Wo_Mat -Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8 -Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services -Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array, ICONV -Declare function Development_Services, Obj_WO_Mat_QA, SRP_Join_Arrays, NextKey, Obj_Prod_Spec, FTP_Services, SQL_Format -Declare function DateTime, GaN_Services, SRP_Array, Excel_Services, EpiPro_Services, Repository, RTI_Task_Submit -Declare function RTI_Task_Status, Rds_Services, StartDotNet, Reactor_Services, SRP_Get_FileVersion, Epi_Part_Services -Declare function Schedule_Services, List_Users, rti_lh_info_DEBUG, RTI_Lock_Owner, Popup_Services -Declare function GetCurrentProcessID - -$INSERT ENVIRON_CONSTANTS -$INSERT POPUP_EQUATES -$INSERT MSG_EQUATES -$INSERT APPCOLORS -$INSERT WM_IN_EQUATES -$Insert WM_OUT_EQUATES -$INSERT WO_LOG_EQU -$INSERT WO_STEP_EQU -$INSERT WO_MAT_EQUATES -$INSERT ORDER_EQU -$INSERT RDS_EQUATES -$INSERT PROD_SPEC_EQU -$INSERT NOTIFICATION_EQU -$INSERT LSL_USERS_EQU -$INSERT SECURITY_RIGHTS_EQU -$INSERT LOGICAL -$INSERT RTI_LH_INFO_EQUATES -$INSERT WO_MAT_QA_EQUATES -$INSERT CUST_EPI_PART_EQUATES -$INSERT PRS_STAGE_EQUATES -$Insert RLIST_EQUATES -$Insert CLEAN_INSP_EQUATES -$Insert TOOL_PARMS_EQUATES -$Insert SCHEDULE_EQU -$Insert SCHED_DET_EQUATES -$Insert SCHEDULER_EQUATES -$Insert NCR_EQUATES -$Insert REACT_RUN_EQUATES -$Insert TOOL_EQUATES -$Insert TOOL_LOG_EQUATES -$Insert PM_EQUATES -$Insert WO_WFR_EQUATES -$Insert REVDOTNETEQUATES -$Insert REACTOR_EQUATES -$Insert RDS_TEST_EQUATES -$Insert RUN_STAGE_WFR_EQUATES - -// Reduce modes (for Select statement) -Equ NEW_EXIST$ To 0 -Equ NEXT_CUR$ To 1 -Equ ADD_EXIST$ To 2 - -EQU COL$QA_MET_PHASE_MIN TO 17 - -Equ Tab$ to \09\ -Equ CRLF$ to \0D0A\ -Equ LF$ to \0A\ -Equ Comma$ to ',' - -$INSERT PRINTSETUP_EQUATES - -LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Test' -LogDate = Oconv(Date(), 'D4/') -LogTime = Oconv(Time(), 'MTS') -LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Test Log.csv' -Headers = 'Logging DTM' : @FM : 'Message' -objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$) -LoggingDTM = LogDate : ' ' : LogTime - - - -Process: - - - LogData = '' - LogData<1, 1> = LoggingDTM - LogData<1, 2> = 'This is a test' - LogData<2, 1> = OConv(Datetime(), 'DT4/') - LogData<2, 2> = 'This is another test' - - - Logging_Services('AppendLog', objLog, LogData, @FM, @VM, '', 'tuckerc@infineon.com', 'Log reported') - - -return - - diff --git a/LSL2/STPROC/TEST_DANIEL6.txt b/LSL2/STPROC/TEST_DANIEL6.txt deleted file mode 100644 index 92c3de0..0000000 --- a/LSL2/STPROC/TEST_DANIEL6.txt +++ /dev/null @@ -1,104 +0,0 @@ -Function Test_Daniel6() -#pragma precomp SRP_PreCompiler - -Declare subroutine Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services -Declare subroutine Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, FTP_Services -Declare subroutine EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables, obj_RDS -Declare subroutine Error_Services, RDS_Services, Dialog_Box, Insert, Unlock, QA_Services, Validate, Development_Services -Declare subroutine Update_Index, Database_Services, Obj_WO_Mat_QA, Fmt, Yield, WinYield, Sleepery, Qa_Services, -Declare subroutine Obj_Post_Log, GaN_Services, Excel_Services, obj_WO_React, Activate_Save_Select, Reduce, FSMsg -Declare subroutine SRP_Stopwatch, Copy_Record_To_SQL, SQL_Services, Material_Services, Messaging_Services -Declare subroutine Reactor_Services, Reactor_Services_Dev, SRP_Stopwatch, Btree.Extract, Set_Env, Test_Daniel3 -Declare subroutine obj_WO_Log, SAP_Services -Declare function Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Utility -Declare function Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Error_Services, RDS_Services -Declare function MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services, ErrMsg -Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, SRP_Trim, Xlate, Obj_Wo_Mat -Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8 -Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services -Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array, ICONV -Declare function Development_Services, Obj_WO_Mat_QA, SRP_Join_Arrays, NextKey, Obj_Prod_Spec, FTP_Services, SQL_Format -Declare function DateTime, GaN_Services, SRP_Array, Excel_Services, EpiPro_Services, Repository, RTI_Task_Submit -Declare function RTI_Task_Status, Rds_Services, StartDotNet, Reactor_Services, SRP_Get_FileVersion, Epi_Part_Services -Declare function Schedule_Services_Dev, List_Users, rti_lh_info_DEBUG, RTI_Lock_Owner, Popup_Services -Declare function GetCurrentProcessID - -$INSERT ENVIRON_CONSTANTS -$INSERT POPUP_EQUATES -$INSERT MSG_EQUATES -$INSERT APPCOLORS -$INSERT WM_IN_EQUATES -$Insert WM_OUT_EQUATES -$INSERT WO_LOG_EQU -$INSERT WO_STEP_EQU -$INSERT WO_MAT_EQUATES -$INSERT ORDER_EQU -$INSERT RDS_EQUATES -$INSERT PROD_SPEC_EQU -$INSERT NOTIFICATION_EQU -$INSERT LSL_USERS_EQU -$INSERT SECURITY_RIGHTS_EQU -$INSERT LOGICAL -$INSERT RTI_LH_INFO_EQUATES -$INSERT WO_MAT_QA_EQUATES -$INSERT CUST_EPI_PART_EQUATES -$INSERT PRS_STAGE_EQUATES -$Insert RLIST_EQUATES -$Insert CLEAN_INSP_EQUATES -$Insert TOOL_PARMS_EQUATES -$Insert SCHEDULE_EQU -$Insert SCHED_DET_EQUATES -$Insert SCHEDULER_EQUATES -$Insert NCR_EQUATES -$Insert REACT_RUN_EQUATES -$Insert TOOL_EQUATES -$Insert TOOL_LOG_EQUATES -$Insert PM_EQUATES -$Insert WO_WFR_EQUATES -$Insert REVDOTNETEQUATES -$Insert REACTOR_EQUATES -$Insert RDS_TEST_EQUATES -$Insert RUN_STAGE_WFR_EQUATES - -// Reduce modes (for Select statement) -Equ NEW_EXIST$ To 0 -Equ NEXT_CUR$ To 1 -Equ ADD_EXIST$ To 2 - -EQU COL$QA_MET_PHASE_MIN TO 17 - -Equ Tab$ to \09\ -Equ CRLF$ to \0D0A\ -Equ LF$ to \0A\ -Equ Comma$ to ',' - -$INSERT PRINTSETUP_EQUATES - -Process: - - TableName = 'RDS_QUEUE' - CursorVar = '' - Flag = '' - SortList = '#RDS_NO' - ReduceScript = 'WITH {RDS_NO} FROM 400000 TO 419999' - Mode = 1 ; // Use next cursor available - EOF = False$ - - Reduce(ReduceScript, SortList, Mode, TableName, CursorVar, Flag) - If Flag then - Select TableName By SortList Using CursorVar then - Loop - Readnext KeyID using CursorVar by AT else EOF = True$ - Until EOF - Material_Services('UpdateRDSStatus', KeyID) - If Error_Services('NoError') then - // Successfully updated the current status, so delete the request from the queue. - Database_Services('DeleteDataRow', 'RDS_QUEUE', KeyID, True$, True$) - end - Repeat - End else - status = Set_FSError() - end - end - -return diff --git a/LSL2/STPROC/TEST_DANIEL7.txt b/LSL2/STPROC/TEST_DANIEL7.txt deleted file mode 100644 index ce0974e..0000000 --- a/LSL2/STPROC/TEST_DANIEL7.txt +++ /dev/null @@ -1,3172 +0,0 @@ -Function Test_Daniel7() -#pragma precomp SRP_PreCompiler - -Declare subroutine Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services -Declare subroutine Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, FTP_Services -Declare subroutine EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables, obj_RDS -Declare subroutine Error_Services, RDS_Services, Dialog_Box, Insert, Unlock, QA_Services, Validate, Development_Services -Declare subroutine Update_Index, Database_Services, Obj_WO_Mat_QA, Fmt, Yield, WinYield, Sleepery, Qa_Services, -Declare subroutine Obj_Post_Log, GaN_Services, Excel_Services, obj_WO_React, Activate_Save_Select, Reduce, FSMsg -Declare subroutine SRP_Stopwatch, Copy_Record_To_SQL, SQL_Services, Material_Services, Messaging_Services -Declare subroutine Reactor_Services, Reactor_Services_Dev, SRP_Stopwatch, Btree.Extract, Set_Env, RDS_React_Run -Declare subroutine obj_Prod_Spec, Security_Services, Make.List, Write_OI_To_SQL, Send_Info, PSN_Services -Declare subroutine Work_Order_Services -Declare function Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Utility -Declare function Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Error_Services, RDS_Services -Declare function MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services, ErrMsg -Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, SRP_Trim, Xlate, Obj_Wo_Mat -Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8 -Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services -Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array, ICONV -Declare function Development_Services, Obj_WO_Mat_QA, SRP_Join_Arrays, NextKey, Obj_Prod_Spec, FTP_Services, SQL_Format -Declare function DateTime, GaN_Services, SRP_Array, Excel_Services, EpiPro_Services, Repository, RTI_Task_Submit -Declare function RTI_Task_Status, Rds_Services, StartDotNet, Reactor_Services, SRP_Get_FileVersion, Direct_Print -Declare function obj_React_Run, RTI_Lock_Owner, obj_WM_In, Get_Repos_Entities, Get_Printer, Schedule_Services -Declare function Location_Services, Replication_Services, obj_Clean_Insp, Epi_Part_Services - -$INSERT ENVIRON_CONSTANTS - -$INSERT MSG_EQUATES -$INSERT APPCOLORS -$INSERT WM_IN_EQUATES -$Insert WM_OUT_EQUATES -$INSERT WO_LOG_EQU -$INSERT WO_STEP_EQU -$INSERT WO_MAT_EQUATES -$INSERT ORDER_EQU -$INSERT RDS_EQUATES -$INSERT PROD_SPEC_EQU -$INSERT NOTIFICATION_EQU -$INSERT LSL_USERS_EQU -$INSERT SECURITY_RIGHTS_EQU -$INSERT LOGICAL -$INSERT POPUP_EQUATES -$INSERT RTI_LH_INFO_EQUATES -$INSERT WO_MAT_QA_EQUATES -$INSERT CUST_EPI_PART_EQUATES -$INSERT PRS_STAGE_EQUATES -$Insert RLIST_EQUATES -$Insert CLEAN_INSP_EQUATES -$Insert TOOL_PARMS_EQUATES -$Insert SCHEDULE_EQU -$Insert SCHED_DET_EQUATES -$Insert SCHEDULER_EQUATES -$Insert NCR_EQUATES -$Insert REACT_RUN_EQUATES -$Insert TOOL_EQUATES -$Insert TOOL_LOG_EQUATES -$Insert PM_EQUATES -$Insert WO_WFR_EQUATES -$Insert REVDOTNETEQUATES -$Insert REACTOR_EQUATES -$Insert RDS_TEST_EQUATES -$Insert RUN_STAGE_WFR_EQUATES -$Insert RTI_DEBUG_COMMON -$Insert DICT_EQUATES -$Insert SRPMAIL_INSERTS -$Insert SCHED_DET_NG_EQUATES -$Insert PROD_VER_EQUATES -$Insert DAILY_PERFORMANCE_EQUATES - -// Reduce modes (for Select statement) -Equ NEW_EXIST$ To 0 -Equ NEXT_CUR$ To 1 -Equ ADD_EXIST$ To 2 - -EQU COL$QA_MET_PHASE_MIN TO 17 - -Equ Tab$ to \09\ -Equ CRLF$ to \0D0A\ -Equ LF$ to \0A\ -Equ Comma$ to ',' - -$INSERT PRINTSETUP_EQUATES - -DailyPerformance: - - SRP_Stopwatch('Reset') - SRP_Stopwatch('Start', 'Runtime') - - DateOut = '09/14/2022' - ReportDate = IConv(DateOut, 'D') - - // Clear out previous daily_performance metrics - table_name = "DAILY_PERFORMANCE" - - flag = "" - done = False$ - CursorVar = "" - - * Clears all cursors - For counter = 0 To 8 - ClearSelect counter - Next counter - - sort_list = "DATE_OUT" - Reduce_Script = "WITH {DATE_OUT} EQ '":OConv(ReportDate, 'D4/'):"'" - mode = NEXT_CUR$ - DeleteKeyList = '' - Reduce(reduce_script, sort_list, mode, table_name, Cursorvar, flag) - If flag then - Select table_name By sort_list Using Cursorvar then - Open table_name To file_var then - Loop - ReadNext KeyID Using Cursorvar By AT Else done = TRUE$ - Until done - DeleteKeyList<-1> = KeyID - Repeat - End Else - FsMsg() - End - End Else - FsMsg() - end - End Else - FsMsg() - End - - If DeleteKeyList NE '' then - For each KeyID in DeleteKeyList using @FM - Database_Services('DeleteDataRow', 'DAILY_PERFORMANCE', KeyID, True$, False$) - Next KeyID - end - - Query = 'SELECT RDS WITH DATE_OUT EQ ':Quote(OConv(ReportDate, 'D4/')): ' BY REACTOR' - EOF = False$ - ErrCode = '' - ReportData = '' - RawData = '' - // Reactor, PSN, PartNo, Hours, %ofDay, MPW, WPD, OEE, ProjectedOut, TimeAdjProjectedOut, - // PartChangeOutsAdj, TotalProjectedOuts, ActualOuts, TotalActualOuts, TotalDelta, Comment - RList(Query, TARGET_ACTIVELIST$, '', '', '') - RowIndex = 0 - If Not(Get_Status(ErrCode)) then - Loop - ReadNext KeyID else EOF = True$ - Until EOF - RowIndex += 1 - Database_Services('ActivateRecord', 'RDS', KeyID) - If Error_Services('NoError') then - Reactor = {REACTOR} - PSN = {PROD_SPEC_ID} - DateOut = {DATE_OUT} - PartNo = {PART_NUM} - WafersOut = {WFRS_OUT} - DtmIn = {DTM_IN} - DtmOut = {DTM_OUT} - ReportKey = DateOut:'*':Reactor:'*':PSN:'*':PartNo - ReportRow = Database_Services('ReadDataRow', 'DAILY_PERFORMANCE', ReportKey) - RepWafersOut = ReportRow - RepWafersOut += WafersOut - ReportRow = RepWafersOut -* FWIDtm = ReportRow -* LWODtm = ReportRow - If FWIDtm EQ '' or DtmIn LT FWIDtm then FWIDtm = DtmIn -* ReportRow = DtmIn - If LWODtm EQ '' or DtmOut GT LWODtm then LWODtm = DtmOut -* ReportRow = LWODtm - Database_Services('WriteDataRow', 'DAILY_PERFORMANCE', ReportKey, ReportRow) - end - Repeat - end - - Reactors = Reactor_Services('GetReactorNumbers') - For each ReactorNo in Reactors using @FM setting RowIndex -* If ReactorNo EQ 55 then debug - KeyList = '' - ReportRow = '' - ReportRow<0, 1> = ReactorNo - - table_name = "DAILY_PERFORMANCE" - - flag = "" - done = False$ - CursorVar = "" - - * Clears all cursors - For counter = 0 To 8 - ClearSelect counter - Next counter - - sort_list = "DATE_OUT" - Reduce_Script = "WITH {REACTOR} EQ '":ReactorNo:"' AND WITH {DATE_OUT} EQ '":OConv(ReportDate, 'D4/'):"'" - mode = NEXT_CUR$ - - Reduce(reduce_script, sort_list, mode, table_name, Cursorvar, flag) - If flag then - Select table_name By sort_list Using Cursorvar then - Open table_name To file_var then - Loop - ReadNext KeyID Using Cursorvar By AT Else done = TRUE$ - Until done - KeyList<-1> = KeyID - Repeat - End Else - FsMsg() - End - End Else - FsMsg() - end - End Else - FsMsg() - End - If KeyList NE '' then - // Determine if a part change has taken place. If so, which day - // did the part change take place? (i.e. the day before report date, the day of - // report date, or the day after the report date) - ClearSelect TARGET_ACTIVELIST$ - Query = 'SELECT REACT_MODE_NG WITH REACT_NO EQ ':ReactorNo:' AND WITH START_DT BETWEEN ':Quote(OConv(ReportDate - 2, 'D4/')):' AND ':Quote(OConv(ReportDate + 2, 'D4/')) - RList(Query, TARGET_ACTIVELIST$, '', '', '') - If Not(Get_Status(ErrCode)) then - Query = 'SELECT REACT_MODE_NG WITH MODE EQ "CHANGEOVER_SCHEDULED" OR WITH MODE EQ "CHANGEOVER_UNSCHEDULED"' - RList(Query, TARGET_ACTIVELIST$, '', '', '') - If Not(Get_Status(ErrCode)) then - If @RecCount then - // A changeover has taken place - EOF = False$ - Loop - ReadNext RMKey else EOF = True$ - Until EOF - RMStartDt = Xlate('REACT_MODE_NG', RMKey, 'START_DT', 'X') - Begin Case - Case RMStartDt EQ (ReportDate - 1) - // Part change began the day before. - // Get the mode change end datetime to determine uptime - // from a changeover perspective - RMEndDtm = Xlate('REACT_MODE_NG', RMKey, 'STOP_DTM', 'X') - If RMEndDtm GT ReportDate then - // Part change finished during reporting period - UptimePcts = RMEndDtm - ReportDate - UpHours = UptimePct * 24 - PartChgCorrection = True$ - end else - // Part change concluded the day prior - UptimePct = 1 - UpHours = 24 - PartChgCorrection = True$ - end - Case RMStartDt EQ ReportDate - // Part change took place on the day of - // Get the mode change end time to determine uptime - // from a changeover perspective - RMStartDtm = Xlate('REACT_MODE_NG', RMKey, 'START_DTM', 'X') - RMEndDtm = Xlate('REACT_MODE_NG', RMKey, 'STOP_DTM', 'X') - UptimePcts = '' - UpHours = '' - PartChgCorrection = '' - // First part would have run until the start dtm of the changeover - UptimePcts<1> = RMStartDtm - ReportDate - // Second part would have started running after the end dtm of the changeover - UptimePcts<2> = (ReportDate + 1) - RMEndDtm - UpHours<1> = UptimePcts<1> * 24 - UpHours<2> = UptimePcts<2> * 24 - // The part change correction factor will only apply to the second part - // running that day - PartChgCorrection<1> = False$ - PartChgCorrection<2> = True$ - Case RMStartDt EQ (ReportDate + 1) - // Part change took place the day after - // Uptime will be "100%" for the day of - UptimePcts = 1 - UpHours = 24 - PartChgCorrection = False$ - End Case - Repeat - end else - // No changeover event found - UptimePcts = 1 - UpHours = 24 - PartChgCorrection = False$ - end - end - - For each KeyID in KeyList using @FM setting fPos - ApplyPartChgCorrection = PartChgCorrection - UptimePct = UptimePcts - HoursUp = UpHours - WafersOut = Xlate('DAILY_PERFORMANCE', KeyID, 'WAFERS_OUT', 'X') - PSN = Field(KeyID, '*', 3) - PartNo = Field(KeyID, '*', 4) - ReactType = Xlate('REACTOR', ReactorNo, 'REACT_TYPE', 'X') - MPW = Epi_Part_Services('GetMinutesPerWaferScheduler', PartNo, ReactType) - WPD = Epi_Part_Services('GetIdealWafersPerDayScheduler', PartNo, ReactType, MPW) - OEE = Xlate('APP_INFO', 'OEE*':ReactType, 1, 'X') - ReportRow<0, 2, -1> = PSN - ReportRow<0, 3, -1> = PartNo - ReportRow<0, 4, -1> = UpHours - ReportRow<0, 5, -1> = UptimePcts - ReportRow<0, 6, -1> = MPW - ReportRow<0, 7, -1> = WPD - ReportRow<0, 8, -1> = OEE ; // OEE -> The front end should allow the user to modify this in a table and update it in OI - ProjOut = WPD * OEE - ReportRow<0, 9, -1> = ProjOut ; // Projected out = WPD * OEE - TimeAdjustedProjOut = ProjOut * UptimePct - ReportRow<0, 10, -1> = TimeAdjustedProjOut - If ApplyPartChgCorrection then - PartChangeOutsAdj = TimeAdjustedProjOut * 0.5 - end else - PartChangeOutsAdj = '' - end - ReportRow<0, 11, -1> = PartChangeOutsAdj ; // PartChangeOutsAdj -> If Part change then TimeAdjustedProjectedOut * 50% - TotalProjOut = ReportRow<0, 12> - TotalProjOut += ProjOut - ReportRow<0, 12> = TotalProjOut ; // TotalProjectedOuts - ReportRow<0, 13, -1> = WafersOut ; // ActualOuts - TotalWafersOut = ReportRow<0, 14> - TotalWafersOut += WafersOut - ReportRow<0, 14> = TotalWafersOut - ReportRow<0, 15> = TotalWafersOut - TotalProjOut ; // TotalDelta = TotalWafersOut - TotalProjectedOut - ReportRow<0, 16> = '' ; // Comments - Next KeyID - end - end - ReportData = ReportRow - Next ReactorNo - - SRP_Stopwatch('Stop', 'Runtime') - SRP_Stopwatch('ShowAll') - - Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL2', ReportData) - -return - - -EpiPart: - - debug - For Cursor = 1 to 8 - ClearSelect Cursor - Next Cursor - - CustNo = 6593 - -* Open 'PROD_SPEC' to hTable then -* Query = 'SELECT PROD_SPEC WITH CUST_NO EQ ':CustNo:' AND WITH STATUS NE "I"' -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* If Not(Get_Status(ErrCode)) then -* EOF = False$ -* Loop -* ReadNext KeyID else EOF = True$ -* Until EOF -* Read Rec from hTable, KeyID then -* Rec = 'I' -* Write Rec on hTable, KeyID else -* ErrMsg(@FILE_ERROR) -* end -* end -* * Rec = Database_Services('ReadDataRow', 'PROD_SPEC', KeyID) -* * If Rec NE '' then -* * Rec = 'I' -* * Database_Services('WriteDataRow', 'PROD_SPEC', KeyID, Rec) -* * end -* Repeat -* end -* end - -* For Cursor = 1 to 8 -* ClearSelect Cursor -* Next Cursor - - Query = 'SELECT PROD_VER WITH CUST_NO EQ ':CustNo:' AND WITH STATUS NE "I"' - RList(Query, TARGET_ACTIVELIST$, '', '', '') - If Not(Get_Status(ErrCode)) then - EOF = False$ - Loop - ReadNext KeyID else EOF = True$ - Until EOF - Rec = Database_Services('ReadDataRow', 'PROD_VER', KeyID) - If Error_Services('NoError') then - Rec = 'I' - Database_Services('WriteDataRow', 'PROD_VER', KeyID, Rec) - If Error_Services('HasError') then - Error_Services('DisplayError') - end - end - Repeat - end - - -return - - -CleanInspCheck: - - debug - Key = 2511361 - Rec = Database_Services('ReadDataRow', 'CLEAN_INSP', Key) - Response = obj_Clean_Insp('SigComp', Key:@RM:Rec) - - If Response<1, 1> EQ 0 then - // Clean prescribed, but not signed. - Null - end - - If Response<1, 2> EQ 0 then - // Inspection prescribed, but not signed. - Null - end - -return - - -MakeupWafersUpdate: - -* For Cursor = 1 to 8 -* ClearSelect Cursor -* Next Cursor -* -* Open 'MAKEUP_WAFERS' to hTable then -* Select hTable -* EOF = False$ -* Loop -* ReadNext KeyID else EOF = True$ -* Until EOF -* WMOKey = Xlate('MAKEUP_WAFERS', KeyID, 'WM_OUT_NO', 'X') -* If WMOKey NE '' then -* Rec = Database_Services('ReadDataRow', 'WM_OUT', WMOKey) -* Database_Services('WriteDataRow', 'WM_OUT', WMOKey, Rec) -* end else -* Rec = Database_Services('ReadDataRow', 'WO_MAT', KeyID) -* Database_Services('WriteDataRow', 'WO_MAT', KeyID, Rec) -* end -* Repeat -* end - -return - - -DTMStart: - - debug - WafersOut = '' - WafersIn = 2 - TotalWafers = WafersOut + WafersIn - - If WafersOut EQ 0 then - Null - end else - Null - end -* Database_Services('ActivateRecord', 'RDS', 550967) -* WOMatRepStatus = XLATE('WO_MAT',{WO_MAT_KEY},'REP_STATUS','X') -* RunStatus = XLATE('REACT_RUN',@ID,'RUN_STATUS','X') - -return - - -PopulateSAPHoldDTM: - - debug - Open 'SAP_HOLD' to hTable then - Select hTable - EOF = False$ - Loop - Readnext KeyID else EOF = True$ - Until EOF - Read Rec from hTable, KeyID then - WOMatKey = Rec<2> - HoldFlag = Rec<4> - InvActions = Xlate('WO_MAT', WOMatKey, 'INV_ACTION', 'X') - InvDTMs = Xlate('WO_MAT', WOMatKey, 'INV_DTM', 'X') - If HoldFlag then - Locate 'HOLD_ON' in InvActions using @VM setting vPos then - TransDTM = InvDTMs<0, vPos> - end - end else - Locate 'HOLD_OFF' in InvActions using @VM setting vPos then - TransDTM = InvDTMs<0, vPos> - end - end - Rec<5> = TransDTM - Write Rec on hTable, KeyID else - ErrMsg('Error') - end - end - Repeat - end - - -return - -AnotherTest: - - - // This is our second change. - -return - - -CleanInbox: - - KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') - For each Key in KeyList - Database_Services('DeleteDataRow', 'NOTES', Key) - Next Key - -return - - -MarkComp: - -* debug - Recipients = 'DANIEL_ST' - SentFrom = 'OI_ADMIN' - Subject = 'Auto-Scheduler Error' - Message = 'Invalid START_DTM and STOP_DTM calculated in AdjustScheduleEvents for event CC4E8D2AAE2F4632BF761320553910D4.' - AttachWindow = '' - AttachKey = '' - SendToGroup = '' - Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup - obj_Notes('Create',Parms) - -* EOF = False$ -* ReactNo = 33 -* CurrDtm = Datetime() -* Query = 'SELECT SCHED_DET_NG WITH REACT_NO EQ ':Quote(ReactNo):' AND WITH BLOCK_OUT EQ ':Quote(True$) -* Query := ' AND WITH STOP_DTM LT ':Quote(CurrDtm):' AND WITH EVENT_COMP NE ':Quote(True$) -* For CursorIndex = 1 to 8 -* ClearSelect CursorIndex -* Next CursorIndex -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* If Not(Get_Status(ErrCode)) then -* Loop -* ReadNext Key else EOF = True$ -* Until EOF -* Rec = Database_Services('ReadDataRow', 'SCHED_DET_NG', Key) -* If Error_Services('NoError') then -* Rec = True$ -* Database_Services('WriteDataRow', 'SCHED_DET_NG', Key, Rec, True$, False$, True$) -* end -* Repeat -* end - - -return - - -WafersIn: - - SchedList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') - For each Key in SchedList using @FM - WorkOrder = Xlate('CONFIG', Key, 'F2', 'X') - WorkOrder = Field(WorkOrder, ' ', 1) - MUWfrs = Material_Services('GetAvailableMakeupWafers', WorkOrder, 1) - AvailableMUWfrs = MUWfrs<1> - If DCount(AvailableMUWfrs, @VM) GT 1 then - debug - end - Next Key - -return - - -Syslists: - debug - Open 'SYSLISTS' to hTable then - Select hTable - Done = False$ - Loop - errCode = '' - Readnext Key else Done = True$ - Until Done - KeyPart = Field(Key, '*', 1) - If KeyPart EQ 'W' or KeyPart EQ 'T' or KeyPart EQ 'Q' then - Set_Status(0) - Delete hTable, Key else - ErrMsg(Get_Status(errCode)) - end - end - Repeat - end - - -return - - -Reduce: - SRP_Stopwatch('Reset') - SRP_Stopwatch('Start', 'Reduce') - Done = False$ - SortList = 'CASS_NO' - CursorVar = '' - Flag = '' - Tablename = 'WO_MAT' - ReduceScript = 'WITH {WO_NO} EQ "171483" AND WITH {CURR_LOCATION} ] "SR*KTR"' - Mode = 1 - Reduce(ReduceScript, SortList, Mode, Tablename, CursorVar, Flag) - If Flag then - ReduceScript = 'WITH {HOLD} NOT 1' - Reduce(ReduceScript, SortList, 2, Tablename, CursorVar, Flag) - If Flag then - Select Tablename By SortList using CursorVar then - Open Tablename to FileVar then - Loop - Readnext Key using CursorVar By AT else Done = True$ - Until Done - - Repeat - end - end - end - end else - FSMsg() - end - SRP_Stopwatch('Stop', 'Reduce') - SRP_Stopwatch('ShowAll') - -return - -* WOMatStatus: -* -* CINo = 2175647 -* ErrorMessage = 'The clean & inspect record ':CINo:' has been updated since the form was opened! ' -* ErrorMessage := 'Metrology data has likely been imported since you read the record. ' -* ErrorMessage := 'Please close the form and try again.' -* ErrMsg('Save error!':@SVM:ErrorMessage) -* -* WOMatKey = '171358*54' -* CassetteQty = XLATE('WO_MAT', WOMatKey, 'WAFER_QTY', 'X') -* RejectedWafers = XLATE('WO_MAT', WOMatKey, 'TOT_REJ_WFRS', 'X') -* RejectedMUWafers = XLATE('WO_MAT', WOMatKey, 'TOT_REJ_MU_WFRS', 'X') -* ProdTestWafers = XLATE('WO_MAT', WOMatKey, 'TW_PROD','X') -* CurrWfrCount = XLATE('WO_MAT', WOMatKey, 'CURR_WFR_CNT', 'X') -* -* -* return - - -* CleanRepMan: -* debug -* Open 'REPLICATION_QUEUE_LSL2_WM_OUT' to TableHandle then -* Select TableHandle -* EOF = False$ -* Loop -* ReadNext @ID else EOF = True$ -* Until EOF -* TransType = Field(@ID, '*', 1) -* If TransType EQ 'WRITE' or TransType EQ 'DELETE' then -* Delete TableHandle, @ID then Null -* end -* Repeat -* end -* -* return - - -Fix: - - -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,WO_DAILY_SCHED_SINGLE_EVENTS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,REACTOR_LOG_EVENTS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,NDW_ADD_COMMENT_EVENTS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,REACTOR_SERVICES', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,REACTOR_MODE_HISTORY_EVENTS', '', '', '') - Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,PRINT_REACT_MODE_LOG_SERVICES', '', '', '') - -return - - - - - -CleanRDS: - debug - RDSNo = NextKey('RDS') - - // Delete old instance of this RDS if it exists ------------------------------------------------------------------------ - If RowExists('RDS', RDSNo) then - Database_Services('DeleteDataRow', 'RDS', RDSNo, True$, False$) - If Error_Services('NoError') then - Results = 'RDS ' : RDSNo : ' deleted' - end else - Results = 'RDS ' : RDSNo : ' not deleted. Error : ' : Error_Services('GetMessage') - end - end - // --------------------------------------------------------------------------------------------------------------------- - - - // Delete related RDS_LAYER records ------------------------------------------------------------------------------------ - Layers = 'L1,L2,2' - For each Layer in Layers using ',' - RDSLayerKey = RDSNo:'*':Layer - If RowExists('RDS_LAYER', RDSLayerKey) then - // Look for related RDS_TEST records and delete them first - RDSTestKeys = Xlate('RDS_LAYER', RDSLayerKey, 'RDS_TEST_KEYS', 'X') - If RDSTestKeys NE '' then - For each RDSTestKey in RDSTestKeys using @VM setting vPos - // Look for related TW_USE records and delete them first - TWKeys = Xlate('RDS_TEST', RDSTestKey, 'TW_USE_ID', 'X') - If TWKeys NE '' then - For each TWKey in TWKeys using @VM setting vPos - Database_Services('DeleteDataRow', 'TW_USE', TWKey, True$, True$) - Next TWKey - end - Database_Services('DeleteDataRow', 'RDS_TEST', RDSTestKey, True$, True$) - Next RDSTestKey - end - Database_Services('DeleteDataRow', 'RDS_LAYER', RDSLayerKey, True$, False$) - If Error_Services('NoError') then - Results = 'RDS_LAYER ' : RDSLayerKey : ' deleted' - end else - Results = 'RDS_LAYER ' : RDSLayerKey : ' not deleted. Error : ' : Error_Services('GetMessage') - end - end - Next Layer - // --------------------------------------------------------------------------------------------------------------------- - - - // Delete old REACT_RUN record if it exists ---------------------------------------------------------------------------- - If RowExists('REACT_RUN', RDSNo) then - // Delete old CLEAN_INSP record(s) if they exist - CIKeys = Xlate('REACT_RUN', RDSNo, 'CI_NO', 'X') - For each CIKey in CIKeys using @VM setting vPos - If RowExists('CLEAN_INSP', CIKey) then - Database_Services('DeleteDataRow', 'CLEAN_INSP', CIKey, True$, False$) - If Error_Services('NoError') then - Results = 'CLEAN_INSP ' : CIKey : ' deleted' - end else - Results = 'CLEAN_INSP ' : CIKey : ' not deleted. Error : ' : Error_Services('GetMessage') - end - end - Next CIKey - Database_Services('DeleteDataRow', 'REACT_RUN', RDSNo, True$, False$) - If Error_Services('NoError') then - Results = 'REACT_RUN ' : RDSNo : ' deleted' - end else - Results = 'REACT_RUN ' : RDSNo : ' not deleted. Error : ' : Error_Services('GetMessage') - end - end - // --------------------------------------------------------------------------------------------------------------------- - - - -return - - -RDSKey: - - Debug - - -return - - -RDSTest: - -* DateIn = Xlate('RDS', 456789, 'DATE_IN', 'X') - - - Fields = Xlate('DICT.WO_MAT', '%FIELDS%', 3, 'X') - For each Field in Fields using @VM setting vPos - Val = Xlate('WO_MAT', '171151*58', Field, 'X') - Next Field - - -return - - -RepTest: - - Debug - OITarget = Replication_Services('GetTargetServerPath') - -return - - -TestMsg: - - Def = "" - Def = '*' -* Def = 'INFINEON' - Def = 'Success' - Def = "Metrology limits update complete!" - Def = "BO" - MsgUp = Msg(@window, Def) -return - -* -* SAPYield: -* -* debug -* Yield = Xlate('WO_MAT', '171379*1', 'SAP_YIELD', 'X') -* -* -* return -* - -Push: - - Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,NDW_RDS_UPDATE_MET_LIMITS_EVENTS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,WORK_ORDER_SERVICES', '', '', '') - -return - -* Verify: -* -* WOList = 171402 -* WOList<-1> = 171396 -* WOList<-1> = 171179 -* WOList<-1> = 171069 -* -* For each WorkOrderNo in WOList using @FM -* If RowExists('WO_LOG', WorkOrderNo) then -* Work_Order_Services('UpdateReleasedQty', WorkOrderNo) -* WORec = Database_Services('ReadDataRow', 'WO_LOG', WorkOrderNo) -* WOQty = WORec -* RXQty = obj_WO_Log('RxQty', WorkOrderNo:@RM:WORec) -* RelQty = obj_WO_Log('RelQty', WorkOrderNo:@RM:WORec) -* If RelQty GT WOQty then -* UnRelQty = 0 -* end else -* UnRelQty = WOQty - RelQty -* end -* ShipQty = obj_WO_Log('ShipQty', WorkOrderNo:@RM:WORec) -* RxQtyStatic = Xlate('WO_LOG', WorkOrderNo, 'RX_QTY_STATIC', 'X') -* RelQtyStatic = Xlate('WO_LOG', WorkOrderNo, 'REL_QTY_STATIC', 'X') -* UnRelQtyStatic = Xlate('WO_LOG', WorkOrderNo, 'UNREL_QTY_STATIC', 'X') -* ShipQtyStatic = Xlate('WO_LOG', WorkOrderNo, 'SHIP_QTY_STATIC', 'X') -* If RxQty NE RxQtyStatic then -* Error<-1> = WorkOrderNo : ' RX_QTY mismatch' -* Work_Order_Services('UpdateReceivedQty', WorkOrderNo) -* end -* If RelQty NE RelQtyStatic or UnRelQty NE UnRelQtyStatic then -* Error<-1> = WorkOrderNo : ' REL_QTY and/or UNREL_QTY mismatch' -* Work_Order_Services('UpdateReleasedQty', WorkOrderNo) -* end -* If ShipQty NE ShipQtyStatic then -* Error<-1> = WorkOrderNo : ' SHIP_QTY mismatch' -* Work_Order_Services('UpdateShippedQty', WorkOrderNo) -* end -* end -* Next WorkOrderNo -* -* return - -WOAudit: - debug - Error = '' - - NextWO = Xlate('DICT.WO_LOG', '%SK%', 1, 'X') - LastWO = NextWO - 1 - - NumWO = LastWO - 171000 - Def = "" - Def = "Verifying work order quantities..." - Def = "GC" - Def = NumWO - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - Counter = 1 - For WorkOrderNo = LastWO to 171000 Step -1 - Running = Msg(@WINDOW, MsgUp, Counter, MSGINSTUPDATE$) ;* Update message - If RowExists('WO_LOG', WorkOrderNo) then - WORec = Database_Services('ReadDataRow', 'WO_LOG', WorkOrderNo) - WOQty = WORec - RXQty = obj_WO_Log('RxQty', WorkOrderNo:@RM:WORec) - RelQty = obj_WO_Log('RelQty', WorkOrderNo:@RM:WORec) - If RelQty GT WOQty then - UnRelQty = 0 - end else - UnRelQty = WOQty - RelQty - end - ShipQty = obj_WO_Log('ShipQty', WorkOrderNo:@RM:WORec) - RxQtyStatic = Xlate('WO_LOG', WorkOrderNo, 'RX_QTY_STATIC', 'X') - RelQtyStatic = Xlate('WO_LOG', WorkOrderNo, 'REL_QTY_STATIC', 'X') - UnRelQtyStatic = Xlate('WO_LOG', WorkOrderNo, 'UNREL_QTY_STATIC', 'X') - ShipQtyStatic = Xlate('WO_LOG', WorkOrderNo, 'SHIP_QTY_STATIC', 'X') - If RxQty NE RxQtyStatic then - Error<-1> = WorkOrderNo : ' RX_QTY mismatch' - Work_Order_Services('UpdateReceivedQty', WorkOrderNo) - end - If RelQty NE RelQtyStatic or UnRelQty NE UnRelQtyStatic then - Error<-1> = WorkOrderNo : ' REL_QTY and/or UNREL_QTY mismatch' - Work_Order_Services('UpdateReleasedQty', WorkOrderNo) - end - If ShipQty NE ShipQtyStatic then - Error<-1> = WorkOrderNo : ' SHIP_QTY mismatch' - Work_Order_Services('UpdateShippedQty', WorkOrderNo) - end - end - Counter += 1 - Next WorkOrderNo - - Msg(@WINDOW,MsgUp) - - Database_Services('WriteDataRow', 'SYSLISTS', 'WO_QTY_ERROR', Error) - -return - - -UpdateWorkOrderQuantities: - - debug - StartDate = Date() - 120 - EndDate = Date() + 120 - SchedDetKeyIDs = Schedule_Services('GetScheduleDetailKeys', StartDate, EndDate) - If SchedDetKeyIDs NE '' then - NumKeys = DCount(SchedDetKeyIDs, @FM) - Def = "" - Def = "Populating work order quantities..." - Def = "GC" - Def = NumKeys - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - - For Each SchedDetKeyID in SchedDetKeyIDs using @FM setting fPos - Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message - SchedDetRec = Database_Services('ReadDataRow', 'SCHED_DET_NG', SchedDetKeyID) - WorkOrderNo = SchedDetRec - Work_Order_Services('UpdateReceivedQty', WorkOrderNo) - Work_Order_Services('UpdateReleasedQty', WorkOrderNo) - Work_Order_Services('UpdateShippedQty', WorkOrderNo) - - Next SchedDetKeyID - end - - Msg(@WINDOW,MsgUp) - -return - -SAPAudit: - - WONo = 171188 - WOMatKeys = Xlate('WO_LOG', WONo, 'WO_MAT_KEY', 'X') - BatchIds = Xlate('WO_LOG', WONo, 'SAP_BATCH_NO', 'X') - SAPYields = Xlate('WO_LOG', WONo, 'WO_MAT_SAP_YIELD', 'X') - SAPScrap = Xlate('WO_LOG', WONo, 'WO_MAT_SAP_CONFIRM_SCRAP', 'X') - - ReportData = 'WO_MAT Key, SAP Batch Id, SAP Yield, SAP Scrap':CRLF$ - For each WOMatKey in WOMatKeys using @VM setting vPos - ReportData := WOMatKey:',':BatchIds<0, vPos>:',':SAPYields<0, vPos>:',':SAPScrap<0, vPos>:CRLF$ - Next WOMatKey - - OSWrite ReportData on 'D:\FITemp\SAPExport.csv' - -return - - -* PushCode: -* -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,OBJ_REACT_STATUS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,RDS_UNLOAD_EVENTS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,DBW_RDS_OVERVIEW_NEPP_EVENTS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,SCAN_SERVICES', '', '', '') -* -* return - - -* CleanEPP: -* debug -* WONo = 171177 -* CassList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -* For each CassNo in CassList using @FM setting fPos -* WMIKey = WONo:'*1*':CassNo -* WMOKey = WONo:'*1*':CassNo -* WOMatKey = WONo:'*':CassNo -* Database_Services('DeleteDataRow', 'WM_IN', WMIKey) -* Database_Services('DeleteDataRow', 'WM_OUT', WMOKey) -* Database_Services('DeleteDataRow', 'WO_MAT', WOMatKey) -* Next CassNo -* -* For CassNo = 39 to 52 Step 1 -* WMOKey = WONo:'*1*':CassNo -* Database_Services('DeleteDataRow', 'WM_OUT', WMOKey) -* Next CassNo -* -* return - - -* QAMetUpdate: -* debug -* WONo = 171309 -* -* For CassNo = 8 to 24 -* WOMatQAKey = WONo:'*':CassNo -* //PSN_Services('UpdateQAMetrologyLimits', WOMatQAKey, 'QA', '1ADE', 'L') -* PSN_Services('UpdateAllQAMetrologyLimits', WOMatQAKey) -* If Error_Services('HasError') then ErrMsg(Error_Services('GetMessage')) -* Next CassNo -* debug -* return - - -ReactStatus: - - Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,REPORT_SERVICES_DEV', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,OBJ_REACT_STATUS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,QA_SERVICES', '', '', '') - -return - -FormList: - - ReportList = '' - List = Get_Repos_Entities('LSL2', 'OIWIN', '', False$) - For each Row in List using @FM setting fPos - ReportList = Field(Row, '*', 4) - Next Row - - LastLaunch = 0 - FormCounts = '' - EOF = False$ - Open 'FORM_METRICS' to hTable then - Select hTable - Loop - Readnext Key else EOF = True$ - Until EOF - FormName = Field(Key, '*', 1) - Locate FormName in ReportList using @FM setting fPos then - FormCounts = FormCounts + 1 - end - Repeat - end - - NumForms = DCount(ReportList, @FM) - For FormIndex = 1 to NumForms - FormCount = FormCounts - If FormCount EQ '' then FormCount = 0 - ReportList = FormCount - Next FormIndex - - ReportList = Insert(ReportList, 1, 0, 0, 'Form Name':@VM:'Launch Count') - Swap @VM with ',' in ReportList - Swap @FM with CRLF$ in ReportList - OSWrite ReportList on 'D:\FITemp\FormCounts.csv' - -return - -TestRep: - debug - KeyList = 73468 - For each KeyID in KeyList using @FM setting fPos then - TableName = 'NOTES' - - If TableName NE '' and KeyID NE '' then - TransID = '' - TransID<1> = 'WRITE' - TransID<2> = 'LSL2' - TransID<3> = 'LSL' - TransID<4> = TableName - TransID<5> = KeyID - Write_OI_To_Sql(TransID) - end - - //Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message - Next KeyID -return - - - - - -SendEmail: - - ConfigFile = '' - ConfigFile<1> = SendUsing_Port$ - ConfigFile<2> = '' - ConfigFile<3> = 25 ;* Server port - *ConfigFile<4> = 'appmail.eu.infineon.com' ;* IFX Mail server - ConfigFile<4> = 'mailrelay-external.infineon.com' - ConfigFile<5> = Yes$ ;* Authenticate - ConfigFile<6> = 'oinotify@infineon.com' ;* Username - ConfigFile<7> = 'oinotify1' ;* Password - ConfigFile<8> = No$ ;* Use SSL - - SentFrom = 'oinotify@infineon.com' - - Message = '' - Message<1> = 'Test' ; * Subject - Message<2> = SentFrom ; * From (email address) - Message<3> = 'dstieber@srpcs.com'; * Send to (email address) - Message<5> = '' ; * Blind Carbon Copy (email address) - Message<6> = '' ; * Reply To (email address) - Message<7> = 'TEXT' ; * Content Type (TEXT or HTML) - Message<8> = 'Testing' ; * Content / Body - Message<9> = '' ; * Attachment(s) (path to file name(s)) - - MsgSent = SRP_Send_Mail(Message, ConfigFile) - -return - -* TestText: -* -* PrintPath = 'ZEBRA01' -* NewPrintPath = Dialog_Box('NDW_EDIT_TEXT', @Window, PrintPath) -* debug -* -* return -* -* -* PushFix: -* -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,REPORT_SERVICES_DEV2', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,PRINTSETUP', '', '', '') -* -* return - - -KeyCheck: - - Open 'WO_MAT' to hTable then - Query = 'SELECT WO_MAT' - RList(Query, TARGET_ACTIVELIST$, '', '', '') - KeyID = '' - EOF = False$ - Counter = 0 - Loop - Counter += 1 - Readnext KeyID, Value else EOF = True$ - Until EOF - If Value then - !!! Error @VM in key ID - DEBUG - end else - Read Rec from hTable, KeyID else - !!! Error @FM in key ID - DEBUG - end - end - Send_Info('Key ':KeyID:' Loop ':Counter:' of ':@RecCount) - Repeat - - - end - -return - - -Location: - - - CurrLoc = Xlate('WO_MAT', '171087*16', 'CURR_LOCATION', 'X') - -return - - -TestDebug: - - S.WONo = '171087' - - CRLocs = '' - CRLocs<0, -1> = 'CR*BE' - CRLocs<0, -1> = 'CR*BO' - CRLocs<0, -1> = 'CR*TUN' - CRLocs<0, -1> = 'CR*EPR' - CRLocs<0, -1> = 'CR*FE' - CRLocs<0, -1> = 'CR*FEH' - CRLocs<0, -1> = 'CR*FO' - CRLocs<0, -1> = 'CR*FOH' - - LoadedData = '' - LocQueryList = CRLocs - - If @User4 EQ 'DANIEL_ST' and S.WONo EQ '171087' then debug - LoadedCassList = '' - ReactType = Xlate('WO_LOG', S.WONo, 'REACT_TYPE', 'X') - If ReactType NE 'EPP' then - If LocQueryList NE '' then - LoadedData = Location_Services('GetLocationCassInfoRList', S.WONo, LocQueryList) - end - end - -return - - -RejQty: - - Debug - WOMatKeys = '170520*11' ; //'171149*40':@VM:'170804*21' - For each WOMatKey in WOMatKeys using @VM setting vPos - WorkOrderNo = Field(WOMatKey, '*', 1) - ReactorType = XLATE('WO_LOG', WorkOrderNo, 'REACT_TYPE', 'X') - ReactorType = Field(ReactorType, @VM, 1) - CassetteQty = XLATE('WO_MAT', WOMatKey, 'WAFER_QTY', 'X') - RejectedWafers = XLATE('WO_MAT', WOMatKey, 'TOT_REJ_WFRS', 'X') - RejectedMUWafers = XLATE('WO_MAT', WOMatKey, 'TOT_REJ_MU_WFRS', 'X') - ProdTestWafers = XLATE('WO_MAT', WOMatKey, 'TW_PROD','X') - CurrWfrCount = XLATE('WO_MAT', WOMatKey, 'CURR_WFR_CNT', 'X') - - IF (RejectedWafers = '') then - RejectedWafers = 0 - END - IF (RejectedMUWafers = '') then - RejectedMUWafers = 0 - END - IF (ProdTestWafers = '') then - ProdTestWafers = 0 - END - - IF ((ReactorType = 'EPP') OR (ReactorType = 'EpiPro')) THEN - RejectedQty = RejectedWafers + RejectedMUWafers - END ELSE - RejectedQty = RejectedWafers + RejectedMUWafers + ProdTestWafers - END - - If ( (CurrWfrCount EQ 0) and (RejectedQty GE CassetteQty) ) then - Null ; // Mark cassette as full box reject - end - Next WOMatKey - - -* RejectedWafers = 0 -* RejectedMUWafers = 0 -* ProdTestWafers = 0 -* -* Set_Status(0) -* CassetteQty = XLATE('WO_MAT', WOMatKey, 'WAFER_QTY', 'X') -* RejectedWafers = Sum(XLATE('WO_MAT', WOMatKey, 'TOT_REJ_WFRS', 'X')) -* RejectedMUWafers = Sum(XLATE('WO_MAT', WOMatKey, 'TOT_REJ_MU_WFRS', 'X')) -* -* IF (RejectedWafers = '') then -* RejectedWafers = 0 -* END -* IF (RejectedMUWafers = '') then -* RejectedMUWafers = 0 -* END -* -* RejectedQty = RejectedWafers + RejectedMUWafers - -return - - -Schedule: - - Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,SCHEDULER_DEV_EVENTS', '', '', '') - -return - - -Status: - - debug - WOMatKey = '170964*21' - WMOKey = '170964*1*21' - WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) - WOMatStatus = obj_WO_Mat('CurrStatus', WOMatKey:@RM:WOMatRec) - ReportStatus = obj_WO_Mat('ReportStatus', WOMatKey:@RM:WOMatRec) - WMORec = Database_Services('ReadDataRow', 'WM_OUT', WMOKey) - WMOStatus = obj_WM_Out('CurrStatus', WMOKey:@RM:WMORec) - - -return - -CleanEvents: - debug - Events = Get_Repos_Entities('LSL2', 'OIEVENT', '', '', '', '', '') - For each Event in Events using @FM setting fPos - Key = 'LSL2*':Field(Event, '*', 3, 1):'*':Field(Event, '*', 4, 1) - Code = Database_Services('ReadDataRow', 'SYSREPOSEVENTS', Key) - OrigCode = Code - Swap '$insert sysprocs, ' with '$insert ' in Code - Swap '$INSERT SYSPROCS, ' with '$INSERT ' in Code - If Code NE OrigCode then - Database_Services('WriteDataRow', 'SYSREPOSEVENTS', Key, Code) - end - Next Event - - -// CleanStProcs - - StProcs = Get_Repos_Entities('LSL2', 'STPROC', '', '', '', '', '') - For each StProc in StProcs using @FM setting fPos - StProcName = Field(StProc, '*', 4, 1) - If StProcName NE 'TEST_DANIEL3' then - Key = StProcName:'*LSL2' - Code = Database_Services('ReadDataRow', 'SYSPROCS', Key) - OrigCode = Code - Swap '$insert sysprocs, ' with '$insert ' in Code - Swap '$INSERT SYSPROCS, ' with '$INSERT ' in Code - If Code NE OrigCode then - Database_Services('WriteDataRow', 'SYSPROCS', Key, Code) - end - end - Next StProc - -return - - -DeadCodeList: - - debug - DeadList = '' - STProcList = Get_Repos_Entities('LSL2', 'STPROC', '') - STProcList = SRP_Array('Rotate', STProcList, @FM, '*') - STProcList = STProcList<4> - STProcExeList = Get_Repos_Entities('LSL2', 'STPROCEXE', '') - STProcExeList = SRP_Array('Rotate', STProcExeList, @FM, '*') - STProcExeList = STProcExeList<4> - Swap '*' with @FM in STProcList - Swap '*' with @FM in STProcExeList - For each STProc in StProcList using @FM setting fPos - Locate STProc in STProcExeList using @FM setting dummy else - DeadList<-1> = STProc - end - Next STProc - Swap @FM with CRLF$ in DeadList - OSWrite DeadList on 'C:\Users\StieberD\Desktop\DeadList.txt' - -return - - - -PushSchema: - - Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,COMM_RECIPE', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,COPY_RDS_LAYER_RECORD_TO_SQL', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,COPY_RECIPE_RECORD_TO_SQL', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,OBJ_RDS_LAYER', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,NDW_TOOL_PARMS_EVENTS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,OBJ_RECIPE', '', '', '') - -return - - - - - -ReactMode: - - debug - CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', 48, 1, 'X') - - -return - - -GanWIPJSON: - - JSON = Gan_Services('GetGaNWIPJSON') - - OSWrite JSON on 'C:\Users\StieberD\Documents\GaNWIP.json' - - -return - - -SAPScript: - - BadList = '' - KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL8') - Def = "" - Def = "Scanning old records..." - Def = "GC" - Def = DCount(KeyList, @FM) - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - - For each Key in KeyList setting fPos - SAPBatchNo = Xlate('WO_MAT', Key, 'SAP_BATCH_NO', 'X') - SAPTxDTM = Xlate('WO_MAT', Key, 'SAP_TX_DTM', 'X') - IF SAPBatchNo[-1,1] EQ 'R' and SAPTxDTM EQ '' then - BadList<-1> = Key - end - Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message - Next Key - Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL9', BadList) - Msg(@WINDOW,MsgUp) - - - BadList = '' - KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL10') - Def = "" - Def = "Scanning new records..." - Def = "GC" - Def = DCount(KeyList, @FM) - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - - For each Key in KeyList setting fPos - SAPBatchNo = Xlate('WO_MAT', Key, 'SAP_BATCH_NO', 'X') - SAPTxDTM = Xlate('WO_MAT', Key, 'SAP_TX_DTM', 'X') - IF SAPBatchNo[-1,1] EQ 'R' and SAPTxDTM EQ '' then - BadList<-1> = Key - end - Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message - Next Key - Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL11', BadList) - Msg(@WINDOW,MsgUp) - - - - -return - - -EPPMetReport: - - ReportData = '' - Headers = Database_Services('ReadDataRow', 'SYSLISTS', 'EPP_METROLOGY_HEADERS') - Columns = Xlate('EXPORTS', 'EPIPRO_METOROLGY', 'COLUMNS', 'X') - Swap @FM with @VM in Headers - ReportData<1> = Headers - - RDSFields = Database_Services('ReadDataRow', 'DICT.RDS', '%FIELDS%') - RDSColumns = RDSFields - RDSConvs = RDSFields - - WMOList = Database_Services('ReadDataRow', 'SYSLISTS', 'WM_OUT_401678F_20210831') - NumWMO = DCount(WMOList, @FM) - - Def = "" - Def = "Building report..." - Def = "GC" - Def = NumWMO - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - - For each WMOKey in WMOList using @FM setting fPos - Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message - RowIndex = fPos + 1 - ThisRDSList = Xlate('WM_OUT', WMOKey, 'RDS', 'X') - Zones = Xlate('WM_OUT', WMOKey, 'ZONE', 'X') - Pockets = Xlate('WM_OUT', WMOKey, 'POCKET', 'X') - SAPBatchNo = Xlate('WM_OUT', WMOKey, 'SAP_BATCH_NO', 'X') - PrevRDSNo = '' - For each RDSNo in ThisRDSList using @VM setting SlotNo - If RDSNo NE PrevRDSNo then Database_Services('ActivateRecord', 'RDS', RDSNo) - ReportRow = '' - For each Column in Columns using @VM setting cPos - Locate Column in RDSColumns using @VM setting ConvPos then - Conv = RDSConvs<0, ConvPos> - Begin Case - Case Column EQ 'WO' - ReportRow<0, cPos> = Field(WMOKey, '*', 1) - Case Column EQ 'SEQ' - ReportRow<0, cPos> = RDSNo - Case Column EQ 'ZONE' - ReportRow<0, cPos> = Zones<0, SlotNo> - Case Column EQ 'POCKET' - ReportRow<0, cPos> = Pockets<0, SlotNo> - Case Column EQ 'WM_OUT_KEY' - ReportRow<0, cPos> = WMOKey - Case Column EQ 'OUT_CASS_NO' - ReportRow<0, cPos> = Field(WMOKey, '*', 3) - Case Column EQ 'OUT_SLOT_NO' - ReportRow<0, cPos> = SlotNo - Case Column EQ 'SAP_BATCH_NO' - ReportRow<0, cPos> = SAPBatchNo - Case Otherwise$ - If Conv EQ '' then - ReportRow<0, cPos> = Calculate(Column) - end else - ReportRow<0, cPos> = OConv(Calculate(Column), Conv) - end - End Case - end - Next Column - PrevRDSNo = RDSNo - ReportData<-1> = ReportRow - Next RDSNo - - Next WMOKey - - Swap @VM with ',' in ReportData - Swap @FM with CRLF$ in ReportData - OSWrite ReportData on 'D:\FITemp\EPPMetReport.csv' - Msg(@WINDOW,MsgUp) - -return - - -SelectEPP: - - // DateOut GT 08/31/2021 = 19602 - RDSList = '' - WMOList = Database_Services('ReadDataRow', 'SYSLISTS', 'WM_OUT_401678F') - FilterWMOList = '' - NumWMO = DCount(WMOList, @FM) - For WMOIndex = 1 to NumWMO - Done = False$ - WMOKey = WMOList - ThisRDSList = Xlate('WM_OUT', WMOKey, 'RDS', 'X') - ThisRDSList = SRP_Array('Clean', ThisRDSList, 'TrimAndMakeUnique', @VM) - For each RDSNo in ThisRDSList using @VM - DateOut = Xlate('RDS', RDSNo, 'DATE_OUT', 'X') - If DateOut GT 19602 then - FilterWMOList<-1> = WMOKey - Done = True$ - end - Until Done - Next RDSNo - Next WMOIndex - Database_Services('WriteDataRow', 'SYSLISTS', 'WM_OUT_401678F_20210831', FilterWMOList) - -return - - -* WfrCnt: -* -* WOMatKey = '171038*13' -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* debug -* CurrWfrCnt = obj_WO_Mat('CurrWaferCnt', WOMatKey:@RM:WOMatRec) -* -* -* return -* -* -* -* RDSList: -* -* RDSList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL_8') -* For each RDSNo in RDSList using @FM -* Database_Services('ActivateRecord', 'RDS', RDSNo) -* RejCnt1 = SUM(XLATE('NCR', {NCR_KEYS}, 'REJ_CNT', 'X')) -* RejCnt2 = {CUST_TOT_REJ} + {LSL_TOT_REJ} -* If RejCnt1 NE RejCnt2 then -* debug -* end -* -* Next RDSNo -* -* -* return - - -* CustScrap: -* -* SearchDir = 'D:\FTP\FTP_IN_REPOSITORY\Batch\2022\03 (March)\' -* InitDir SearchDir:'*' -* FileList = DirList() -* For each Filename in FileList using @FM -* -* OSRead FileData from SearchDir:Filename then -* Swap TAB$ with @FM in FileData -* If (Index(FileData, 'M015833', 1)) then -* debug -* end -* end -* Next Filename -* -* return - -* YieldReport: -* -* WafersIn = 0 -* WafersOut = 0 -* CustScrap = 0 -* IFXScrap = 0 -* ProdTest = 0 -* SRPTotal = 0 -* -* RDSList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL5') -* For each RDSNo in RDSList using @FM -* WafersIn += Xlate('RDS', RDSNo, 'WAFERS_IN', 'X') -* WafersOut += Xlate('RDS', RDSNo, 'WFRS_OUT', 'X') -* -* // Scrap -* ThisCustScrap = Xlate('RDS', RDSNo, 'CUST_TOT_REJ', 'X') -* ThisIFXScrap = Xlate('RDS', RDSNo, 'LSL_TOT_REJ', 'X') -* CustScrap += ThisCustScrap -* IFXScrap += ThisIFXScrap -* -* // Prod Test -* RDSLayerKeys = Xlate('RDS', RDSNo, 'RDS_LAYER_KEYS', 'X') -* RDSTestKeys = Xlate('RDS_LAYER', RDSLayerKeys, 'RDS_TEST_KEYS', 'X') -* ThisProdTest = obj_RDS_Test('ProdTestCount', RDSTestKeys) -* ProdTest += ThisProdTest -* -* // SRP -* SRPTotal += Xlate('RDS', RDSNo, 'RESEARCH_SRP_BILLABLE', 'X') -* -* Next RDSNo -* -* Debug -* -* return - - -* ManRep: -* -* debug -* For SK = 1667 to 1702 -* TransactionID = Database_Services('ReadDataRow', 'REPLICATION_QUEUE_LSL2_WO_MAT', SK) -* Write_OI_To_SQL(TransactionID) -* If Error_Services('NoError') then -* Database_Services('DeleteDataRow', 'REPLICATION_QUEUE_LSL2_WO_MAT', SK) -* end -* Next SK -* -* -* -* return -* - -EPPReport: - - OSRead Report from 'D:\FITemp\book2.csv' then - - Swap CRLF$ with @FM in Report - Swap ',' with @VM in Report - NumRows = DCount(Report, @FM) - - Def = "" - Def = "Updating report..." - Def = "GC" - Def = NumRows - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - Running = Msg(@WINDOW, MsgUp, 1, MSGINSTUPDATE$) ;* Update message - - For RowIndex = 2 to NumRows - Row = Report - WONo = Row<0, 10> - CassNo = Row<0, 16> - WMOKey = WONo:'*1*':CassNo - If RowExists('WM_OUT', WMOKey) then - SAPBatchNo = Xlate('WM_OUT', WMOKey, 'SAP_BATCH_NO', 'X') - Row<0, 13> = SAPBatchNo - Report = Row - end - Running = Msg(@WINDOW, MsgUp, RowIndex, MSGINSTUPDATE$) ;* Update message - Next RowIndex - end - - Swap @FM with CRLF$ in Report - Swap @VM with ',' in Report - OSWrite Report on 'D:\FITemp\book3.csv' - Msg(@WINDOW,MsgUp) - -return - - -* FormList: -* -* ReportList = '' -* List = Get_Repos_Entities('LSL2', 'OIWIN', '', False$) -* For each Row in List using @FM setting fPos -* ReportList = Field(Row, '*', 4) -* Next Row -* -* LastLaunch = 0 -* FormCounts = '' -* EOF = False$ -* Open 'FORM_METRICS' to hTable then -* Select hTable -* Loop -* Readnext Key else EOF = True$ -* Until EOF -* FormName = Field(Key, '*', 1) -* If FormName EQ 'REACT_MODE_CHG' then -* LaunchDTM = Field(Key, '*', 3) -* If LaunchDTM GT LastLaunch then LastLaunch = LaunchDTM -* end -* Locate FormName in ReportList using @FM setting fPos then -* FormCounts = FormCounts + 1 -* end -* Repeat -* end -* -* debug -* LastLaunch = OConv(LastLaunch, 'DT') -* NumForms = DCount(ReportList, @FM) -* For FormIndex = 1 to NumForms -* FormCount = FormCounts -* If FormCount EQ '' then FormCount = 0 -* ReportList = FormCount -* Next FormIndex -* -* ReportList = Insert(ReportList, 1, 0, 0, 'Form Name':@VM:'Launch Count') -* Swap @VM with ',' in ReportList -* Swap @FM with CRLF$ in ReportList -* OSWrite ReportList on 'D:\FITemp\FormCounts.csv' -* -* return - -* Fix: -* debug -* RDSList = Xlate('SYSLISTS', 'TEST_DANIEL6', '', 'X') -* Open 'RDS' to TableVar then -* Open 'DICT.RDS' to @Dict then -* Make.List(0, RDSList, TableVar, @Dict) -* -* If Get_Status(errCodes) Then -* FSMsg(errCodes) -* end else -* EOF = False$ -* Loop -* Readnext @ID else EOF = True$ -* -* Until EOF -* -* Repeat -* end -* end -* end -* -* return - -* RDSList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL_BAD') -* -* Def = "" -* Def = "Scanning records..." -* Def = "GC" -* Def = DCount(RDSList, @FM) -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For each RDSNo in RDSList using @FM setting fPos -* RRRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* WfrStages = RRRec -* Locate 'PLATO' in WfrStages using @VM setting PlatoPos then -* Locate 'CAN_PRE' in WfrStages using @VM setting CanPrePos then -* If PlatoPos LT CanPrePos then -* BadList<-1> = RDSNo -* end -* end -* end -* GaNStageRoute = RRRec -* Locate 'PLATO' in GaNStageRoute using @VM setting PlatoPos then -* Locate 'CAN_PRE' in GaNStageRoute using @VM setting CanPrePos then -* If PlatoPos LT CanPrePos then -* Locate RDSNo in BadList using @FM setting bPos else -* BadList<-1> = RDSNo -* end -* end -* end -* end -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* Next RDSNo -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL_BAD', BadList) -* Msg(@WINDOW,MsgUp) - -* return -* -* -* Scan: -* -* debug -* BadList = '' -* RDSList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_GAN') -* - Def = "" - Def = "Scanning records..." - Def = "GC" - Def = DCount(RDSList, @FM) - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For each RDSNo in RDSList using @FM setting fPos -* RRRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* WfrStages = RRRec -* Locate 'PLATO' in WfrStages using @VM setting PlatoPos then -* Locate 'CAN_PRE' in WfrStages using @VM setting CanPrePos then -* If PlatoPos LT CanPrePos then -* BadList<-1> = RDSNo -* end -* end -* end -* GaNStageRoute = RRRec -* Locate 'PLATO' in GaNStageRoute using @VM setting PlatoPos then -* Locate 'CAN_PRE' in GaNStageRoute using @VM setting CanPrePos then -* If PlatoPos LT CanPrePos then -* Locate RDSNo in BadList using @FM setting bPos else -* BadList<-1> = RDSNo -* end -* end -* end -* end -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* Next RDSNo -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL_BAD', BadList) -* Msg(@WINDOW,MsgUp) -* -* return - -* FormNames = '' -* FormCounts = '' -* EOF = False$ -* Open 'FORM_METRICS' to hTable then -* Select hTable -* Loop -* Readnext Key else EOF = True$ -* Until EOF -* FormName = Field(Key, '*', 1) -* Locate FormName in FormNames using @VM setting vPos then -* FormCounts<0, vPos> = FormCounts<0, vPos> + 1 -* end else -* FormNames<0, -1> = FormName -* FormCounts<0, -1> = 1 -* end -* Repeat -* end -* ReportData = FormNames:@FM:FormCounts -* -* Swap @VM with ',' in ReportData -* Swap @FM with CRLF$ in ReportData -* OSWrite ReportData on 'D:\FITemp\FormCounts.csv' -* -* return - -* debug -* NCRRec = Database_Services('ReadDataRow', 'NCR', 185742) -* RejQty = obj_NCR('RejQty', 185742:@RM:NCRRec) - -* StationID = 'MESSA005_7300' - -* NumLoop = 30 -* LoopIndex = 1 -* Loop -* -* Messaging_Services('SendMessage', 'RefreshSchedule', 'Response', @User4, 'DANIEL_ST', @User4, 'EventHandler', 'SCHEDULER_DEV' : ',OMNIEVENT,@MESSAGE,@ARGUMENTS') -* LoopIndex += 1 -* Sleepery(10000) -* Until LoopIndex EQ NumLoop -* Repeat -* -* end - -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL4') -* For each Key in KeyList using @FM setting fPos -* CurrStatus = Xlate('WO_MAT', '165242*39', 'CURR_STATUS', 'X') -* Rec = Database_Services('ReadDataRow', 'WO_MAT', Key) -* Database_Services('WriteDataRow', 'WO_MAT', Key, Rec, True$, False$, True$) -* Next Key - - -* Start_Window('NDW_FIND_LOCK_OWNER', '', 'RDS':@FM:511791) - -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,NCR_ACTIONS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,COMM_DIALOG_TOOL_STATUS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,WO_DAILY_SCHED_ALL_COMM', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,NCR_ACTIONS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,COMM_WO_MAT_WFR', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,OBJ_WO_MAT', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,OBJ_RDS2', '', '', '') -* return -* end -* -* debug -* Wfrs = Material_Services('GetAvailableMakeupWafers', 170929) -* Start_Window('NDW_MAKEUP_WAFER_NCR', '', 4723) - -* return - - FormNames = '' - FormCounts = '' - EOF = False$ - Open 'FORM_METRICS' to hTable then - Select hTable - Loop - Readnext Key else EOF = True$ - Until EOF - FormName = Field(Key, '*', 1) - Locate FormName in FormNames using @VM setting vPos then - FormCounts<0, vPos> = FormCounts<0, vPos> + 1 - end else - FormNames<0, -1> = FormName - FormCounts<0, -1> = 1 - end - Repeat - end - ReportData = FormNames:@FM:FormCounts - - Swap @VM with ',' in ReportData - Swap @FM with CRLF$ in ReportData - OSWrite ReportData on 'D:\FITemp\FormCounts.csv' - -return -* -* Dialog_Box('NDW_FIND_LOCK_OWNER', '', 'RDS':@FM:508982) -* debug -* WONo = 170877 -* For CassNo = 11 to 32 -* WOMatKey = WONo:'*':CassNo -* WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatKey) -* If Error_Services('NoError') then -* Stages = WOMatQARec -* Props = WOMatQARec -* For each Stage in Stages using @VM setting vPos -* Prop = Props<0, vPos> -* If ( (Stage EQ 'UNLOAD' or Stage EQ 'QA') and (Prop EQ 'THICK') ) then -* WOMatQARec = '2.81' -* end -* Next Stage -* Database_Services('WriteDataRow', 'WO_MAT_QA', WOMatKey, WOMatQARec, True$, False$, True$) -* end else -* ErrMsg(Error_Services('GetMessage')) -* end -* Next CassNo -* -* -* -* -* return -* -* debug -* WONo = 170964 -* For CassNo = 1 to 30 -* WMKey = WONo:'*1*':CassNo -* WMRec = Database_Services('ReadDataRow', 'WM_IN', WMKey) -* Database_Services('WriteDataRow', 'WM_IN', WMKey, WMRec) -* WMRec = Database_Services('ReadDataRow', 'WM_OUT', WMKey) -* Database_Services('WriteDataRow', 'WM_OUT', WMKey, WMRec) -* Next CassNo -* return -* Counter = 0 - Def = "" - Def = "Updating statuses..." - Def = "GC" - Def = 3038 - Def = 600 - MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message - For RDSNo = 506000 to 509038 - Counter += 1 - Running = Msg(@WINDOW, MsgUp, Counter, MSGINSTUPDATE$) ;* Update message - Material_Services('UpdateRDSStatus', RDSNo) - Next RDSNo - Msg(@WINDOW,MsgUp) -* List = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL4') -* Def = "" -* Def = "Cleaning queue..." -* Def = "GC" -* Def = DCount(List, @FM) -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* For each Key in List using @FM setting fPos -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* Database_Services('DeleteDataRow', 'POST_LOG', Key) -* -* Next Key -* Msg(@WINDOW,MsgUp) -* return -* Authenticated = False$ -* -* If MemberOf(@USER4, 'OI_ADMIN') then -* ParentForm = 'NDW_MAIN' -* end else -* ParentForm = 'LSL_MAIN2' -* end -* Loop -* debug -* Response = Dialog_Box('NDW_VERIFY_USER', @Window, @USER4) -* Authenticated = Response<1> -* If Not(Authenticated) then -* ErrorMessage = 'You must reauthenticate to continue running your old version of OpenInsight.' -* rv = Msg('', '', 'OK', '', 'Authentication Required':@FM:ErrorMessage) -* end -* Until Authenticated -* Repeat -* Security_Services('VerifyUserSessions') -* -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,OBJ_NCR', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,COMM_NCR', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,RDS_UNLOAD_EVENTS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,NCR_ACTIONS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,WORK_ORDER_SERVICES', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,MATERIAL_SERVICES', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,WO_LOG_ACTIONS', '', '', '') -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,REACT_RUN_ACTIONS', '', '', '') -* -* return -* -* -* BadList = '' -* WOMatKeys = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL4') -* NumKeys = DCount(WOMatKeys, @FM) -* Def = "" -* Def = "Scanning WO_MAT records..." -* Def = "GC" -* Def = NumKeys -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* For each WOMatKey in WOMatKeys using @FM setting fPos -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* NCRNos = WOMatRec -* NCRFinalSigs = WOMatRec -* NumClosedNCRs = 0 -* For each NCRNo in NCRNos using @VM setting vPos -* NCRStatus = Xlate('NCR', NCRNo, 'STATUS', 'X') -* If NCRStatus EQ 'C' then NumClosedNCRs += 1 -* Next NCRNo -* NCRNoCnt = COUNT(NCRNos,@VM) + (NCRNos NE '') -* NCRSigCnt = COUNT(NCRFinalSigs,@VM) + (NCRFinalSigs NE '') -* -* If ( (NCRNoCnt NE NCRSigCnt) and (NCRNoCnt EQ NumClosedNCRs) ) then -* BadList<-1> = WOMatKey -* end -* Next WOMatKey -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL4_BAD', BadList) -* Msg(@WINDOW,MsgUp) ;* Take message down -* return -* -* -* Database_Services('ActivateRecord', 'RDS', 477390) -* WOMatKey = {WO_MAT_KEY} -* WOMatRepStatus = obj_WO_Mat('ReportStatus', WOMatKey) -* WOMatCurrStatus = obj_WO_Mat('CurrStatus', WOMatKey) -* WOMatRepStatus = XLATE('WO_MAT',{WO_MAT_KEY},'REP_STATUS','X') -* RunStatus = XLATE('REACT_RUN',@ID,'RUN_STATUS','X') -* -* RunStatus = OCONV(RunStatus,'[RUN_STATUS_CONV]') -* -* BEGIN CASE -* CASE WOMatRepStatus NE '' AND RunStatus NE '' -* Ans = WOMatRepStatus -* -* CASE WOMatRepStatus = '' AND RunStatus NE '' -* Ans = RunStatus -* -* CASE WOMatRepStatus NE '' AND RunStatus = '' -* Ans = WOMatRepStatus -* -* CASE 1 -* Ans = '' -* END CASE -* -* -* -* Material_Services('UpdateRDSStatus', 477390) -* RDSList = Xlate('WO_STEP', '170520*1', 'RDS_KEY', 'X') -* For each RDSNo in RDSList using @VM setting vPos -* Material_Services('UpdateRDSStatus', RDSNo) -* Next RDSNo -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'All', 'RTP27,RDS_ACTIONS', 'Procedure', '', '') -* -* return -* -* WMOList = '' -* WMOList<1> = 19 -* WMOList<2> = 20 -* WMOList<3> = 21 -* WMOList<4> = 22 -* WMOList<5> = 23 -* For each CassNo in WMOList using @FM -* WMOKey = '170820*1*':CassNo -* Material_Services('PostWMOutUpdateRequest', WMOKey) -* Next CassNo -* -* RDSList = '' -* RDSList<1> = 506491 -* RDSList<2> = 506492 -* RDSList<3> = 506499 -* RDSList<4> = 506500 -* RDSList<5> = 506501 -* RDSList<6> = 506502 -* RDSList<7> = 506519 -* RDSList<8> = 506522 -* RDSList<9> = 506530 -* RDSList<10> = 506532 -* RDSList<11> = 506533 -* RDSList<12> = 506537 -* RDSList<13> = 506538 -* For each RDSNo in RDSList using @FM -* Material_Services('UpdateRDSStatus', RDSNo) -* RunStatus = obj_React_Run('RunStatus', RDSNo) -* RDS_React_Run(RDSNo) -* -* -* -* Next RDSNo -* -* return -* -* Counter = 1 -* ReportData = '' -* ReportData<1, 1> = 'RDSNo' -* ReportData<1, 2> = 'COMB_STATUS' -* ReportData<1, 3> = 'COMB_STATUS_STATIC' -* For RDSNo = 505143 to 506143 -* Counter += 1 -* CombStatus = Xlate('RDS', RDSNo, 'COMB_STATUS', 'X') -* CombStatusStatic = Xlate('RDS', RDSNo, 'COMB_STATUS_STATIC', 'X') -* ReportData = RDSNo -* ReportData = CombStatus -* ReportData = CombStatusStatic -* Next RDSNo -* Swap @FM with CRLF$ in ReportData -* Swap @VM with ',' in ReportData -* OSWrite ReportData on 'D:\apps\Temp\COMB_STATUS.csv' -* -* return -* -* -* Process: -* -* debug -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL4') -* KeyList = Delete(KeyList, 1, 0, 0) -* For each Key in KeyList using @FM setting fPos -* Database_Services('DeleteDataRow', 'SQL_BACKLOG', Key) -* Next Key -* -* -* -* return -* debug -* Counter = 0 -* ErrorList = '' -* TableName = 'RDS' -* CursorVar = '' -* Flag = '' -* SortList = '#SEQ' -* ReduceScript = 'WITH {SEQ} LT 400000' -* Mode = 1 ; // Use next cursor available -* EOF = False$ -* -* Reduce(ReduceScript, SortList, Mode, TableName, CursorVar, Flag) -* If Flag then -* Select TableName By SortList Using CursorVar then -* Def = "" -* Def = "Populating RDS COMB_STATUS_STATIC..." -* Def = "GC" -* Def = @RecCount -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* Loop -* Readnext KeyID using CursorVar by AT else EOF = True$ -* Until EOF -* Counter += 1 -* Running = Msg(@WINDOW, MsgUp, Counter, MSGINSTUPDATE$) ;* Update message -* Material_Services('UpdateRDSStatus', KeyID) -* If Error_Services('HasError') then -* ErrorList<-1> = KeyID -* end -* Repeat -* End else -* status = Set_FSError() -* end -* end -* Msg(@WINDOW,MsgUp) ;* Take message down -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL4', ErrorList) -* -* return -* -* -* Script: -* -* Def = "" -* Def = "Posting Requests..." -* Def = "GC" -* Def = 77442 -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* Counter = 0 -* For RDSNo = 428000 to 505442 -* Counter += 1 -* Material_Services('PostRDSUpdateRequest', RDSNo) -* Running = Msg(@WINDOW, MsgUp, Counter, MSGINSTUPDATE$) ;* Update message -* Next RDSNo -* -* Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* -* CompileMessage: -* -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', 'DANIEL_ST', 'RTP27,NDW_TOOL_STATUS_GAN_EVENTS', 'Procedure', '', '') -* -* return -* -* FormNames = '' -* FormCounts = '' -* EOF = False$ -* Open 'FORM_METRICS' to hTable then -* Select hTable -* Loop -* Readnext Key else EOF = True$ -* Until EOF -* FormName = Field(Key, '*', 1) -* Locate FormName in FormNames using @VM setting vPos then -* FormCounts<0, vPos> = FormCounts<0, vPos> + 1 -* end else -* FormNames<0, -1> = FormName -* FormCounts<0, -1> = 1 -* end -* Repeat -* end -* ReportData = FormNames:@FM:FormCounts -* -* Swap @VM with ',' in ReportData -* Swap @FM with CRLF$ in ReportData -* OSWrite ReportData on 'D:\FITemp\FormCounts.csv' -* -* return -* -* LoopIndex = 0 -* Loop -* LoopIndex += 1 -* Messaging_Services('SendMessage', 'RefreshSchedule', 'Response', @User4, 'MESSA005_15076', @User4, 'EventHandler', 'SCHEDULER_DEV' : ',OMNIEVENT,@MESSAGE,@ARGUMENTS') -* Sleepery(20000) -* Until LoopIndex EQ 10 -* Repeat -* -* -* return -* -* -* Open 'REPLICATION_QUEUE_LSL2_WO_MAT' to TableHandle then -* Select TableHandle -* EOF = False$ -* Loop -* ReadNext @ID else EOF = True$ -* Until EOF -* TransType = Field(@ID, '*', 1) -* If TransType EQ 'WRITE' then -* Delete TableHandle, @ID then Null -* end -* Repeat -* end -* -* -* -* -* -* -* -* return -* -* WONo = 170528 -* CassNo = 29 -* WOMatKey = WONo:'*':CassNo -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* GRProps = obj_WO_Mat('GetGRProps', WOMatKey:@RM:WOMatRec) -* GRWfrQty -* ScrapQty -* ProdTWQty -* AvailMUWfrQty -* MUCassIDs -* MUCassQtys -* -* return -* -* -* 483953 -* BadList = '' -* NextRDSKey = 475000 -* StartRDSKey = 400000 -* StopRDSKey = Xlate('DICT.RDS', '%SK%', '', 'X') - 1 -* NumKeys = StopRDSKey - StartRDSKey -* Counter = 0 -* -* Def = "" -* Def = "Scanning RDS records..." -* Def = "GC" -* Def = NumKeys -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For RDSNo = StartRDSKey to StopRDSKey -* Counter += 1 -* WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X') -* MakeupBox = Xlate('WO_MAT', WOMatKey, 'MAKEUP_BOX', 'X') -* If MakeupBox NE True$ then -* InvLocs = Xlate('WO_MAT', WOMatKey, 'INV_LOCATION', 'X') -* InvActions = Xlate('WO_MAT', WOMatKey, 'INV_ACTION', 'X') -* Locate 'PTO' in InvLocs using @VM setting vPos else -* QASig = Xlate('RDS', RDSNo, 'SUP_VER_SIG', 'X') -* If QASig NE '' then -* BadList<-1> = RDSNo -* end -* end -* end -* Running = Msg(@WINDOW, MsgUp, Counter, MSGINSTUPDATE$) ;* Update message -* Next RDSNo -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL5', BadList) -* -* Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* -* Fixit: -* debug -* Timestamp = Datetime() -* ErrorList = '' -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL4') -* NumKeys = DCount(KeyList, @FM) -* -* Def = "" -* Def = "Fixing Material Log Entries..." -* Def = "GC" -* Def = NumKeys -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For each RDSNo in KeyList using @FM setting fPos -* RDSNo = Xlate('WO_MAT', WOMatKey, 'RDS_NO', 'X') -* WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X') -* If WOMatKey NE '' then -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* InvActions = WOMatRec -* Locate '1QA' in InvActions using @VM setting vPos else -* Locate 'LBLCHK' in InvActions using @VM setting vPos then -* QASig = Xlate('RDS', RDSNo, 'SUP_VER_SIG', 'X') -* QASigTime = Xlate('RDS', RDSNo, 'SUP_VER_SIG_TIME', 'X') -* QASigDate = Xlate('RDS', RDSNo, 'SUP_VER_SIG_DATE', 'X') -* QASigDTM = QASigDate + (QASigTime/86400) -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, '1QA') -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, 'CR') -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, 'QA') -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, 'OI ADMIN') -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, Timestamp) -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, '') -* WOMatRec = Insert(WOMatRec, 0, vPos, 0, '') -* -* * WOMatRec = 'PLACE' -* * WOMatRec = '1K' -* * WOMatRec = 'PTI' -* * WOMatRec = 'OI_ADMIN' -* * WOMatRec = Timestamp -* * WOMatRec = RDSNo -* * WOMatRec = '' -* -* Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$) -* If Error_Services('HasError') then -* ErrorList<-1> = RDSNo -* end -* end -* end -* end else -* ErrorList<-1> = RDSNo -* end -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* Next WOMatKey -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL_ERROR', ErrorList) -* -* Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* debug -* WOMatKey = '170542*30' -* // Write success packaging -* LogFile = 'WO_MAT' -* Action = 'PACK' -* WhCd = 'CR' -* LocCd = 'PACK' -* UserID = @User4 -* Tag = 'Packaging complete' -* ToolID = '' -* -* WONo = Field(WOMatKey, '*', 1, 1) -* CassNo = Field(WOMatKey, '*', 2, 1) -* -* InvDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS') -* Set_Status(0) -* aiParms = 'WO_MAT':@RM:WONo:@RM:CassNo:@RM:WhCd:'*':LocCd:@RM:Action:@RM:InvDTM:@RM:UserID:@RM:Tag:@RM:ToolID -* obj_WO_Mat('AddInvTrans', aiParms) -* If Get_Status(errCode) then -* debug -* Null -* end -* -* return -* -* Script: -* -* WOMatKey = '170599*2' -* LogFile = 'WO_MAT' -* Action = 'PLACE' -* WhCd = 'CR' -* LocCd = 'QA' -* UserID = @User4 -* Tag = '170599.2' -* ToolID = '' -* errCode = '' -* WONo = Field(WOMatKey, '*', 1, 1) -* CassNo = Field(WOMatKey, '*', 2, 1) -* InvDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS') -* -* WOMLParms = LogFile:@RM -* WOMLParms := InvDTM:@RM -* WOMLParms := Action:@RM -* WOMLParms := WhCd:@RM -* WOMLParms := LocCd:@RM -* WOMLParms := WONo:@RM -* WOMLParms := CassNo:@RM -* WOMLParms := UserID:@RM -* WOMLParms := Tag:@RM -* WOMLParms := ToolID -* -* Set_Status(0) -* obj_WO_Mat_Log('Create',WOMLParms) -* -* aiParms = 'WO_MAT':@RM:WONo:@RM:CassNo:@RM:WhCd:'*':LocCd:@RM:Action:@RM:InvDTM:@RM:UserID:@RM:Tag:@RM:ToolID -* obj_WO_Mat('AddInvTrans', aiParms) -* -* errCode = '' -* -* IF Get_Status(errCode) THEN -* debug -* end -* -* return -* -* Script: -* debug -* BadList = '' -* RDSNos = 482815:@FM ; //Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL_LIST') -* For each RDSNo in RDSNos using @FM setting fPos -* WfrIDs = Xlate('REACT_RUN', RDSNo, 'IN_WFR_ID', 'X') -* For each WfrID in WfrIDs using @VM setting vPos -* GaN_Services('WithdrawWfr', RDSNo, WfrID) -* Next WfrID -* GaN_Services('SplitSelection', RDSNo) -* ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* If Error_Services('NoError') then -* ReactRunRec = '' -* Database_Services('WriteDataRow', 'REACT_RUN', RDSNo, ReactRunRec, True$, False$, True$) -* If Error_Services('HasError') then -* BadList<-1> = RDSNo -* end -* end else -* BadList<-1> = RDSNo -* end -* Next RDSNo -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL_ERROR', BadList) -* -* -* return -* -* -* -* return -* -* OPEN 'SCHED_DET_NG' TO SchedDetTable then -* OPEN 'DICT.SCHED_DET_NG' TO @DICT then -* Today = Datetime() -* SchedDetKeys = '' -* SelectSent = 'SELECT SCHED_DET_NG WITH STOP_DTM GE ':Today:' BY REACT_NO' -* -* RList(SelectSent,TARGET_ACTIVELIST$,'','','') -* IF Get_Status(errCode) THEN -* ErrMsg(errCode) -* RETURN -* END -* -* Done = 0 -* @ID = '' -* LOOP -* PrevSchedDetKey = @ID -* READNEXT @ID ELSE Done = 1 -* UNTIL Done -* SchedDetKeys<-1> = @ID -* REPEAT -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL2', SchedDetKeys) -* end -* end -* -* -* return -* -* WONo = 170326 -* For CassNo = 1 to 76 step 1 -* WOMatKey = WONo:'*':CassNo -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* WOMatRec = WONo:'*1*':CassNo -* WOMatRec = WONo:'*1*':CassNo -* Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$) -* Next CassNo -* -* -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL4') -* For each RDSNo in KeyList using @FM -* -* RDSTestKeys = Xlate('RDS', RDSNo, 'RDS_TEST_KEYS', 'X') -* If RDSTestKeys NE '' then -* For each RDSTestKey in RDSTestKeys using @VM -* RDSTestRec = Database_Services('ReadDataRow', 'RDS_TEST', RDSTestKey) -* RDSTestRec = 'LSL_8IN' -* Database_Services('WriteDataRow', 'RDS_TEST', RDSTestKey, RDSTestRec) -* Next RDSTestKey -* end -* -* Next RDSNo -* -* CtrlVer = 1.2 -* Msg(@Window, '', 'OK', '', 'Control Version':@FM:CtrlVer) -* *Version = SRP_Get_FileVersion("D:\apps\OICurrent\SRPControls.ocx") -* Version = SRP_Get_FileVersion("C:\Program Files (x86)\RevSoft\OIClient\SRPControls.ocx") -* -* return -* -* CutoffDate = Date() - 912 ; // 2.5 years -* RemoveList = '' -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -* For each WOMatKey in KeyList using @FM setting fPos -* -* WONo = Field(WOMatKey, '*', 1) -* WOEntryDt = Xlate('WO_LOG', WONo, 'ENTRY_DATE', 'X') -* If WOEntryDt LT CutoffDate then -* RemoveList<-1> = WOMatKey -* end -* -* ReactType = Xlate('WO_MAT', WOMatKey, 'REACTOR_TYPE', 'X') -* If ReactType EQ 'EPP' then -* -* end else -* RDSNo = Xlate('WO_MAT', WOMatKey, 'RDS_NO', 'X') -* DateOut = Xlate('RDS', RDSNo, 'DATE_OUT', 'X') -* CutoffDate = Date() - 730 -* If ( (DateOut LT CutoffDate) or (DateOut EQ '') ) then -* // Old makeup cassette -* end -* end -* -* Next WOMatKey -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'TEST_DANIEL2', RemoveList) -* -* return -* -* -* WOMatKey = '170484*9' -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* debug -* GRProps = obj_WO_Mat('GetGRProps',WOMatKey:@RM:WOMatRec) -* -* WMOKey = '170328*1*62' -* WMORec = Database_Services('ReadDataRow', 'WM_OUT', WMOKey) -* CurrStatus = obj_WM_Out('CurrStatus', WMOKey:@RM:WMORec) -* RepStatus = Xlate('WM_OUT', WMOKey, 'REP_STATUS', 'X') -* -* -* WOMatKey = '170328*62' -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* RepStatus = obj_WO_Mat('ReportStatus', WOMatKey:@RM:WOMatRec) -* -* WOStepKey = '170422*1' -* LoadCount = Sum(Xlate('WO_STEP', WOStepKey, 'ALL_RDS_WFRS_EPI_LOAD', 'X')) -* WONo = 170328 -* EventWfrs = 444 -* WOQty = Xlate('WO_LOG', WONo, 'QTY', 'X') -* FirstWfr = (WOQty - EventWfrs) / 25 -* FirstWfr = FirstWfr[-1, 'B.'] -* FirstWfr = (FirstWfr * .25) + 1 -* -* return -* -* -* StartDate = Date() - 1 -* EndDate = Date() - 1 -* -* For Date = StartDate to EndDate Step 1 -* -* Reactor_Services('ClearWafersExpected', OConv(Date, 'D')) -* Reactor_Services('ClearWafersProcessed', OConv(Date, 'D')) -* Reactor_Services('CreatePerformanceTrackers', OConv(Date, 'D'), True$) -* Reactor_Services('UpdatePerformanceTrackers', OConv(Date, 'D'), True$) -* -* Next Date -* -* -* For Date = StartDate to EndDate Step 1 -* -* Reactor_Services_Dev('ClearWafersExpectedDev', OConv(Date, 'D')) -* Reactor_Services_Dev('ClearWafersProcessedDev', OConv(Date, 'D')) -* Reactor_Services_Dev('CreatePerformanceTrackersDev', OConv(Date, 'D'), True$) -* Reactor_Services_Dev('UpdatePerformanceTrackersDev', OConv(Date, 'D'), True$) -* -* Next Date -* -* ZombieList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -* For each EventID in ZombieList using @FM setting fPos -* Database_Services('DeleteDataRow', 'SCHED_DET_NG', EventID, True$, False$) -* Next EventID -* -* -* -* RDSList = '' -* RDSList<-1> = 469318 -* RDSList<-1> = 469320 -* RDSKey = Dialog_Box('NDW_RDS_QUERY', @Window, RDSList) -* Debug -* Messaging_Services('SendMessage', 'RefreshSchedule', 'Response', '', 'All', '', 'EventHandler', 'SCHEDULER_DEV' : ',OMNIEVENT,@MESSAGE,@ARGUMENTS') -* EOF = False$ -* Query = 'SELECT WO_SCHEDULE_NG WITH UNSCHED_QTY EQ 0' -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* Loop -* Readnext WOLogKeyID else EOF = True$ -* Until EOF = True$ -* Database_Services('DeleteDataRow', 'WO_SCHEDULE_NG', WOLogKeyID) -* Repeat -* -* -* WOMatKey = Xlate('RDS', 469320, 'WO_MAT_KEY', 'X') -* WOMatKey = Xlate('RDS', 469318, 'WO_MAT_KEY', 'X') -* -* RType = Xlate('RDS', 469320, 'REACTOR_TYPE', 'X') -* RType = Xlate('RDS', 469318, 'REACTOR_TYPE', 'X') -* -* RxList = Reactor_Services('GetReactorNumbers') -* For each Reactor in RxList using @FM setting vPos -* -* ReactRec = Database_Services('ReadDataRow', 'REACTOR', Reactor) -* If ReactRec NE '' then -* ReactRec = '' -* Database_Services('WriteDataRow', 'REACTOR', Reactor, ReactRec, True$, False$, True$) -* end -* -* Next Reactor -* -* return -* -* KeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL') -* -* Def = "" -* Def = "Populating Test Wafer Data..." -* Def = "GC" -* Def = Dcount(KeyList, @FM) -* Def = 600 -* MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* -* For each RDSNo in KeyList using @FM setting fPos -* -* ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* Database_Services('WriteDataRow', 'REACT_RUN', RDSNo, ReactRunRec, True$, False$, True$) -* Running = Msg(@WINDOW, MsgUp, fPos, MSGINSTUPDATE$) ;* Update message -* Next RDSNo -* -* Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* -* TestRevDotNetCommon: -* -* //Define the dotNet version -* RevDotNetCommon = '' -* DotNetHandle = StartDotNet("", '', RevDotNetCommon) -* -* DotNetDir = CheckDotNet('4.0'):'\' -* SqlClientDLLPath = DotNetDir:'System.Data.dll' -* ConnectionString = 'Password=mesa@1234@IQSDMS1!0987;Persist Security Info=True;User ID=IQSDMS1;Initial Catalog=G4Wafers_01;Data Source=messv01ec.ec.local\PROD1,53959' -* //Specify the DLL -* rv = Set_Property.NET(DotNetHandle, "AssemblyName", SqlClientDLLPath, RevDotNetCommon) -* //Define the classes -* SqlConnectionObj = Create_Class.NET(DotNetHandle, "System.Data.SqlClient.SqlConnection", 0, ConnectionString, 'System.String', RevDotNetCommon) -* IF Get_Status(errCode) THEN -* ErrMsg(errCode) -* END else -* mthds = Get_Info.Net(SqlConnectionObj, REVDOTNET_INFO_METHODS, RevDotNetCommon) -* Set_Status(0) -* rv = Send_Message.Net(SqlConnectionObj, "Open", RevDotNetCommon) -* -* IF Not(Get_Status(errCode)) THEN -* ConnectionState = Get_Property.Net(SqlConnectionObj, "State", RevDotNetCommon) -* -* If ConnectionState EQ 'Open' then -* SQLStatement = "select [Probe_Key] from [G4Wafers_01].[dbo].[Probe3]" -* Params = SQLStatement:@FM:SqlConnectionObj -* ParamTypes = 'System.String':@FM:'RevDotNet' -* Set_Status(0) -* SqlCommandObj = Create_Class.NET(DotNetHandle, "System.Data.SqlClient.SqlCommand", 0, Params, ParamTypes, RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* SqlCommandMethods = Get_Info.Net(SqlCommandObj, REVDOTNET_INFO_METHODS) -* Set_Status(0) -* ProbeKey = Send_Message.Net(SqlCommandObj, "ExecuteScalar", RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* If ( (ProbeKey NE 0) and (ProbeKey NE '') ) then -* NewProbeKey = ProbeKey + 1 -* SQLStatement = 'update [G4Wafers_01].[dbo].[Probe3] set [Probe_Key] = ':NewProbeKey:' where [Probe_Key] = ':ProbeKey -* Set_Status(0) -* rv = Set_Property.NET(SqlCommandObj, "CommandText", SQLStatement, RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* Set_Status(0) -* rv = Send_Message.Net(SqlCommandObj, "ExecuteNonQuery", RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* // Verify Probe Key was updated -* SQLStatement = "select [Probe_Key] from [G4Wafers_01].[dbo].[Probe3]" -* Set_Status(0) -* rv = Set_Property.NET(SqlCommandObj, "CommandText", SQLStatement, RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* Set_Status(0) -* VerifyProbeKey = Send_Message.Net(SqlCommandObj, "ExecuteScalar", RevDotNetCommon) -* If Not(Get_Status(errCode)) then -* If VerifyProbeKey NE NewProbeKey then -* // Log error -* end -* end -* end -* end -* end -* end else -* // Log error -* end -* end -* end -* rv = Send_Message.Net(SqlConnectionObj, 'Close', RevDotNetCommon) -* ConnectionState = Get_Property.Net(SqlConnectionObj, "State", RevDotNetCommon) -* end -* end -* end -* Free_Class.Net('', RevDotNetCommon) -* -* return -* -* -* Main: -* -* -* objConnection = SQL_Services('GetConnectionObject', 'SPC') -* -* If objConnection then -* -* Query = "select [Probe_Key] from [G4Wafers_01].[dbo].[Probe2]" -* SQL_Services('ExecuteQuery', objConnection, Query, True$) -* -* SQL_Services('DestroyConnectionObject', objConnection) -* end -* -* -* -* return -* -* -* -* -* Test5: -* -* ConnString = Database_Services('ReadDataRow', 'SERVERS', 'SPC') -* ConnString = Delete(ConnString, 2, 0, 0) -* ProviderIdx = IndexC(ConnString, 'Provider', 1) -* ConnString = ConnString[(ProviderIdx + 1), 999] -* ProviderEndIdx = Index(ConnString, ';', 1) -* ConnString = ConnString[(ProviderEndIdx + 1), 999] -* CIKey = 2409742 -* InspReq = Xlate('CLEAN_INSP', CIKey, 'SPEC_INSP_REQ', 'X') -* If InspReq EQ '' then InspReq = Xlate('CLEAN_INSP', CIKey, 'INSP_REQ', 'X') -* -* InspFreq = Xlate('CLEAN_INSP', CIKey, 'INSP_INTERVAL', 'X') -* If InspFreq NE '' then -* // Use the stored interval -* RDSNo = Xlate('CLEAN_INSP', CIKey, 'RDS_NO', 'X') -* PSNo = Xlate('CLEAN_INSP', CIKey, 'PS_NO', 'X') -* WONo = Xlate('CLEAN_INSP', CIKey, 'WO_NO', 'X') -* WOQty = Xlate('WO_LOG', WONo, 'QTY', 'X') -* RunNo = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X') -* StageKey = PSNo:'*LWI' -* InspInterval = Xlate('PRS_STAGE', StageKey, 'INSP_INTERVAL', 'X') -* LastRun = ( (RunNo * 25) EQ WOQty ) -* InspReq = ( (Mod((RunNo - 1), InspInterval) EQ 0) or LastRun ) -* end else -* // Use the current PRS_STAGE interval -* InspReq = Xlate('CLEAN_INSP', CIKey, 'INSP_REQ', 'X') -* end -* -* return -* -* -* Export: -* -* NonEppList = '' -* WOMatList = Database_Services('ReadDataRow', 'SYSLISTS', 'NULL_RDS_NON_EPP') -* -* For each WOMatKey in WOMatList using @FM setting fPos -* -* ReactorType = Xlate('WO_MAT', WOMatKey, 'REACTOR_TYPE', 'X') -* If ReactorType NE 'EPP' and ReactorType NE 'GAN' then -* NonEppList<-1> = WOMatKey -* end -* Next WOMatKey -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'NULL_RDS_NON_EPP', NonEppList) -* -* NonEppList = Database_Services('ReadDataRow', 'SYSLISTS', 'NULL_RDS_NON_EPP') -* Swap @FM with CRLF$ in NonEppList -* OSWrite NonEppList on 'C:\Users\StieberD\Desktop\null-rds-non-epp.csv' -* -* -* -* return -* -* -* -* -* WOMatPush: -* -* * WOMatKeyList = Database_Services('ReadDataRow', 'SYSLISTS', 'FABTIME_PUSH') -* * -* * NumWOMatKeys = DCount(WOMatKeyList, @FM) -* * -* * Def = "" -* * Def = "Updating WO_MAT..." -* * Def = "GC" -* * Def = NumWOMatKeys -* * Def = 600 -* * MsgUp = Msg(@WINDOW, Def) ;* Start gas guage message -* * Table = 'WO_MAT' -* * WOMatKeyListIndex = 1 -* * NewWOMatKeyList = WOMatKeyList -* * Loop -* * ID = WOMatKeyList -* * Copy_Record_To_SQL(Table, ID, 1) -* * NewWOMatKeyList = Delete(NewWOMatKeyList, 1, 0, 0) -* * WOMatKeyListIndex += 1 -* * Database_Services('WriteDataRow', 'SYSLISTS', 'FABTIME_PUSH', NewWOMatKeyList) -* * Running = Msg(@WINDOW, MsgUp, WOMatKeyListIndex, MSGINSTUPDATE$) ;* Update message -* * Until WOMatKeyListIndex GE NumWOMatKeys -* * Repeat -* * -* * Msg(@WINDOW,MsgUp) ;* Take message down -* -* return -* -* -* TaskSubmit: -* -* TaskID = RTI_Task_Submit('', 'TEST_DANIEL', '', '', '', '') -* -* If TaskID NE 0 then -* Done = False$ -* TaskResponse = '' -* Loop -* Status = RTI_Task_Status(TaskID, TaskResponse) -* If (Status EQ 'COMPLETED') OR (Status EQ 'ERROR') then Done = True$ -* Until Done -* Repeat -* end else -* // Track if task id wasn't created at all. -* end -* StatusError = Get_Status(errCode) -* If (Index(errCode, 'SHELLEXECUTE', 1)) NE 0 then StatusError = 0 -* -* -* return -* -* retval = Utility("PRINTSETUP") -* -* IF NOT(ASSIGNED(PrinterID)) THEN PrinterID = '' -* IF NOT(ASSIGNED(RetDefault)) THEN RetDefault = '' -* -* Printers = '' -* Default = '' -* -* //PrintCount = PrintSetupNew(Printers,Default) ;* OI routine returns printer names, driver, port information -* //end else -* PrintCount = PrintSetup(PRN_GET$,'',Printers,Default) ;* OI routine returns printer names, driver, port information -* //end -* -* DefPrinter = Default[1,','] -* DefPort = FIELD(Default,',',3) -* DefLine = DefPrinter:' on ':DefPort -* -* If Default NE 'Microsoft XPS Document Writer,winspool,Ne00:' then -* Null -* PrintSetup(PRN_SET$, 'Microsoft XPS Document Writer,winspool,Ne00:') -* end -* -* return -* -* -* // Import 6 inch Excel spreadsheet -* -* RetainFilepath = 'D:\Apps\Temp\6in-IFEPI GaN Retain Inventory.xlsx' -* RetainFilepath = 'D:\Apps\Temp\8in-IFEpi GaN Retain Inventory.xlsx' -* RetainFilepath = 'D:\Apps\Temp\Sample.xlsx' -* RetainExcelHandle = Excel_Services('OpenDocument', RetainFilepath) -* RetainWorksheet = 'Sheet1' -* NumExcelRows = Excel_Services('GetNumRows', RetainExcelHandle, RetainWorksheet) -* -* Open 'DICT.REACT_RUN' to @DICT then -* For ExcelRow = 2 to NumExcelRows -* -* RunID = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'A', ExcelRow) ) -* Convert @Upper.Case to @Lower.Case in RunID -* RDSNo = '' -* Column = 'GAN_RUN_ID' -* SearchString = Column:@VM:RunID:@FM -* Btree.Extract(SearchString, 'REACT_RUN', @DICT, RDSNo) -* If RDSNo NE '' then -* ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* If Error_Services('NoError') then -* RRRecipe = ReactRunRec -* RRPart = Xlate('REACT_RUN', RDSNo, 'EPI_PART_NO', 'X') -* RRScribes = Xlate('REACT_RUN', RDSNo, 'WFR_SCRIBES', 'X') -* InWfrIDs = ReactRunRec -* -* * Read the data from the Excel retain spreadsheet * -* Recipe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'B', ExcelRow) ) -* Pocket = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'C', ExcelRow) ) -* If Pocket _NEC 'ref' then -* Scribe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'D', ExcelRow) ) -* Grade = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'E', ExcelRow) ) -* Part = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'F', ExcelRow) ) -* WorkOrder = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'G', ExcelRow) ) -* RetainBox = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'H', ExcelRow) ) -* RetainSlot = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'I', ExcelRow) ) -* Operator = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'J', ExcelRow) ) -* RetainDTM = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'K', ExcelRow) ) -* CurrLoc = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'L', ExcelRow) ) -* Status = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'M', ExcelRow) ) -* Comment = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'N', ExcelRow) ) -* -* Begin Case -* Case Operator _EQC 'AH' -* RetainSig = 'ANTHONY_H' -* Case Operator _EQC 'SB' -* RetainSig = 'SYEDA_B' -* Case Operator _EQC 'PM' -* RetainSig = 'PEYTON_M' -* Case Operator _EQC 'JL' -* RetainSig = 'JAVIER_L' -* Case Operator _EQC 'PS' -* RetainSig = 'PRISCILA_S' -* Case Operator _EQC 'NC' -* RetainSig = 'NIKOLAS_C' -* Case Operator _EQC 'HG' -* RetainSig = 'HECTOR_G' -* Case Operator _EQC 'ES' -* RetainSig = 'ESTEBAN_S' -* Case Operator _EQC 'AD' -* RetainSig = 'ALIYAH_D' -* Case Operator _EQC 'LB' -* RetainSig = 'LACEY_B' -* Case Operator _EQC 'IP' -* RetainSig = 'IAN_P' -* Case Operator _EQC 'RC' -* RetainSig = 'RYAN_C' -* Case Operator _EQC 'GR' -* RetainSig = 'GEORGE_R' -* Case Operator _EQC 'AH/JL' -* RetainSig = 'ANTHONY_H' -* Case Operator _EQC 'NC/JL' -* RetainSig = 'NIKOLAS_C' -* Case Operator _EQC 'SW' -* RetainSig = 'STEVEN_W' -* Case Otherwise$ -* RetainSig = '' -* End Case -* -* // Truncate DTM to just the date, then convert to internal format -* RetainDate = RetainDTM[1, 'F '] -* RetainDate = IConv(RetainDate, 'D') -* -* * Clean the data * -* // Format the Recipe -* Convert @Lower.Case to @Upper.Case in Recipe -* // Format the Pocket -* If Pocket[1, 1] NE '0' then Pocket = '0':Pocket -* // Format the Scribe -* Convert @Lower.Case to @Upper.Case in Scribe -* // Format the Grade -* Begin Case -* Case Grade _EQC 'aborted' -* Grade = 'Aborted' -* Case Grade _EQC 'CT' -* Grade = 'CT' -* Case ( (Grade _EQC 'Eng test') or (Grade _EQC 'Eng test') or (Grade _EQC 'Engtest') or (Grade _EQC 'Test') ) -* Grade = 'Eng Test' -* Case Grade _EQC 'Eq Failure' -* Grade = 'EQ Failure' -* Case Grade _EQC 'Mechanical' -* Grade = 'Mechanical' -* Case Grade _EQC 'NA' -* Grade = 'NA' -* Case Grade _EQC 'retain' -* Grade = 'Retain' -* Case Grade _EQC 'scrap' -* Grade = 'Scrap' -* Case Grade _EQC 'Terminated' -* Grade = 'Terminated' -* Case Grade _EQC '' -* Grade = '' -* Case Otherwise$ -* Null -* End Case -* // Format the Part No -* Convert @Lower.Case to @Upper.Case in Part -* // Format the Current Location -* Begin Case -* Case CurrLoc _EQC 'Cleanroom' -* CurrLoc = 'Cleanroom' -* Case ( (CurrLoc _EQC 'Wafer Destroyed') or (CurrLoc _EQC 'Wafers Destroyed') or (CurrLoc _EQC 'Wasfer Destroyed') ) -* CurrLoc = 'Wafer Destroyed' -* Case CurrLoc _EQC 'Warehouse' -* CurrLoc = 'Warehouse' -* End Case -* -* * Write the data to the WO_WFR record * -* WfrIndex = Pocket + 0 ; // Convert string to integer and trim 0 padding -* -* RRScribe = RRScribes<0, WfrIndex> -* WfrID = InWfrIDs<0, WfrIndex> -* WOWfrRec = Database_Services('ReadDataRow', 'WO_WFR', WfrID) -* If Error_Services('NoError') then -* WOWfrRec = Grade -* WOWfrRec = RunID -* WOWfrRec = Pocket -* WOWfrRec = Scribe -* WOWfrRec = RetainBox -* WOWfrRec = RetainSlot -* WOWfrRec = CurrLoc -* WOWfrRec = Comment -* WOWfrRec = Status -* WOWfrRec = RetainSig -* WOWfrRec = RetainDate -* Database_Services('WriteDataRow', 'WO_WFR', WfrID, WOWfrRec, True$, False$, True$) -* end -* end -* end -* end -* Next ExcelRow -* end -* Excel_Services('CloseDocument', RetainExcelHandle) -* -* // Import 8 inch Excel spreadsheet -* -* RetainFilepath = 'D:\Apps\Temp\8in-IFEpi GaN Retain Inventory.xlsx' -* RetainExcelHandle = Excel_Services('OpenDocument', RetainFilepath) -* RetainWorksheet = 'Sheet1' -* NumExcelRows = Excel_Services('GetNumRows', RetainExcelHandle, RetainWorksheet) -* -* Open 'DICT.REACT_RUN' to @DICT then -* For ExcelRow = 2 to NumExcelRows -* -* RunID = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'A', ExcelRow) ) -* Convert @Upper.Case to @Lower.Case in RunID -* RDSNo = '' -* Column = 'GAN_RUN_ID' -* SearchString = Column:@VM:RunID:@FM -* Btree.Extract(SearchString, 'REACT_RUN', @DICT, RDSNo) -* If RDSNo NE '' then -* ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo) -* If Error_Services('NoError') then -* RRRecipe = ReactRunRec -* RRPart = Xlate('REACT_RUN', RDSNo, 'EPI_PART_NO', 'X') -* RRScribes = Xlate('REACT_RUN', RDSNo, 'WFR_SCRIBES', 'X') -* InWfrIDs = ReactRunRec -* -* * Read the data from the Excel retain spreadsheet * -* Recipe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'B', ExcelRow) ) -* Pocket = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'C', ExcelRow) ) -* If Pocket _NEC 'ref' then -* Scribe = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'D', ExcelRow) ) -* Grade = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'E', ExcelRow) ) -* Part = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'F', ExcelRow) ) -* WorkOrder = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'G', ExcelRow) ) -* RetainBox = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'H', ExcelRow) ) -* RetainSlot = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'I', ExcelRow) ) -* Operator = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'J', ExcelRow) ) -* RetainDate = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'K', ExcelRow) ) -* CurrLoc = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'L', ExcelRow) ) -* Status = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'M', ExcelRow) ) -* Comment = Trim( Excel_Services('GetCellValue', RetainExcelHandle, RetainWorksheet, 'N', ExcelRow) ) -* -* Begin Case -* Case Operator _EQC 'AH' -* RetainSig = 'ANTHONY_H' -* Case Operator _EQC 'SB' -* RetainSig = 'SYEDA_B' -* Case Operator _EQC 'PM' -* RetainSig = 'PEYTON_M' -* Case Operator _EQC 'JL' -* RetainSig = 'JAVIER_L' -* Case Operator _EQC 'PS' -* RetainSig = 'PRISCILA_S' -* Case Operator _EQC 'NC' -* RetainSig = 'NIKOLAS_C' -* Case Operator _EQC 'HG' -* RetainSig = 'HECTOR_G' -* Case Operator _EQC 'ES' -* RetainSig = 'ESTEBAN_S' -* Case Operator _EQC 'AD' -* RetainSig = 'ALIYAH_D' -* Case Operator _EQC 'LB' -* RetainSig = 'LACEY_B' -* Case Operator _EQC 'IP' -* RetainSig = 'IAN_P' -* Case Operator _EQC 'RC' -* RetainSig = 'RYAN_C' -* Case Operator _EQC 'GR' -* RetainSig = 'GEORGE_R' -* Case Operator _EQC 'AH/JL' -* RetainSig = 'ANTHONY_H' -* Case Operator _EQC 'NC/JL' -* RetainSig = 'NIKOLAS_C' -* Case Operator _EQC 'SW' -* RetainSig = 'STEVEN_W' -* Case Otherwise$ -* RetainSig = '' -* End Case -* -* // Truncate DTM to just the date, then convert to internal format -* RetainDate = RetainDTM[1, 'F '] -* RetainDate = IConv(RetainDate, 'D') -* -* * Clean the data * -* // Format the Recipe -* Convert @Lower.Case to @Upper.Case in Recipe -* // Format the Pocket -* If Pocket[1, 1] NE '0' then Pocket = '0':Pocket -* // Format the Scribe -* Convert @Lower.Case to @Upper.Case in Scribe -* // Format the Grade -* Begin Case -* Case Grade _EQC 'aborted' -* Grade = 'Aborted' -* Case Grade _EQC 'CT' -* Grade = 'CT' -* Case ( (Grade _EQC 'Eng test') or (Grade _EQC 'Eng test') or (Grade _EQC 'Engtest') or (Grade _EQC 'Test') ) -* Grade = 'Eng Test' -* Case Grade _EQC 'Eq Failure' -* Grade = 'EQ Failure' -* Case Grade _EQC 'Mechanical' -* Grade = 'Mechanical' -* Case Grade _EQC 'NA' -* Grade = 'NA' -* Case Grade _EQC 'retain' -* Grade = 'Retain' -* Case Grade _EQC 'scrap' -* Grade = 'Scrap' -* Case Grade _EQC 'Terminated' -* Grade = 'Terminated' -* Case Grade _EQC '' -* Grade = '' -* Case Otherwise$ -* Null -* End Case -* // Format the Part No -* Convert @Lower.Case to @Upper.Case in Part -* // Format the Current Location -* Begin Case -* Case CurrLoc _EQC 'Cleanroom' -* CurrLoc = 'Cleanroom' -* Case ( (CurrLoc _EQC 'Wafer Destroyed') or (CurrLoc _EQC 'Wafers Destroyed') or (CurrLoc _EQC 'Wasfer Destroyed') ) -* CurrLoc = 'Wafer Destroyed' -* Case CurrLoc _EQC 'Warehouse' -* CurrLoc = 'Warehouse' -* End Case -* -* * Write the data to the WO_WFR record * -* WfrIndex = Pocket + 0 ; // Convert string to integer and trim 0 padding -* -* RRScribe = RRScribes<0, WfrIndex> -* WfrID = InWfrIDs<0, WfrIndex> -* WOWfrRec = Database_Services('ReadDataRow', 'WO_WFR', WfrID) -* If Error_Services('NoError') then -* WOWfrRec = Grade -* WOWfrRec = RunID -* WOWfrRec = Pocket -* WOWfrRec = Scribe -* WOWfrRec = RetainBox -* WOWfrRec = RetainSlot -* WOWfrRec = CurrLoc -* WOWfrRec = Comment -* WOWfrRec = Status -* WOWfrRec = RetainSig -* WOWfrRec = RetainDate -* Database_Services('WriteDataRow', 'WO_WFR', WfrID, WOWfrRec, True$, False$, True$) -* end -* end -* end -* end -* Next ExcelRow -* end -* Excel_Services('CloseDocument', RetainExcelHandle) -* -* return - - - - - - diff --git a/LSL2/STPROC/TEST_FRANCOIS.txt b/LSL2/STPROC/TEST_FRANCOIS.txt deleted file mode 100644 index aeadac8..0000000 --- a/LSL2/STPROC/TEST_FRANCOIS.txt +++ /dev/null @@ -1,2239 +0,0 @@ -Function Test_Francois() -#pragma precomp SRP_PreCompiler - -Declare subroutine Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services -Declare subroutine Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, FTP_Services -Declare subroutine EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables, obj_RDS -Declare subroutine Error_Services, RDS_Services, Dialog_Box, Insert, Unlock, QA_Services, Validate, Development_Services -Declare subroutine Update_Index, Database_Services, Obj_WO_Mat_QA, Fmt, Yield, WinYield, Sleepery, Qa_Services, Reactor_Services -Declare subroutine Obj_Post_Log -Declare function Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Utility -Declare function Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Error_Services, RDS_Services -Declare function MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services, ErrMsg -Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, SRP_Trim, Xlate, Obj_Wo_Mat -Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8 -Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services -Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array, ICONV -Declare function Development_Services, Obj_WO_Mat_QA, SRP_Join_Arrays, NextKey, Obj_Prod_Spec, FTP_Services, SQL_Format - - -$INSERT POPUP_EQUATES -$INSERT MSG_EQUATES -$INSERT APPCOLORS -$INSERT WM_IN_EQUATES -$Insert WM_OUT_EQUATES -$INSERT WO_LOG_EQU -$INSERT WO_STEP_EQU -$INSERT WO_MAT_EQUATES -$INSERT ORDER_EQU -$INSERT RDS_EQUATES -$INSERT PROD_SPEC_EQU -$INSERT NOTIFICATION_EQU -$INSERT LSL_USERS_EQU -$INSERT SECURITY_RIGHTS_EQU -$INSERT LOGICAL -$INSERT RTI_LH_INFO_EQUATES -$INSERT WO_MAT_QA_EQUATES -$INSERT CUST_EPI_PART_EQUATES -$INSERT PRS_STAGE_EQUATES -$Insert RLIST_EQUATES -$Insert CLEAN_INSP_EQUATES -$Insert TOOL_PARMS_EQUATES -$Insert SCHEDULE_EQU -$Insert SCHED_DET_EQUATES -$Insert SCHEDULER_EQUATES -$Insert NCR_EQUATES - -EQU COL$QA_MET_PHASE_MIN TO 17 - -Equ Tab$ to \09\ -Equ CRLF$ to \0D0A\ -Equ LF$ to \0A\ -Equ Comma$ to ',' - - -Main: - Debug - QuoteKeys = '' - Flag = '' - OPEN 'DICT.RETAINED_WAFERS' TO DictVar THEN - SearchString = 'WAFER_SIZE' : @VM : '150 mm 6 in': @FM - - Btree.Extract(SearchString, 'RETAINED_WAFERS', DictVar, QuoteKeys, '', Flag) - - NumberWafers = DCount(QuoteKeys, @VM) - - IF Get_Status(errCode) THEN - Msg(@window, MsgUp) - ErrMsg(errCode) - RETURN - END - - IF QuoteKeys = '' THEN - ErrMsg('No Quotes on file for customer ':CustNo) - RETURN - END - - END ELSE - ErrMsg('Unable to open DICT.QUOTE in COMM_ANN_CONT.') - RETURN - END - -return - -Set_Property('SYSTEM', 'CURSOR', 'A') -* debug - -return - -// *************************************** -// * Create Reactor Performances Reports * -// *************************************** - -ScheduleDate = Iconv('04/25/2019', 'D') -Reactor_Services('ClearWafersExpected', ScheduleDate) -Reactor_Services('ClearWafersProcessed', ScheduleDate) -Reactor_Services('CreatePerformanceTrackers', ScheduleDate) -Reactor_Services('UpdatePerformanceTrackers', ScheduleDate) -Return - -return Date() - -GaNToolQuery = "LIST TOOL WITH TOOL_TYPE EQ 'G5' OR WITH TOOL_TYPE EQ 'G5+' OR WITH TOOL_TYPE EQ 'char' OR WITH TOOL_TYPE EQ 'GaN' OR WITH TOOL_TYPE EQ 'Transfer'" - -WOMatKey = '167194*60' -CurrStatus = Xlate('WO_MAT', WOMatKey, 'CURR_STATUS', 'X') -return CurrStatus -* Database_Services('ActivateRecord', 'RDS', RDSKey) -* WOMatRepStatus = XLATE('WO_MAT',{WO_MAT_KEY},'REP_STATUS','X') -* RunStatus = XLATE('REACT_RUN',@ID,'RUN_STATUS','X') -* -* RunStatus = OCONV(RunStatus,'[RUN_STATUS_CONV]') -* Ans = '' -* BEGIN CASE -* CASE WOMatRepStatus NE '' AND RunStatus NE '' -* Ans = WOMatRepStatus -* -* CASE WOMatRepStatus = '' AND RunStatus NE '' -* Ans = RunStatus -* -* CASE WOMatRepStatus NE '' AND RunStatus = '' -* Ans = WOMatRepStatus -* -* CASE 1 -* Ans = '' -* -* END CASE - - - - - -StartDTM = IConv(OConv(Date(), 'D') : ' ' : OConv(Time(), 'MT'), 'DT') - '0.5' -StartDays = StartDTM[1, 'F.'] -StartHours = '.' : StartDTM[-1, 'B.'] -StartHours = StartHours * 86400 -StartHours += StartDays * 24 -EndDTM = IConv(OConv(Date(), 'D') : ' ' : OConv(Time(), 'MT'), 'DT') -EndDays = EndDTM[1, 'F.'] -EndHours = '.' : EndDTM[-1, 'B.'] -EndHours = EndHours * 86400 -EndHours += EndDays * 24 - -ElapHours = ( (EndHours - StartHours) / 86400 ) * 24 - -return ElapHours - - -OverrideGroups = 'LEAD':@VM:'SUPERVISOR':@VM:'ENGINEER':@VM:'ENG_TECH' -Response = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups) -return - - -* -* LWISig = Xlate('RDS', 229935, 'LWI_CI_SIG', 'X') -* return LWISig -* -* NCRList = Database_Services('ReadDataRow', 'SYSLISTS', 'RESEND_NCR') -* NCRList = Delete(NCRList, 1, 0, 0) -* For each NCRKey in NCRList using @FM setting fPos -* NCRRec = Database_Services('ReadDataRow', 'NCR', NCRKey) -* If Error_Services('NoError') and NCRRec NE '' then -* Database_Services('WriteDataRow', 'NCR', NCRKey, NCRRec, True$, False$, True$) -* If Error_Services('HasError') then -* ErrorMsg = Error_Services('GetMessage') -* ErrMsg(ErrorMsg) -* end -* end else -* ErrorMsg = Error_Services('GetMessage') -* ErrMsg(ErrorMsg) -* end -* Next NCRKey -* -* return -* -* -* Stack = RetStack() -* return Stack -* RejQty = Obj_NCR('RejQty', 154238) -* return RejQty -* -* If @USER4 EQ 'FRANCOIS_R' then -* // RDS_LAYER / TOOL_PARMS Project -* PSN = Record -* ReactorNo = Record -* // If reactor has not yet been assigned to RDS -> Fetch scheduled reactor -* If ReactorNo EQ '' then ReactorNo = {SCHED_REACTOR} -* WorkOrder = Record -* If (PSN NE '') and (ReactorNo NE '') then -* OrigReactor = OrigRecord -* NewReactor = ReactorNo -* If OrigReactor NE NewReactor then -* // Update RDS_LAYER parameters to match new reactor -* GoSub Update_RDS_LAYER_Parms -* end -* end -* end -* Update_RDS_LAYER_Parms: -* -* LogData = '' -* LogData<1> = LoggingDTM -* LogData<2> = 'Creating/Updating RDS_LAYER record(s) for RDS: ':@ID:' PSN: ':PSN:' Reactor: ':ReactorNo -* Logging_Services('AppendLog', objLog2, LogData, @RM, @FM) -* // Update/populate RDS_LAYER record(s) using Tool_Parms_Services -* ToolParmKey = Tool_Parms_Services('GetCurrentToolParmKey', PSN, ReactorNo) -* If ToolParmKey NE '' then -* ToolParmRec = Database_Services('ReadDataRow', 'TOOL_PARMS', ToolParmKey) -* ToolParmLayers = ToolParmRec -* RDSLayerKeys = Record -* For each RDSLayerKey in RDSLayerKeys -* RDSLayerID = Field(RDSLayerKey, '*', 2) -* RDSLayerRec = Database_Services('ReadDataRow', 'RDS_LAYER', RDSLayerKey) -* Locate RDSLayerID in ToolParmLayers using @VM setting LayerPos then -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = ToolParmRec -* RDSLayerRec = Field(ToolParmKey, '*', 3) -* RDSLayerRec = ToolParmKey -* end -* // Remove logging once successfully deployed to production. -* Database_Services('WriteDataRow', 'RDS_LAYER', RDSLayerKey, RDSLayerRec, True$, False$, True$) -* LogData<2> = 'RDS_LAYER record for RDSNo: ':@ID:' Layer No: ':RDSLayerID:' successfully created/updated' -* Logging_Services('AppendLog', objLog2, LogData, @RM, @FM) -* Next RDSLayerID -* end -* -* return -* debug -* WOStep = 1 -* WOMatRec = Xlate('WO_MAT', '166962*53', '', 'X') -* LOCATE WOStep:'UNLOAD' IN WOMatRec USING @VM SETTING Pos THEN -* -* CurrSig = WOMatRec -* -* CurrSigDTM = OCONV(WOMatRec,'DT4/^HS') -* CurrSigDate = CurrSigDTM[1,' '] -* CurrSigTime = CurrSigDTM[COL2()+1,' '] -* -* CurrDTM = OCONV(WOMatRec,'DT/4^HS') -* CurrDate = CurrDTM[1,' '] -* CurrTime = CUrrDTM[COL2()+1,' '] -* end -* -* return -* -* -* -* CurrDTM = ICONV(OCONV(Date(), 'D4'):' ':OCONV('','MTS'),'DT') -* -* return -* -* Array = '' -* Array<1> = 4 -* ArraySum = Sum(Array) -* return ArraySum -* -* Set_Property('SYSTEM', 'CURSOR', 'A') -* return -* -* ROTRReason = '100% scan required due to ROTR maint.' -* ErrorMsg = ROTRReason:CRLF$:'A 100% scan must be run in order to accept ROTR' -* ErrMsg(ErrorMsg) -* return -* Dialog_Box( 'NDW_MAKEUP_WAFER_NCR', @WINDOW, 4445) -* return -* -* -* Done = False$ -* ROTRMaintReset = True$ -* ThisRDSNo = 229935 -* StopRDS = 229934 -* If ROTRMaintReset EQ True$ then If ThisRDSNo EQ StopRDS then Done = True$ -* -* return Done -* Valid = False$ -* If Not(Valid) then Valid = True$ -* return Valid -* -* PSN = Xlate('WO_LOG', 166000, 'PS_NO', 'X') -* -* TestArray = '1,2,3' -* Convert ',' to @FM in TestArray -* TestArray = Insert(TestArray, 0, 0, 0, '0') -* -* return TestArray -* RunCount = 8 -* WafersProcessed = RunCount * 25 -* NCRCount = 35 -* ReactorYield = ((WafersProcessed - NCRCount) / WafersProcessed) * 100 -* -* return ReactorYield -* -* Reactor = 20 -* ROTREnabled = Xlate('REACTOR', Reactor, 'ENABLE_ROTR', 'X') -* If ROTREnabled EQ True$ then ErrMsg('ROTR Enabled') -* return ROTREnabled -* -* BadWOMatKeys = '' -* List = Xlate('SYSLISTS', 'WO_MAT_WITH_R', '', 'X') -* List = Delete(List, 1, 0, 0) -* BadKey = '' -* For each Key in List using @FM setting fPos -* BadKey = Index(Key, '*', 1) -* If BadKey EQ 0 then -* BadWOMatKeys<-1> = Key -* end -* Next Key -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'WO_MAT_WITHOUT_CASS', BadWOMatKeys) -* return 0 -* -* -* DOSFile = '' -* RejFound = '' -* RejKey = '' -* Done = False$ -* For Key = 190001 to 210000 -* DOSFile = Xlate('SAP_COMM_LOG', Key, 'DOS_FILE', 'X') -* RejFound = Index(DOSFile, 'R', 1) -* If RejFound NE 0 then -* Done = True$ -* RejKey = Key -* end -* Until Done EQ True$ -* Next Key -* -* Return RejKey -* -* WoMatKey = '166738*43' -* WOMatRepStatus = XLATE('WO_MAT',WoMatKey,'REP_STATUS','X') -* RunStatus = XLATE('REACT_RUN','282320','RUN_STATUS','X') -* -* RunStatus = OCONV(RunStatus,'[RUN_STATUS_CONV]') -* -* BEGIN CASE -* CASE WOMatRepStatus NE '' AND RunStatus NE '' -* Ans = WOMatRepStatus -* -* CASE WOMatRepStatus = '' AND RunStatus NE '' -* Ans = RunStatus -* -* CASE WOMatRepStatus NE '' AND RunStatus = '' -* Ans = WOMatRepStatus -* -* CASE 1 -* Ans = '' -* END CASE -* -* -* Return Ans -* -* return -* -* // Development code - UAT - 11/6/18 -* // UAT paused - code needs to be vetted still -* -* // Put command -* Host = FTPServerIP -* LocalFile = DosTable -* Username = FTPUser -* Password = FTPPassword -* LocalDirectory = TransFilePathOut -* RemoteDirectory = 'ToSAP/':OutBoundDir -* RemoteFile = '' -* ScriptPath = ToSAPScriptName -* DeleteScript = False$ -* SSH = False$ -* FTP_Services('PostRequest', 'put', Host, 'MESSA005', LocalFile, '', Username, Password, LocalDirectory, RemoteDirectory, RemoteFile, ScriptPath, DeleteScript, SSH, '', 3, False$) -* -* // Get command -* Host = FTPServerIP -* LocalFile = '' -* Username = FTPUser -* Password = FTPPassword -* LocalDirectory = TransFilePathOut -* RemoteDirectory = 'ToSAP/':OutBoundDir -* RemoteFile = TransFileName:' verify.txt' -* ScriptPath = ToSAPScriptName -* DeleteScript = False$ -* SSH = False$ -* FTP_Services('PostRequest', 'get', Host, 'MESSA005', LocalFile, '', Username, Password, LocalDirectory, RemoteDirectory, RemoteFile, ScriptPath, DeleteScript, SSH, '', 3, False$) -* -* RDSRec = Database_Services('ReadDataRow', 'RDS', 288020) -* return -* -* WMOutKey = '166785*1*32' -* AllRDSNos = Xlate('WM_OUT', WMOutKey, 'RDS', 'X') -* MetNotCompList = '' -* -* For each RDSNo in AllRDSNos using @VM -* ThickAvgZ1 = Xlate('RDS', RDSNo, 'TTHICK_AVG_ALL_Z1', 'X') -* ThickAvgZ2 = Xlate('RDS', RDSNo, 'TTHICK_AVG_ALL_Z2', 'X') -* If (ThickAvgZ1 EQ '') and (ThickAvgZ2 EQ '') then -* Locate RDSNo in MetNotCompList using @FM setting fPos else -* MetNotCompList<-1> = RDSNo -* end -* end -* Next RDSNo -* -* If MetNotCompList NE '' then -* // One or more RDS metrology records are not complete -* ErrorMessage = 'Process Error':@SVM:'RDS metrology data is not complete for RDS(s):':MetNotCompList -* ErrMsg(ErrorMessage) -* return 0 -* end -* -* return -* -* -* MaintScanReq = False$ -* FailScanReq = '' -* -* ScanReq = (MaintScanReq or FailScanReq) -* -* return ScanReq -* -* Username = @Username -* FullName = Xlate('LSL_USERS', Username, 'FIRST_LAST', 'X') -* -* return FullName -* -* QA_Services('ROTRImpactReport') -* -* return 2 -* -* OIAdmins = Xlate('SEC_GROUPS', 'OI_ADMIN', 'USER', 'X') -* return OIAdmins -* -* Database_Services('WriteDataRow', 'APP_INFO', 'ROTR_DATA_ENTRY_LOCK', True$) -* return -* -* -* SchedEvents = Schedule_Services('GetScheduleEvents', date(), date()) -* WOList = '' -* For each Row in SchedEvents using @FM -* ThisWO = Field(Row<1,2>, '*', 1) -* Locate ThisWO in WOList using @VM setting vPos else -* WOList<1,-1> = ThisWO -* end -* Next Row -* -* Table = 'WO_MAT_QA' -* Open 'DICT.':Table to @DICT then -* Query = 'WO_NO':@VM:WOList:@FM -* KeyList = '' -* Option = '' -* Flag = '' -* Btree.Extract(Query, Table, @DICT, KeyList, Option, Flag) -* end -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'HGCV_UAT', KeyList, True$, False$, True$) -* return KeyList -* RDSNo = 273752 -* Database_Services('ActivateRecord', 'RDS', RDSNo) -* Parms = {WO_MAT_KEY}:@RM -* Parms := '':@RM -* Parms := FIELD(@RECORD<256>,'*',2):@RM ;* WOStep -* Parms := 'UNLOAD':@RM -* Parms := WO_MAT_QA_RECIPE$ -* -* QAMetData = obj_WO_Mat_QA( 'GetQAMet' , Parms ) -* -* return QAMetData -* -* PSNo = 3524 -* PSRec = XLATE('PROD_SPEC',PSNo,'','X') -* -* QAMetData = obj_Prod_Spec('GetQAMet',PSNo:@RM:PSRec) -* QAMetData = Xlate('WO_MAT_QA', '166620*65', '', 'X') -* QAMetData = Insert(QAMetData, 5, 2, 0, '') -* QAMetData = Insert(QAMetData, 5, 2, 0, 0) -* QAMetData = Insert(QAMetData, 5, 2, 0, 'LR8IN.SET') -* QAMetData2 = obj_Prod_Spec('GetQAMet',PSNo:@RM:@RM:0) -* -* return QAMetData -* -* Debug -* -! Update all WO_MAT_QA records currently in production. -* -* HgCVList = Database_Services('ReadDataRow', 'SYSLISTS', 'HGCV_UAT') -* HgCVList = Delete(HgCVList, 1, 0, 0) -* -* For each WoMatQAKey in HgCVList using @FM -* Database_Services('ActivateRecord', 'WO_MAT_QA', WoMatQAKey) -* Profiles = {PROFILE} -* -* Locate 'THICK_ONLY' in Profiles using @VM setting vPos then -* MetRecipes = {RECIPE} -* ThickOnlyRecipe = MetRecipes<0, vPos> -* ThickOnlyRecipe = Trim(ThickOnlyRecipe) -* RecipeFound = True$ -* NewProdRecipe = '' -* Begin Case -* Case ThickOnlyRecipe EQ 'thin6inch' -* NewProdRecipe = 'PROD_thin6' -* Case ThickOnlyRecipe EQ '8inch' -* NewProdRecipe = 'PROD_8inch' -* Case ThickOnlyRecipe EQ 'thin8inch' -* NewProdRecipe = 'PROD_thin8' -* Case ThickOnlyRecipe EQ 'IRC6in_6mm' -* NewProdRecipe = 'PROD_IRC6' -* Case ThickOnlyRecipe EQ 'Wacker' -* NewProdRecipe = 'PROD_Wack' -* Case ThickOnlyRecipe EQ '8IN_INF' -* NewProdRecipe = 'PROD_INF' -* Case Otherwise$ -* // Unexpected THICK_ONLY recipe name -> proceed to next PSN -* RecipeFound = False$ -* End Case -* -* If RecipeFound then -* MetRecipes<0, vPos> = NewProdRecipe -* {RECIPE} = MetRecipes -* Database_Services('WriteDataRow', 'WO_MAT_QA', WoMatQAKey, @Record, True$, False$, True$) -* end -* end -* -* -* Next WoMatQAKey -* -* return -* -* -* RDSKeyID = 266731 -* ScanRecipe = 'EPISIL' -* SODWaferArray = QA_Services('GetSODPerWafer', RDSKeyID, ScanRecipe) -* return SODWaferArray -* -* -* TableHandle = Database_Services('GetTableHandle', 'WO_MAT_QA') -* -* return -* -* ScanRecipe = '8IN_THIN ROTR' -* ExclList = Database_Services('ReadDataRow', 'APP_INFO', 'SURFSCAN_EXCLUSION_LIST') -* Locate ScanRecipe in ExclList using @FM setting fPos else -* ErrMsg('Recipe not found in SurfScan spec list') -* end -* Return -* -* Leads = Xlate('SEC_GROUPS', 'LEAD', 'USER', 'X') -* Sups = Xlate('SEC_GROUPS', 'SUPERVISOR', 'USER', 'X') -* Recipients = SRP_Join_Arrays(Leads, Sups, @VM, 'OR') -* Recipients = XLATE('NOTIFICATION','WO_ENTRY',2,'X') -* return Recipients -* -* -* -* ROTRFailLimit = 2 -* CleanReq = False$ -* PSNo = 4617 -* PRSStages = Xlate('PROD_SPEC', PSNo, 'PRS_STAGE_KEY', 'X') -* If Index(PRSStages, 'POST', 1) then -* CleanReq = Xlate('PRS_STAGE', PSNo:'*POST', 'CLEAN_SIG_REQ', 'X') -* end -* -* return CleanReq -* -* ROTRStatus = Xlate('DEVELOPMENT', 'ROTR', 'STATUS', 'X') -* TestReact = False$ -* If Not(ROTRStatus) then -* TestReactList = Xlate('DEVELOPMENT', 'ROTR', 'F4', 'X') -* Reactor = 22 -* TestReact = Index(TestReactList, Reactor, 1) -* end -* -* return TestReact -* -* ReactorList = Database_Services('ReadDataRow', 'SYSLISTS', 'REACTOR_LIST') -* ReactorList = Delete(ReactorList, 1, 0, 0) -* -* For each ReactorID in ReactorList using @FM setting fPos -* Database_Services('ActivateRecord', 'REACTOR', ReactorID) -* {ROTR_STATUS} = 'P' -* {ROTR_STATUS_REASON} = '' -* Database_Services('WriteDataRow', 'REACTOR', ReactorID, @Record, True$, False$, True$) -* Next ReactorID -* return -* -* -* SchedKey = '20*17904*163386' -* Sched = Database_Services('ReadDataRow', 'SCHEDULER', SchedKey) -* Key1 = Field(SchedKey, '*', 1) -* Key2 = Field(SchedKey, '*', 2) -* Key3 = Field(SchedKey, '*', 3) -* MaintStatus = Qa_Services('GetMaintenanceScanStatus', 270181) -* FailScanStatus = Qa_Services('GetFailureScanStatus', 270181) -* SODPerWafer = Qa_Services('GetSODPerWafer2.0', 270245, 'EPISIL') -* -* Return 1 -* -* -* MarksList = Database_Services('ReadDataRow', 'SYSLISTS', 'MARK_REPORT') -* -* GoodRecipe = '8IN_THIN ROTR' -* CleanedList = Database_Services('ReadDataRow', 'SYSLISTS', 'CLEAN_INSP_WITH_OLD_RECIPE') -* CleanedList = Delete(CleanedList, 1, 0, 0) -* RDSNotCleaned = '' -* -* For each RDS in MarksList using @FM setting fPos -* CIKey = Xlate('RDS', RDS, 'LWI_CI_NO', 'X') -* Locate CIKey in CleanedList using @FM setting cPos else -* RDSNotCleaned<-1> = RDS -* end -* Next RDS -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'RDS_NOT_CLEANED', RDSNotCleaned) -* -* return 1 -* -* -* GoodRecipe = '8IN_THIN ROTR' -* DirtyList = Database_Services('ReadDataRow', 'SYSLISTS', 'CLEAN_INSP_WITH_OLD_RECIPE') -* DirtyList = Delete(DirtyList, 1, 0, 0) -* -* For each CIKey in DirtyList using @FM -* NeedToWrite = False$ -* Database_Services('ActivateRecord', 'CLEAN_INSP', CIKey) -* SpecRecipes = {SPEC_SURFSCAN_RECIPE} -* For each SpecRecipe in SpecRecipes using @VM setting SpecRecipeIndex -* If SpecRecipe NE GoodRecipe then -* SpecRecipes<1, SpecRecipeIndex> = GoodRecipe -* {SPEC_SURFSCAN_RECIPE} = SpecRecipes -* NeedToWrite = True$ -* end -* Next SpecRecipe -* ScanRecipes = {SCAN_RECIPE} -* For each ScanRecipe in ScanRecipes using @VM setting ScanRecipeIndex -* If ScanRecipe NE GoodRecipe then -* ScanRecipes<1, ScanRecipeIndex> = GoodRecipe -* {SCAN_RECIPE} = ScanRecipes -* NeedToWrite = True$ -* end -* Next ScanRecipe -* If NeedToWrite EQ True$ then -* Database_Services('WriteDataRow', 'CLEAN_INSP', CIKey, @Record, True$, False$, True$) -* If Error_Services('HasError') then -* ErrMsg('Error updating CLEAN_INSP record: ':CIKey) -* end -* end -* Next CIKey -* -* -* return 1 -* -* TencorRecipe = 'EPISIL' -* RDSKey = 266731 -* SODPerWafer = QA_Services('GetSODPerWafer2.0', RDSKey, TencorRecipe) -* return SODPerWafer -* debug -* NumUSLFail = QA_Services('GetNumUSLFails2.0', 266723) -* return NumUSLFail -* -* NumRecipes = 0 -* CIRecord = '' -* SODWaferArray = QA_Services('GetSODPerWafer', 267058) -* return SODWaferArray -* WaferNos = SODWaferArray<1> -* SODVals = SODWaferArray<2> -* For each Wafer in WaferNos using @VM -* If Wafer NE '' then CIRecord<1, NumRecipes, Wafer> = SODVals<1, Wafer> -* Next Wafer -* return CIRecord -* -* NCRStatus = QA_Services('GetNCRStatus', 267058) -* return NCRStatus -* -* NCRFails = '' -* RDSKeys = Xlate('WO_LOG', 166523, 'RDS_KEYS', 'X') -* For each RDS in RDSKeys using @VM -* NCRStatus = QA_Services('GetNCRStatus', RDS) -* If NCRStatus EQ False$ then -* NCRFails<-1> = RDS -* end -* Next RDS -* -* return NCRFails -! Implement this into GetROTRStatus2.0 -* SelReactor = 27 -* StartDate = Date() - 30 -* WorkOrderList = '' -* PSNList = '' -* SchedDetKeys = Schedule_Services('GetScheduleDetailKeys', StartDate, '', SelReactor, '', '') -* For each SchedDetKey in SchedDetKeys -* SchedDet = Schedule_Services('GetScheduleDetail', SchedDetKey) -* ThisWorkOrder = SchedDet -* Locate ThisWorkOrder in WorkOrderList using @FM setting fPos else -* WorkOrderList = Insert(WorkOrderList, 0, 0, 0, ThisWorkOrder) -* end -* Next SchedDetKey -* -* return SchedDetKeys -* UCL = Qa_Services('PostUCLRequest', 269112) -* -* UCL = Qa_Services('GetUCL', 269012) -* UCL = Qa_Services('GetUCL', 269112) -* -* ROTRResult = QA_Services('GetROTRStatus2.0', 269112) -* -* NumFail = QA_Services('GetNumROTRFailures', 269112) -* TestReactList = 21:@FM:27 -* Reactor = 22 -* TestReact = Index(TestReactList, Reactor, 1) -* -* return NumFail -* -* Response = 'P' -* Stat = Response<1> -* Mesg = Response<2> -* USLFail = Stat EQ 'P' | -* or Stat EQ 'C' -* return -* -* LogPath = 'C:\Users\StieberD\Desktop' -* LogDate = Oconv(Date(), 'D4/') -* LogTime = Oconv(Time(), 'MTS') -* LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Testing.csv' -* Headers = 'Logging DTM' : @FM : 'Notes' -* objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$) -* LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM -* LogData = 'Testing' -* EmailAddr = 'dstieber@srpcs.com' -* Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$, EmailAddr, LogData) -* -* return -* -* MsgTxt = 'An error occured due to multiple users attempting to create an RDS simultaneously. ' | -* : @SVM : 'Would you like to retry?' -* Response = Msg(@Window, '', 'RETRY', '', MsgTxt) -* return Response -* -* NextWO = NextKey("DUMMY") -* return -* -* ReactorNo = Xlate('RDS', 268554, 'SCHED_REACTOR', 'X') -* RDSKeys = Xlate('WO_STEP', '166522*1', 'RDS_KEY', 'X') -* ROTRResult = QA_Services('GetNumROTRFailures', 269112) -* -* return ROTRResult -* -* CIReactor = Xlate('CLEAN_INSP', 2208606, 'REACT_NO', 'X') -* return -* Leads = Xlate('SEC_GROUPS', 'LEAD', 'USER', 'X') -* Sups = Xlate('SEC_GROUPS', 'SUPERVISOR', 'USER', 'X') -* Recipients = SRP_Join_Arrays(Leads, Sups, @VM, 'OR') -* return -* Sleepery(10000) -* Errmsg('Sleepery returned.') -* WinYield() -* Errmsg('WinYield returned.') -* Yield();Yield();Yield();Yield();Yield();Yield();Yield();Yield() -* Errmsg('Yields returned.') -* return -* -* -* MsgTxt = 'An error occured while creating an RDS. Would you like to retry?' -* Response = Msg(@Window, '', 'RETRY', '', MsgTxt) -* return Response -* -* Proc = 'TEST_DANIEL2' -* hSysProcs = Database_Services('GetTableHandle', 'SYSPROCS') -* Locked = 0 -* Tries = 0 -* LOOP -* Lock hSysProcs, Proc then -* Locked = 1 -* Errmsg('Got the lock!') -* END ELSE -* Yield() -* Tries += 1 -* END -* UNTIL Locked OR Tries = 10 REPEAT -* IF Tries = 10 and Locked EQ False$ THEN -* Mesg = 'Unable to lock procedure ':Proc -* Errmsg(Mesg) -* RETURN 0 -* END else -* Unlock hSysProcs, Proc else NULL -* end -* -* return -* -* WOMatKey = '166534*8' -* CassetteQty = XLATE('WO_MAT', WOMatKey, 'WAFER_QTY', 'X') -* CurrWfrCnt = XLATE('WO_MAT',WOMatKey,'CURR_WFR_CNT','X') -* return -* EpiDiluent = '3.00' -* EpiDiluent = IConv(EpiDiluent, 'MD2') -* CurrentTime = OConv(Time(), 'MT') -* CurrentDate = OConv(Date(), 'D') -* CurrentDTM = CurrentDate:' ':CurrentTime -* InternalTime = IConv(CurrentTime, 'MT') -* InternalDate = IConv(CurrentDate, 'D') -* CurrentDTM = IConv(CurrentDTM, 'DT') -* CurrentDTM = OConv(CurrentDTM, 'DT/^3HS') -* -* return -* -* NonEPPWO = '165874*1' -* TotRej = Xlate('WO_STEP', NonEPPWO, 'TOT_REJ_TOTAL', 'X') -* -* return -* -* ScrapQty = 0 -* TWQty = 0 -* WOLog = '166389' -* WoMatKeys = Xlate('WO_LOG', WOLog, 'WO_MAT_KEY', 'X') -* For each WoMatKey in WoMatKeys using @VM -* Database_Services('ActivateRecord', 'WO_MAT', WoMatKey) -* SAPData = obj_WO_Mat('GetGRProps',@ID:@RM:@RECORD) -* ScrapQty += SAPData<2> -* TWQty += SAPData<3> -* Next WoMatKey -* -* debug -* -* return -* -* CurrentTime = OConv(Time(), 'MT') -* CurrentDate = OConv(Date(), 'D') -* CurrentTime = Fmt(CurrentTime, "R(0)#5") -* CurrentDTM = CurrentDate:' ':CurrentTime -* CurrentDTM = IConv(CurrentDTM, 'DT') -* -* return -* -* SchedReactor = Xlate('RDS', 267465, 'SCHED_REACTOR', 'X') -* IsNumeric = Num(SchedReactor) -* return -* ROTRStatus = Qa_Services('GetROTRStatus', 258958) -* PRSStages = Xlate('PROD_SPEC', 4059, 'PRS_STAGE_KEY', 'X') -* CleanReq = Index(PRSStages, 'POST', 1) -* Wafer1SOD = Xlate('CLEAN_INSP', 2199645, 'SOD_WAFER_1', 'X') -* -* Return -* -* RDSNo = 261161 -* TencorRecipe = '8IN_IFX_ROTR' -* If RDSNo NE '' | -* and TencorRecipe EQ '' then -* Cool = True$ -* end else -* Cool = False$ -* end -* SpecUCL = Qa_Services('PostUCLRequest', RDSNo, TencorRecipe) -* return -* -* Database_Services('ActivateRecord', 'RDS', RDSNo) -* ProdSpecID = {PROD_SPEC_NO} -* Exists = RowExists('RDS', 1111111) -* return -* WriteRights = Security_Check( 'Spec', WRITE$ ) -* -* return -* -* StartDate = Date() -* SchedDetails = Schedule_Services('GetScheduleEventSummary',48, 166443, StartDate, '', True$) -* SchedStartDt = SchedDetails -* List = '' -* For i = 1 to 10 -* List = i -* Next i -* NumItems = Dcount(List, @FM) -* SecToLastItem = List -* List = Insert(List, NumItems, 0, 0, 11) -* // Note to self: GetTableHandle is returning an "expired" copy of the table handle, which does not include -* // the MFS, which was recently attached to the table. Need to fix. -* MFSList = Database_Services('GetTableHandle', 'WO_MAT_QA') -* -* Return -* -* SAPHoldRow = '' -* SAPHoldRow<1> = 'WO_MAT_HOLD' -* SAPHoldRow<2> = '164811*1' -* SAPHoldRow<3> = 1 -* SAPHoldRow<4> = 1 -* -* Database_Services('WriteDataRow', 'SAP_HOLD', '', SAPHoldRow) -* If Not(Error_Services('NoError')) then -* ErrorMsg = Error_Services('GetMessage') -* end -* -* return 7 -* -* ROTRStatus = QA_Services('GetROTRStatus', 262546) -* return 6 -* -* -* ProjectStatus = Development_Services('GetProjectStatus', 'HGCV') -* DevWorkOrder = Xlate('DEVELOPMENT', 'HGCV', 'F4', 'X') -* -* return 5 -* -* PSNo = 4282 -* PSRec = Database_Services('ReadDataRow', 'PROD_SPEC', PSNo) -* QAMetData = obj_Prod_Spec('GetQAMet',PSNo:@RM:@RM:1) -* QAMetData = obj_Prod_Spec('GetQAMet',PSNo:@RM:PSRec) -* WOMatKey = '166425*1' -* WOMatQARec = '' -* AllQAMetKeysStruct = obj_WO_Mat_QA('GetQAMetKeys',WOMatKey:@RM:WOMatQARec) -* return 4 -* -* -* Database_Services('ActivateRecord', 'RDS', 229935) -* RDSLayerKeys = @Record -* For each RDSLayerKey in RDSLayerKeys -* RDSLayerID = Field(RDSLayerKey, '*', 2) -* Next RDSLayerKey -* -* return 3 -* -* ScrapQty = 0 -* TWQty = 0 -* WOLog = 165910 -* WoMatKeys = Xlate('wo_log', WOLog, 'WO_MAT_KEY', 'X') -* For each WoMatKey in WoMatKeys using @VM -* Database_Services('ActivateRecord', 'WO_MAT', WoMatKey) -* SAPData = obj_WO_Mat('GetGRProps',@ID:@RM:@RECORD) -* ScrapQty += SAPData<2> -* TWQty += SAPData<3> -* Next WoMatKey -* -* debug -* Return 2 -* -* -* -* -* RDSNo = 254008 -* Database_Services('ActivateRecord', 'RDS', RDSNo) -* HgCVTest = {HGCV_TEST} -* -* MetPropFlag = Obj_RDS('MetPropFlag', @ID:@RM:@RECORD:@RM:'CRES') -* -* -* -* Return 1 -* -* -* -* -* -* ExternalDate = OConv(Date(), 'D') -* Swap ' ' with '_' in ExternalDate -* ExternalTime = OConv(Time(), 'MTHS') -* Swap ':' with '_' in ExternalTime -* 3839*41*18548.35457 -* 18547.34848 -* return 5 -* ReactorNo = 28 -* -* CurrPSNList = Database_Services('ReadDataRow', 'SYSLISTS', 'CURRPRODSPECLIST') -* CurrPSNList = Delete(CurrPSNList, 1, 0, 0) -* For each PSN in CurrPSNList -* Query = 'SELECT RDS WITH PROD_SPEC_ID EQ ':PSN:' AND WITH REACTOR EQ ':ReactorNo:' BY-DSND DATE_IN' -* GoSub ClearCursors -* Set_Status(0) -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* If Get_Status(ErrorCode) then -* ErrorMsg = 'Error calling RList(): error code ':ErrorCode -* Error_Services('Add', ErrorMsg) -* return -* end -* NumResultRows = @RecCount -* If NumResultRows LT 1 then -* // No RDS records found that match this criteria. Widen the query to search the most recent -* // RDS that matches the Recipe ID and PSN, but to any reactor. -* Query = 'SELECT RDS WITH PROD_SPEC_ID EQ ':PSN:' BY-DSND DATE_IN' -* GoSub ClearCursors -* Set_Status(0) -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* If Get_Status(ErrorCode) then -* ErrorMsg = 'Error calling RList(): error code ':ErrorCode -* Error_Services('Add', ErrorMsg) -* return -* end -* end -* Readnext RDSKey then -* DateIn = Xlate('RDS', RDSKey, 'DATE_IN', 'X') -* TPLogKey = PSN:'*':ReactorNo -* TPLogRec = '' -* TPLogRec<1> = RDSKey -* TPLogRec<2> = DateIn -* Database_Services('WriteDataRow', 'TOOL_PARMS_LOG', TPLogKey, TPLogRec) -* end -* GoSub ClearCursors -* Next PSN -* -* return 3 -* -* Database_Services('ActivateRecord', 'RDS_LAYER', '261234*L1') -* RDSNo = Field(@ID, '*', 1) -* ReactorNo = Xlate('RDS', RDSNo, 'REACTOR', 'X') -* PSN = Xlate('RDS', RDSNo, 'PROD_SPEC_ID', 'X') -*NewToolParmsKey = Tool_Parms_Services('CreateToolParmsRec', PSN, ReactorNo, RDSNo) -* -* Return 2 -* -* Qa_Services('SignFQAStage', 229935, @USER4) -* If Error_Services('NoError') else -* ErrMsg = Error_Services('GetMessage') -* end -* return 1 -* ToolLogList = Database_Services('ReadDataRow', 'SYSLISTS', 'TOOL_LOG_DTM') -* // Chomp info line -* ToolLogList = Delete(ToolLogList, 1, 0, 0) -* -* For each ToolLogID in ToolLogList using @FM -* ToolLogRec = Database_Services('ReadDataRow', 'TOOL_LOG', ToolLogID) -* NeedToWrite = False$ -* If ToolLogRec<4> EQ '' then -* ToolLogRec<4> = '18540.55196' -* NeedToWrite = True$ -* end -* If ToolLogRec<5> EQ '' then -* ToolLogRec<5> = 'FRANCOIS_R' -* NeedToWrite = True$ -* end -* If NeedToWrite then -* Database_Services('WriteDataRow', 'TOOL_LOG', ToolLogID, ToolLogRec, True$, False$, True$) -* end -* -* Next ToolLogID -* -* return 12 -* @ID = 229935 -* Open 'DICT.RDS' to @DICT then -* @DICT = Database_Services('GetTableHandle', 'DICT.RDS') -* @DICT = Database_Services('GetTableHandle', 'DICT.RDS') -* @RECORD = Database_Services('ReadDataRow', 'RDS', @ID) -* Database_Services('ActivateRecord', 'RDS', 229935) -* WorkOrder = {WO} -* end -* -* return 11 -* -* -* RDSList = Xlate('TOOL_PARMS', '2685*59*18541.55166', 'RDS_LIST', 'X') -* return 10 -* -* -* -* PSN = 4693 -* ReactorNo = 31 -* Query = 'SELECT RDS WITH PROD_SPEC_ID EQ ':PSN:' AND WITH REACTOR EQ ':ReactorNo:' BY-DSND DATE_IN' -* GoSub ClearCursors -* Set_Status(0) -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* If Get_Status(ErrorCode) then -* ErrorMsg = 'Error calling RList(): error code ':ErrorCode -* Error_Services('Add', ErrorMsg) -* return -* end -* Done = False$ -* Readnext Row else Done = True$ -* Return 9 -* -* -* PSN = 4693 -* ReactorNo = 31 -* Query = 'SELECT RDS WITH PROD_SPEC_ID EQ ':PSN:' AND WITH REACTOR EQ ':ReactorNo -* GoSub ClearCursors -* Set_Status(0) -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* If Get_Status(ErrorCode) then -* ErrorMsg = 'Error calling RList(): error code ':ErrorCode -* Error_Services('Add', ErrorMsg) -* return -* end -* TempArray = '' -* Done = False$ -* Loop -* Readnext Row else Done = True$ -* Until Done -* DateIn = Xlate('RDS', Row, 'DATE_IN', 'X') -* TempArray<-1> = Row:@VM:DateIn -* Repeat -* -* SortedArray = SRP_Sort_Array(TempArray, 'DR2', 1) -* -* Return 10 -* -* -* -* ScheduleDetKeys = Schedule_Services('GetScheduleDetailKeys', 18520, '', 41, '', '') -* For each SchedDetKey in ScheduleDetKeys -* ScheduleDet = Schedule_Services('GetScheduleDetail', SchedDetKey) -* Next SchedDetKey -* NewTPKey = Tool_Parms_Services('CreateToolParmsRec', 4693, 31, 259013) -* -* Return 7 -* -* -* Done = False$ -* Query = 'SELECT TOOL_PARMS' -* GoSub ClearCursors -* Set_Status(0) -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* If Get_Status(ErrorCode) then -* ErrorMsg = 'Error calling RList(): error code ':ErrorCode -* Error_Services('Add', ErrorMsg) -* return -* end else -* Loop -* Until Done EQ True$ -* -* Readnext ToolParmID then -* Database_Services('DeleteDataRow', 'TOOL_PARMS', ToolParmID) -* -* end else -* Done = True$ -* end -* Repeat -* -* end -* -* Return 6 -* -* ToolIDs = obj_Tool('KeysByType') -* -* For Each ToolID in ToolIDs using @VM -* -* Query = 'SELECT TOOL_LOG WITH TOOL_ID EQ "':ToolID:'" BY-DSND START_DTM' -* GoSub ClearCursors -* Set_Status(0) -* RList(Query, TARGET_ACTIVELIST$, '', '', '') -* If Get_Status(ErrorCode) then -* ErrorMsg = 'Error calling RList(): error code ':ErrorCode -* Error_Services('Add', ErrorMsg) -* return -* end else -* // Query is good -> Continue -* -* CurrDTM = Date():'.':Time() -* -* ToolLogIndex = 1 -* Loop -* Until ToolLogIndex GT 2 -* Readnext ToolLogID then -* // We want the second most recent tool log record. -* If ToolLogIndex EQ 2 then -* *Database_Services('DeleteDataRow', 'TOOL_LOG', ToolLogID) -* ToolLogRec = Database_Services('ReadDataRow', 'TOOL_LOG', ToolLogID) -* If ToolLogRec<4> EQ '' then -* ToolLogRec<4> = '18540.55196' -* ToolLogRec<5> = 'FRANCOIS_R' -* Database_Services('WriteDataRow', 'TOOL_LOG', ToolLogID, ToolLogRec) -* end -* *NewToolLogKey = ToolID:'*':CurrDTM -* -* end -* ToolLogIndex += 1 -* end -* Repeat -* end -* GoSub ClearCursors -* -* Next ToolID -* -* Return 2 -* -* ClearCursors: -* For counter = 0 to 8 -* ClearSelect counter -* Next counter -* return -* -* WOMatQAKey = '166351*27' -* Sequence = Xlate('PROD_SPEC', 4148, 'QA_MET_SEQUENCE', 'X') -* return 1 -* -* Query = 'SELECT TOOL_PARMS' -* RList(Query, TARGET_SAVELIST$, 'TOOL_PARMS_LIST', 'All TOOL_PARMS Records', False$) -* TPList = Database_Services('ReadDataRow', 'SYSLISTS', 'TOOL_PARMS_LIST') -* // Remove field containing list description -* TPList = Delete(TPList, 1, 0, 0) -* For each TPKey in TPList -* Database_Services('DeleteDataRow', 'TOOL_PARMS', TPKey) -* Next TPKey -* -* Return 0 -* -* -* -* AppointmentList = Schedule_Services('GetScheduleEvents', 18520, 18537) -* ScheduleData = Schedule_Services('GetScheduleEventSummary', '', 166328, 18537, '', True$) -* Return 3 -* -* // Script to update UNLOAD PSNs with the new PROD naming convention introduced in the HgCV Project -* debug -* UnloadPSNList = Database_Services('ReadDataRow', 'SYSLISTS', 'PROD_PSNS_UNLOAD') -* // Chomp info line -* UnloadPSNList = Delete(UnloadPSNList, 1, 0, 0) -* -* For each PSN in UnloadPSNlist using @FM -* -* PRSStageKey = PSN:'*UNLOAD' -* PRSStageRec = Database_Services('ReadDataRow', 'PRS_STAGE', PRSStageKey) -* MetTests = PRSStageRec -* Locate 'THICK_ONLY' in MetTests using @VM setting vPos then -* MetRecipes = PRSStageRec -* ThickOnlyRecipe = MetRecipes<0, vPos> -* ThickOnlyRecipe = Trim(ThickOnlyRecipe) -* RecipeFound = True$ -* NewProdRecipe = '' -* Begin Case -* Case ThickOnlyRecipe EQ 'thin6inch' -* NewProdRecipe = 'PROD_thin6' -* Case ThickOnlyRecipe EQ '8inch' -* NewProdRecipe = 'PROD_8inch' -* Case ThickOnlyRecipe EQ 'thin8inch' -* NewProdRecipe = 'PROD_thin8' -* Case ThickOnlyRecipe EQ 'IRC6in_6mm' -* NewProdRecipe = 'PROD_IRC6' -* Case ThickOnlyRecipe EQ 'Wacker' -* NewProdRecipe = 'PROD_Wack' -* Case ThickOnlyRecipe EQ '8IN_INF' -* NewProdRecipe = 'PROD_INF' -* Case Otherwise$ -* // Unexpected THICK_ONLY recipe name -> proceed to next PSN -* RecipeFound = False$ -* End Case -* -* If RecipeFound then -* MetRecipes<0, vPos> = NewProdRecipe -* PRSStageRec = MetRecipes -* Database_Services('WriteDataRow', 'PRS_STAGE', PRSStageKey, PRSStageRec) -* end -* -* end else -* // No THICK_ONLY metrology test -> proceed to next PSN -* NULL -* end -* -* -* Next PSN -* -* Return 4 -* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -* -* -* // Script to rollback UNLOAD PSNs with the new PROD naming convention introduced in the HgCV Project -* -* UnloadPSNList = Database_Services('ReadDataRow', 'SYSLISTS', 'PROD_PSNS_UNLOAD') -* // Chomp info line -* UnloadPSNList = Delete(UnloadPSNList, 1, 0, 0) -* -* For each PSN in UnloadPSNlist using @FM -* -* PRSStageKey = PSN:'*UNLOAD' -* PRSStageRec = Database_Services('ReadDataRow', 'PRS_STAGE', PRSStageKey) -* MetTests = PRSStageRec -* Locate 'THICK_ONLY' in MetTests using @VM setting vPos then -* MetRecipes = PRSStageRec -* ThickOnlyRecipe = MetRecipes<0, vPos> -* ThickOnlyRecipe = Trim(ThickOnlyRecipe) -* RecipeFound = True$ -* NewProdRecipe = '' -* Begin Case -* Case ThickOnlyRecipe EQ 'PROD_thin6' -* NewProdRecipe = 'thin6inch' -* Case ThickOnlyRecipe EQ 'PROD_8inch' -* NewProdRecipe = '8inch' -* Case ThickOnlyRecipe EQ 'PROD_thin8' -* NewProdRecipe = 'thin8inch' -* Case ThickOnlyRecipe EQ 'PROD_IRC6' -* NewProdRecipe = 'IRC6in_6mm' -* Case ThickOnlyRecipe EQ 'PROD_Wack' -* NewProdRecipe = 'Wacker' -* Case ThickOnlyRecipe EQ 'PROD_INF' -* NewProdRecipe = '8IN_INF' -* Case Otherwise$ -* // Unexpected THICK_ONLY recipe name -> proceed to next PSN -* RecipeFound = False$ -* End Case -* -* If RecipeFound then -* MetRecipes<0, vPos> = NewProdRecipe -* PRSStageRec = MetRecipes -* Database_Services('WriteDataRow', 'PRS_STAGE', PRSStageKey, PRSStageRec) -* end -* -* end else -* // No THICK_ONLY metrology test -> proceed to next PSN -* NULL -* end -* -* -* Next PSN -* -* Return 3 -* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -* -* -* RDSNo = '239935' -* EpiPartNo = Xlate('RDS', RDSNo, 'EPI_PART_NO', 'X') -* WaferSize = Xlate('EPI_PART', EpiPartNo, 'SUB_WAFER_SIZE', 'X') -* WaferSizeInch = Field(WaferSize, ' ', 3, 1) -* -* Return 1 -* -* -* // Script to search for out of spec RDS' that slipped through the cracks. -* -* RDSList = Database_Services('ReadDataRow', 'SYSLISTS', 'RDS_SINCE_061418') -* // Chomp the info line -* RDSList = Delete(RDSList, 1, 0, 0) -* DirtyRDSList = '' -* -* For each RDSNo in RDSList using @FM -* -* UnloadCIKey = Xlate('RDS', RDSNo, 'LWI_CI_NO', 'X') -* CleanInspRec = Database_Services('ReadDataRow', 'CLEAN_INSP', UnloadCIKey) -* CleanSigs = CleanInspRec -* ScanRecipes = CleanInspRec -* ScanSODMaxVals = CleanInspRec -* SpecRecipes = CleanInspRec -* SpecSODMaxVals = CleanInspRec -* OverrideSig = CleanInspRec -* ScanSigs = CleanInspRec -* ROTRAction = CleanInspRec -* // We need to check the most recent scan data associated with each specification recipe. -* NumScanRecipes = DCount(ScanRecipes, @VM) -* For Each SpecRecipeName in SpecRecipes using @VM setting SpecRecipeIndex -* // Look for the last scan entry related to the current spec recipe. -* RecipeFound = False$ -* For ScanRecipeIndex = NumScanRecipes To 1 Step -1 -* ScanRecipeName = ScanRecipes<0, ScanRecipeIndex> -* RecipeFound = (ScanRecipeName EQ SpecRecipeName) -* Until RecipeFound -* Next ScanRecipeIndex -* // If a scan was found, then analyze the scan data for spec requirements. If not found, this -* // automatically fails. -* If RecipeFound EQ True$ then -* ThisSpecSODMax = SpecSODMaxVals<0, SpecRecipeIndex> -* ThisScanSODMax = ScanSODMaxVals<0, ScanRecipeIndex> -* ThisScanSig = ScanSigs<0, ScanRecipeIndex> -* HasMUWfrs = False$ -* NumMUWfrs = 0 -* IsEPP = Rds_Services('IsEpiPro', RDSNo) -* If IsEPP then -* WMOutKey = Xlate('RDS', RDSNo, 'WM_OUT_KEY', 'X') -* MUWfrIDs = Xlate('WM_OUT', WMOutKey, 'UMW_CASS_ID', 'X') -* end else -* WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X') -* MUWfrIDs = Xlate('WO_MAT', WOMatKey, 'SLOT_REP_WAFER_ID', 'X') -* end -* NumMUWfrs = DCount(MUWfrIDs, @VM) -* If NumMUWfrs GT 0 then HasMUWfrs = True$ -* // Todo: Add check to see if cleaning was done. If so, exclude from the dirty list. -* If (ThisScanSODMax GT ThisSpecSODMax) and (OverrideSig EQ '') and (ThisScanSig NE '') and (ROTRAction EQ 'P') and Not(HasMUWfrs) and (CleanSigs EQ '') then -* // Dirty RDS -> Add to DirtyList -* DirtyRDSList<-1> = RDSNo -* end -* end -* Next SpecRecipeName -* -* Next RDSNo -* -* Database_Services('WriteDataRow', 'SYSLISTS', 'DIRTY_RDS_SINCE_061418', DirtyRDSList) -* -* Return 1 -* -* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -* -* WOMatKey = '166129*71' -* WMOKey ='166129*1*71' -* WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -* WMORec = Database_Services('ReadDataRow', 'WM_OUT', WMOKey) -* -* CurrStatus = Obj_Wm_Out('CurrStatus', WMOKey:@RM:WMORec:@RM:WOMatRec) -* -* Return 0 -* -* ShipNo = Xlate('WO_LOG', '166270', 'SHIP_NO', 'X') -* -* WMOKey = '166129*1*2' -* WMOKeys = '166129*1*2':@VM:'166129*1*3' -* ShipNo = Xlate('WM_OUT', WMOKey, '', 'X') -* Return 1 -* -* RDSKey = 255871 -* SODWaferArray = '' -* SODWaferArray = Qa_Services('GetSODPerWafer', RDSKey) -* -* WaferNos = SODWaferArray<1> -* For each WaferNo in WaferNos using @VM -* If WaferNo NE '' then -* WaferPDF = '' -* WaferPDF = Qa_Services('PostWaferImageRequest', @USER4, RDSKey, WaferNo) -* end -* Next WaferNo -* -* Return 1 -* -* CIKey = Xlate('RDS', 229935, 'LWI_CI_NO', 'X') -* Set_Status(0) -* Validate('*09', 'MD0') -* error = Status() -* return 0 -* RDSNo = 252889 -* UCL = QA_Services('PostUCLRequest', RDSNo) -* RDSNo = 251701 -* UCL = QA_Services('PostUCLRequest', RDSNo) -* -* RDSNo = 251545 -* RDSNo = 252889 -* RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) -* ReactorKey = RDSRec -* LWICIKey = Xlate('RDS', RDSNo, 'LWI_CI_NO', 'X') -* TencorRecipe = Xlate('CLEAN_INSP', LWICIKey, CLEAN_INSP_SCAN_RECIPE$, 'X') -* UCL = QA_Services('PostUCLRequest', RDSNo) -* RDSNo = 254171 -* RDSNo = 251701 -* RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) -* ReactorKey = RDSRec -* LWICIKey = Xlate('RDS', RDSNo, 'LWI_CI_NO', 'X') -* TencorRecipe = Xlate('CLEAN_INSP', LWICIKey, CLEAN_INSP_SCAN_RECIPE$, 'X') -* UCL = QA_Services('PostUCLRequest', RDSNo) -* CINo = Xlate('RDS', RDSNo, 'LWI_CI_NO', 'X') -* WaferSODArray = '' -* For Wafer = 1 to 25 -* Field = 'SOD_WAFER_':Wafer -* WaferSODArray<-1> = Xlate('CLEAN_INSP', CINo, Field, 'X') -* Next Wafer -* Return 1 -* RDSNo = 255389 -* WaferNo = 25 -* PDFData = QA_Services('PostWaferImageRequest', @USER4, RDSNo, WaferNo) -* QA_Services('PostToWaferImageQueue', RDSNo, WaferNo, PDFData) -* -* RDSKey = '254013' -* WMOutKeys = Xlate('RDS', RDSKey, 'WM_OUT_KEY', 'X') -* NCRStatus = QA_Services('GetNCRStatus', RDSKey) -* IsEpiPro = RDS_Services('IsEpiPro', RDSKey) -* WaferNo = '9' -* WaferPDF = QA_Services('PostWaferImageRequest', @USER4, RDSKey, WaferNo) -* QA_Services('PostToWaferImageQueue', RDSKey, WaferNo, WaferPDF) -* -* ReturnVal = Utility('RUNWIN', 'C:\Users\ecStieberD\Desktop\WaferTest6.pdf') -* -* ReportsPath = 'D:\OIReports\' -* Filename = 'WaferMap_RDSNo_251550_WaferNo_25.pdf' -* oleObj = OleCreateInstance('VSPDF.VSPDF.1') -* Status = OleStatus() -* If OleStatus() then -* Errmsg('OLE Error code: ' : Status) -* return 1 -* end -* PDF = OleCallMethod(oleObj,"Open",ReportsPath:Filename) -* Return 0 -* -* RDSNo = 254317 -*RDSNo = 251550 -* WaferNo = 1 -* Response = QA_Services('PostWaferImageRequest', @USER4, RDSNo, WaferNo) -* -* If Response NE '' then -* OSWrite Response to 'C:\Users\ecStieberD\Desktop\WaferTest6.pdf' -* Return 0 -* end else -* Return 1 -* end -* -* -* CIList = Database_Services('ReadDataRow', 'SYSLISTS', 'CLEAN_INSP_ROTR') -* CIList = Delete(CIList, 1, 0, 0) -* SODValue = '' -* Open 'CLEAN_INSP' to CIHandle then -* For each CIKey in CIList using @FM -* ReadV SODValue from CIHandle, CIKey, 86 then -* If SODValue NE '' then -* Convert @VM to @SVM in SODValue -* WriteV SODValue on CIHandle, CIKey, 86 else -* ErrMsg('Failed to write record: ' CIKey) -* Return 0 -* end -* end -* end -* Next CIKey -* end -* Return 1 -* Response = Xlate('WO_LOG', 166093, 'SHIP_NO', 'X') -* CIRecord = Database_Services('ReadDataRow', 'CLEAN_INSP', 2189236) -* SODWaferArray = QA_Services('GetSODPerWafer', '251550') -* WaferNos = SODWaferArray<1> -* SODVals = SODWaferArray<2> -* NumRecipes = 2 -* For each WaferNo in WaferNos using @VM -* CIRecord = SODVals<1,WaferNo> -* Next Wafer -* Database_Services('WriteDataRow', 'CLEAN_INSP', 2189236, CIRecord, True$, '', '') -* Return 1 -*RDSNo = 246860 -* RDSNo = 252239 -* WaferNo = 9 -* Response = QA_Services('PostWaferImageRequest', @USER4, RDSNo, WaferNo) -* -* If Response NE '' then -* OSWrite Response to 'C:\Users\ecStieberD\Desktop\WaferTest4.pdf' -* Return 0 -* end else -* Return 1 -* end -* -* ConnectionObj = SQL_Services('GetConnectionObject', 'messa03ec.ec.local', 2) -* -* MRUDTM = '18517.37957' -* PSN = 4821 -* PSN = 4610 -* PSN = 2816 -* ReactorNo = 41 -* RecipeID = 668 -* LayerIDs = '' -* -* LayerIDs = Xlate('RECIPE', RecipeID, 'LS_ID', 'X') -* PRSLayerNos = Xlate('PROD_SPEC', PSN, 'LAYER_NO', 'X') -* For each LayerNo in PRSLayerNos using @VM setting vPos -* PRSLayerKey = PSN:'*':LayerNo -* LSID = Xlate('PRS_LAYER', PRSLayerKey, 'LS_ID', 'X') -* LayerIDs<1,-1> = LSID -* Next LayerNo -* ToolParmKey = Tool_Parms_Services('GetCurrentToolParmKey', RecipeID, PSN, ReactorNo) -* -* Date = Date() - 1 -* -* EQU TOOL_CLASS_DEST_TEST$ TO 13 -* EQU RUN_STAGE_WFR_SPEC_TOOL_CLASS$ TO 1 -* -* WfrStageKey = '247307*XRD*166181.1.17' -* StageDestTests = XLATE('RUN_STAGE_WFR',WfrStageKey,'DEST_TEST','X') -* -* @RECORD = Xlate('RUN_STAGE_WFR', WfrStageKey, '', 'X') -* SpecToolClass = @RECORD< RUN_STAGE_WFR_SPEC_TOOL_CLASS$> -* -* @ANS = XLATE('TOOL_CLASS',SpecToolClass,TOOL_CLASS_DEST_TEST$,'X') -* -* -* Query = 'SELECT REACTOR WITH REACT_NO GT 0 AND WITH REACT_NO LT 100 BY REACT_NO' -* RList(Query, TARGET_SAVELIST$, 'REACTOR_LIST', 'Current List of Reactors', False$) -* ReactorList = Database_Services('ReadDataRow', 'SYSLISTS', 'REACTOR_LIST') -* ReactorList = Delete(ReactorList, 1, 0, 0) -* FileName = 'ReactorList.txt' -* -* RepoPath = Environment_Services('GetApplicationRootPath') : '\Metrology\Run Data Repository\' -* InitDir RepoPath:'*.txt' -* FileList = DirList() -* For each Filename in FileList -* FileInfo = Dir(RepoPath:Filename) -* LastWriteDate = FileInfo<2> -* Next Filename -* -* Recipe = 952 -* PSN = 3223 -* Reactor = 34 -* DTM = Date() :'.': Time() -* TPID = Recipe:'*':PSN:'*':Reactor:'*':DTM -* -* Database_Services('WriteDataRow', 'TOOL_PARMS', TPID, '') -* -* DTM = '18511.48284' -* ExternalDTM = OConv(DTM, 'DT/^3H') -* InternalDTM = IConv(ExternalDTM, 'DT/^3H') -* -* Response = '' -* RDSNo = 246860 -* WaferNo = 9 -* Response = Qa_Services('PostWaferImageRequest', @USER4, RDSNo, WaferNo) -* -* If Response NE '' then -* OSWrite Response to 'C:\Users\StieberD\Desktop\WaferTest3.pdf' -* end -* -* -* PSN = '4059' -* SpecType = Xlate('PROD_SPEC', PSN, 'SPEC_TYPE', 'X') -* -* ReactorNo = '32' -* LastRDSNo = Xlate('REACT_STATE', ReactorNo, 'LAST_RDS_NO', 'X') -* PDFFile = 'C:\Users\ecStieberD\Desktop\Wafer.pdf' -* rv = Utility("RUNWIN", PDFFile, 1) -* -* ActivePSNKeys = '' -* ActiveUnloadPSNKeys = '' -* RecipePSNKeys = '' -* Open 'DICT.PROD_SPEC' to @DICT then -* SearchString = 'STATUS':@VM:'A':@FM -* FailFlase = '' -* Btree.Extract(SearchString, 'PROD_SPEC', @DICT, ActivePSNKeys, '', FailFlag) -* NumActivePSNs = DCount(ActivePSNKeys, @VM) -* For each PSNKey in ActivePSNKeys using @VM setting vPos -* PRSStages = Xlate('PROD_SPEC', PSNKey, 'PRS_STAGE_KEY', 'X') -* If ( Index(PRSStages, 'UNLOAD', 1) ) then -* ActiveUnloadPSNKeys<-1> = PSNKey -* end -* Next PSNKey -* -* For each PSNKey in ActiveUnloadPSNKeys using @FM setting fPos -* UnloadPRSKey = PSNKey : '*UNLOAD' -* MetPatterns = Xlate('PRS_STAGE', UnloadPRSKey, 'MET_RECIPE_PATTERN', 'X') -* Locate '8IN_INF' in MetPatterns using @VM setting vPos then -* RecipePSNKeys<-1> = PSNKey -* end -* Next PSNKey -* -* end -* -* Return RecipePSNKeys -* -* USL = Qa_Services('GetUSLData', 246027) -* -* Today = Date() -* CurrMode = Xlate('REACTOR', 31, 'CURR_MODE', 'X') -* ProdStartDTM = Xlate('REACTOR', 31, 'CURR_MODE_DTM', 'X') -* -* WOStepKey = '164811*1' -* Reactor = 64 -* ReactorMode = Xlate('REACTOR', Reactor, 'CURR_MODE', 'X') -* ROTRStatus = QA_Services('GetROTRStatus', WOStepKey) -* Recipe = '6IN100_ROTR' -* Found = Index(Recipe, '100', 1) -* NCRKey = 144773 -* RejWaferIDs = Xlate('NCR', NCRKey, 'REJ_CNT', 'X') -* RDSKey = 243933 -* FailScanStatus = QA_Services('GetFailureScanStatus', RDSKey) -* -* WOStepKey = '166102*1' -* TotRejWafers = Xlate('WO_STEP', WOStepKey, 'TOT_REJ_TOTAL', 'X') -* WOLogKey = '166102' -* SAPRejWafers = Xlate('WO_LOG', WOLogKey, 'SAP_CONFIRM_SCRAP_QTY', 'X') -* WOStepKey = '166089*1' -* TotRejWafers = Xlate('WO_STEP', WOStepKey, 'TOT_REJ_TOTAL', 'X') -* WOLogKey = '166089' -* SAPRejWafers = Xlate('WO_LOG', WOLogKey, 'SAP_CONFIRM_SCRAP_QTY', 'X') -* WOStepKey = '165910*1' -* TotRejWafers = Xlate('WO_STEP', WOStepKey, 'TOT_REJ_TOTAL', 'X') -* WOLogKey = '165910' -* SAPRejWafers = Xlate('WO_LOG', WOLogKey, 'SAP_CONFIRM_SCRAP_QTY', 'X') -* -* ReactRunKey = '243168' -* ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', ReactRunKey) -* ReactorStatus = Xlate('REACT_RUN', ReactRunKey, 'RUN_STATUS', 'X') -*SODAvg = QA_Services('CalculateSODAvg', '240390') -* -* WOMatQAList = Database_Services('ReadDataRow', 'SYSLISTS', 'WO_MAT_QA_PHASE') -* NumRec = DCount(WOMatQAList, @FM) -* PhaseMin = '88.5' -* Open 'WO_MAT_QA' to TableHandle then -* For Row = 2 to NumRec -* @ID = WOMatQAList -* WOMatQARow = Database_Services('ReadDataRow', 'WO_MAT_QA', @ID) -* If Error_Services('NoError') then -* Profiles = WOMatQARow -* Locate '1CRES' in Profiles setting vPos then -* WOMatQARow = PhaseMin -* Database_Services('WriteDataRow', 'WO_MAT_QA', @ID, WOMatQARow, True$) -* If Error_Services('NoError') else -* Errmsg('Error writing WO_MAT_QA record ' : @ID) -* end -* end -* end else -* Errmsg('Error reading WO_MAT_QA record ' : @ID) -* end -* Next Row -* end -* Return 1 -* vPos = 2 -* RDSRec = Database_Services('ReadDataRow', 'RDS', '240390') -* SpecPhaseMin = @VM -* If SpecPhaseMin EQ '' then -* PSNo = RDSRec -* PRSKey = PSNo : '*UNLOAD' -* PRSPhaseMin = Xlate('PRS_STAGE', PRSKey, PRS_STAGE_MET_PHASE_MIN$, 'X') -* SpecPhaseMin = PRSPhaseMin<1,vPos> -* end -* WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', '165991*17') -* Result = WOMatQARec<11> -* HgCVRes = '1.511' -* Result<1,2,1> = HgCVRes -* ThickRes = '8.411' -* Result<1,1,1> = ThickRes -* NumRows = Dcount(Result,@VM) -* Ans = '' -* PhaseVals = '' -* For Row = 1 to NumRows -* Ans = Result<1,Row> -* If Index(Ans, @SVM, 1) then -* PhaseVals := Result<1,Row,2>[-1, 'B':@SVM] -* end else -* PhaseVals := @VM -* end -* Next Row -* -* ans = XLate('RDS', '240390', 'MET_PHASE_RESULT_UL', 'X') -* return 1 -* PRSList = Database_Services('ReadDataRow', 'SYSLISTS', 'PRS_STAGE_LIST') -* NumRec = DCount(PRSList, @FM) -* PhaseMIn = '88.5' -* Open 'PRS_STAGE' to TableHandle then -* For Row = 2 to NumRec -* @ID = PRSList -* PRSRow = Database_Services('ReadDataRow', 'PRS_STAGE', @ID) -* If Error_Services('NoError') then -* MetTests = PRSRow -* Locate 'CRES' in MetTests setting vPos then -* PRSRow = PhaseMin -* Database_Services('WriteDataRow', 'PRS_STAGE', @ID, PRSRow, True$) -* If Error_Services('NoError') else -* Errmsg('Error writing PRS_STAGE record ' : @ID) -* end -* end -* end else -* Errmsg('Error reading PRS_STAGE record ' : @ID) -* end -* Next Row -* end -* Return 1 -* RDSKey = '172287' -* For Point = 1 to 14 -* Ans = Xlate('RDS', RDSKey, 'PROD_THICKNESS_POINT_' : Point, 'X') -* Next Point -* HgCVResAvg = Xlate('RDS', RDSKey, 'HGCV_RES_AVERAGE', 'X') -* HgCVStdDev = Xlate('RDS', RDSKey, 'HGCV_RES_STD_DEV', 'X') -* HgCV4mmEdgeMean = Xlate('RDS', RDSKey, 'HGCV_4MM_EDGE_MEAN' , 'X') -* HgCV10mmEdgeMean = Xlate('RDS', RDSKey, 'HGCV_10MM_EDGE_MEAN' , 'X') -* ProdThickOnly = Xlate('RDS', RDSKey, 'PROD_THICKNESS_ONLY', 'X') -* ProdThickStdDevOnly = Xlate('RDS', RDSKey, 'PROD_THICKNESS_STD_DEV_ONLY', 'X') -* ThickOnlyCenter = Xlate('RDS', RDSKey, 'THICK_ONLY_CENTER', 'X') -* ThickOnlyR2Mean = Xlate('RDS', RDSKey, 'THICK_ONLY_R2_MEAN', 'X') -* FiveMMEdgeMean = Xlate('RDS', RDSKey, 'PROD_THICKNESS_ONLY_5MM_EDGE_MEAN', 'X') -* ThreeMMEdgeMean = Xlate('RDS', RDSKey, 'PROD_THICKNESS_ONLY_3MM_EDGE_MEAN', 'X') -* ProdThick5mmEdgeFromR2 = Xlate('RDS', RDSKey, 'PROD_THICKNESS_5MM_EDGE_PCT_FROM_R2', 'X') -* ProdThick3mmEdgeFromR2 = Xlate('RDS', RDSKey, 'PROD_THICKNESS_3MM_EDGE_PCT_FROM_R2', 'X') -* HgCVEdgeMean = Xlate('RDS', RDSKey, 'HGCV_EDGE_MEAN_DELTA_PCT', 'X') -* -* -* StdDev = '' -* Sum = 0 -* Devs = '' -* ThickOnlyAvg = Xlate('RDS', '229935', 'PROD_THICKNESS_ONLY', 'X') -* ThickOnlyAvg = '3.909' -* RDSRec = Database_Services('ReadDataRow', 'RDS', '229935') -* WONo = RDSRec -* CassNo = RDSRec -* WOMatQAKey = WONo : '*' : CassNo -* WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAKey) -* QAData = WOMatQARec -* Profiles = WOMatQARec -* Locate '1THICK_ONLY' in Profiles setting vPos then -* For SvPos = 1 to 10 -* DataPoint = QAData<1,vPos,SvPos> -* Deviation = DataPoint - ThickOnlyAvg -* Devs<-1> = Deviation ** 2 -* Next SvPos -* DevsSum = Sum(Devs) -* Variance = DevsSum/10 -* StdDev = Variance ** 0.5 -* end -* -* Ans = '' -* Sum = 0 -* Points = '1,2,5,6,9' -* Devs = '' -* ResAvg = Xlate('RDS', '172287', 'HGCV_RES_AVERAGE', 'X') -* RDSRec = Database_Services('ReadDataRow', 'RDS', 172287) -* WONo = RDSRec -* CassNo = RDSRec -* WOMatQAKey = WONo : '*' : CassNo -* WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAKey) -* QAData = WOMatQARec -* Profiles = WOMatQARec -* Locate '1CRES' in Profiles setting vPos then -* For SvPos = 1 to 9 -* Locate SvPos in Points using ',' setting dummy then -* DataPoint = QAData<1,vPos,SvPos>[1,@TM] -* Deviation = DataPoint - ResAvg -* Devs<-1> = Deviation ** 2 -* end -* Next SvPos -* DevsSum = Sum(Devs) -* Variance = DevsSum/5 -* StdDev = Variance**0.5 -* end -* @ANS = StdDev -* -* -* -* PSNo = '4922' -* If RowExists('PROD_SPEC_REV_HIST', PSNo) then -* PSRevHistRec = Database_Services('ReadDataRow', 'PROD_SPEC_REV_HIST', PSNo) -* end else -* PSRevHistRec = '' -* Database_Services('WriteDataRow', 'PROD_SPEC_REV_HIST', PSNo, PSRevHistRec, True$) -* If Error_Services('NoError') then -* // Rev Hist record created successfully -* end else -* Errmsg('Error creating PROD_SPEC_REV_HIST record: ' : PSNo : @SVM : 'Please notify OpenInsight administrator') -* end -* end -* -* AddedDTMS = Date() : '.' : Time() : @SVM : Date() : '.' : Time() -* AddedDTMS<1, 1, 1> = '' -* AddedDTMS[1, 1] = '' -* AddedDTMS := @SVM : Date() : '.' : Time() -* AddedDTMS = Delete(AddedDTMS, 1, 1, 1) -* -* currentUTF8 = Get_Property('SYSTEM', 'UTF8') -* Result = \C5\ -* Result = \BE\ -* Result = \00C5\ -* Result = \E284A6\ -*Result = Dialog_Box('NDW_VERIFY_USER', @WINDOW) -* RDSNo = '229935' -* Ans = Xlate('RDS', RDSNo, 'PROD_THICKNESS_POINT_1', 'X') -* RDSNo = '172287' -* Ans = Xlate('RDS', RDSNo, 'HGCV_SITE_1_RHOAVG', 'X') -* Ans = Xlate('RDS', RDSNo, 'PHASE_ANGLE', 'X') -* Ans = Xlate('RDS', RDSNo, 'HGCV_EDGE_MEAN_DELTA_PCT', 'X') -* Ans = Xlate('PROD_SPEC', '4059', 'LS_CRES_PHASE_MIN', 'X') -* RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) -* -* WONo = RDSRec -* CassNo = RDSRec -* WOMatQAKey = WONo : '*' : CassNo -* WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAKey) -* Profiles = WOMatQARec -* ThickData = WOMatQARec -* Locate '1THICK_ONLY' in Profiles setting vPos then -* Ans = ThickData<1,vPos,1> -* end -* -* Result = Xlate('RDS', RDSNo, 'MU_WAFERS_ADDED_DTMS', 'X') -* Result = Xlate('RDS', RDSNo, 'MU_WAFERS_REMOVED_DTMS', 'X') -* WONo = '164811' -* CassNo = '1' -* Result = obj_WO_Mat('GetMURemovedDTMS',WONo:'*':CassNo) -* LastRemDTM = Xlate('WO_MAT', '164811*1', 'MU_WAFER_LAST_ADD_DTM', 'X') ; //Need to edit calculated columns in WO_MAT table -* LastAddDTM = Xlate('WO_MAT', '164811*1', 'MU_WAFER_LAST_REMOVE_DTM', 'X') -* -* -* @RECORD = Database_Services('ReadDataRow', 'WO_MAT', '164811*1') -* AddDTMS = @RECORD -* LastAddDTMS = '' -* NumDTMS = DCount(AddDTMS, @VM) -* For vPos = 1 to NumDTMS -* ThisDTM = AddDTMS<1, vPos> -* LastAddDTMS := ThisDTM[1, @SVM] : @VM ; // This line * -* next vPos -* LastAddDTMS[-1, 1] = '' -* @ANS = LastAddDTMS -* -* -* TrimChars = '. 1 2 3 4 5 6 7 8 9 0' -* NextPSNo = Database_Services('ReadDataRow', 'DICT.PROD_SPEC', '%SK%') -* LastPSNo = NextPSNo - 1 -* For PSNo = 1 to LastPSNo -* If RowExists('PROD_SPEC', PSNo, 0) then -* PSRec = Database_Services('ReadDataRow', 'PROD_SPEC', PSNo) -* If Error_Services("NoError") then -* PSRevHistRec = '' -* Descriptions = PSRec -* Usernames = PSRec -* Dates = PSRec -* If ( Descriptions NE '' ) And ( Usernames NE '' ) And ( Dates NE '' ) then -* For each Line in Descriptions using @TM setting tPos -* MatchFound = '' -* LineLength = Len(Line) -* Date = Line[1, 'F '] -* DescStart = Col2() + 1 -* DescEnd = LineLength - Col2() -* Initials = Line[-1, 'B '] -* InitialsLen = Len(Initials) -* DescEnd = DescEnd - InitialsLen -* Desc = Line[DescStart, DescEnd] -* InternalDate = IConv(Date, 'DH') -* For each Character in TrimChars using ' ' -* Swap Character with '' in Initials -* Next Character -* Swap ' ' with '' in Initials -* MatchFound = False$ -* Locate InternalDate in Dates using @VM setting vPos then -* Loop -* ModDate = Dates<1, vPos> -* If ModDate NE InternalDate then -* // No username match found. Manually search for username. -* Username = '' -* For each Username in Usernames using @VM setting uPos -* UserInitials = Username[1,1] -* UserLastInitialPos = Index(Username, ' ', 1) + 1 -* UserInitials := Username[UserLastInitialPos, 1] -* If Initials EQ UserInitials then -* MatchFound = True$ -* PSRevHistRec = Insert(PSRevHistRec, 1, -1, 0, Username) -* PSRevHistRec = Insert(PSRevHistRec, 2, -1, 0, InternalDate) -* PSRevHistRec = Insert(PSRevHistRec, 3, -1, 0, '') -* PSRevHistRec = Insert(PSRevHistRec, 4, -1, 0, Desc) -* end -* Until MatchFound EQ True$ -* Next Username -* end -* While ModDate EQ InternalDate -* ModName = Usernames<1, vPos> -* ModInitials = ModName[1, 1] -* LastInitialPos = Index(ModName, ' ', 1) + 1 -* ModInitials := ModName[LastInitialPos, 1] -* If ( ModInitials EQ Initials ) then -* MatchFound = True$ -* PSRevHistRec = Insert(PSRevHistRec, 1, -1, 0, ModName) -* PSRevHistRec = Insert(PSRevHistRec, 2, -1, 0, ModDate) -* PSRevHistRec = Insert(PSRevHistRec, 3, -1, 0, '') -* PSRevHistRec = Insert(PSRevHistRec, 4, -1, 0, Desc) -* end -* Until MatchFound EQ True$ -* vPos = vPos + 1 -* Repeat -* end else -* // Date match not found. Use date supplied by user in description. -* If InternalDate NE '' then -* Username = '' -* For each Username in Usernames using @VM setting uPos -* UserInitials = Username[1,1] -* UserLastInitialPos = Index(Username, ' ', 1) + 1 -* UserInitials := Username[UserLastInitialPos, 1] -* If Initials EQ UserInitials then -* MatchFound = True$ -* PSRevHistRec = Insert(PSRevHistRec, 1, -1, 0, Username) -* PSRevHistRec = Insert(PSRevHistRec, 2, -1, 0, InternalDate) -* PSRevHistRec = Insert(PSRevHistRec, 3, -1, 0, '') -* PSRevHistRec = Insert(PSRevHistRec, 4, -1, 0, Desc) -* end -* Until MatchFound EQ True$ -* Next Username -* end -* end -* Next Line -* end -* Database_Services('WriteDataRow', 'PROD_SPEC_REV_HIST', PSNo, PSRevHistRec) -* If Error_Services('NoError') then -* Null -* end else -* ErrMsg('Failed to write PROD_SPEC_REV_HIST record: ' : PSNo) -* end -* end else -* ErrMsg('Failed to read PROD_SPEC record: ' : PSNo) -* end -* end -* Next PSNo -* -* Return 1 -* -*Initials = SRP_Trim(Initials, 'FMBA', '.1234567890') -* String = '12/13/14 Test DS' -* Date = String[1, 'F '] -* Desc = String[Col2() + 1, ' '] -* Initials = String[Col2() + 1 , 2] -* -* PSStageKey = '4059*UNLOAD' -* PSStageRec = XLATE('PRS_STAGE',PSStageKey,'','X') -* PhaseMin = PSStageRec -* PSStageKey = '4059*QA' -* PSStageRec = XLATE('PRS_STAGE',PSStageKey,'','X') -* PhaseMin = PSStageRec -* -* PRSLayerKey = '4059*1' -* PhaseVals = XLATE('PRS_LAYER', PRSLayerKey, 'PROP_PHASE_MIN', 'X') -* PRSPropKeys = '4059*1*CRES' : @VM : '4059*1*RES' : @VM : '4059*1*THICK' -* PhaseVal = XLATE('PRS_PROP', PRSPropKeys, '19', 'X') -* -*PhaseMin = obj_Prod_Spec('GetQAMet',@ID:@RM:@RECORD) -* -* -* MetrologyLog = Database_Services('ReadDataRow', 'SYSLISTS', 'METROLOGY_LOG') -* swap @fm with CRLF$ in MetrologyLog -* swap @vm with Tab$ in MetrologyLog -* Path = 'C:\Users\StieberD\Desktop\Notes\MetrologyLog.txt' -* OSWrite MetrologyLog to Path -* HgCVPct = 12.81142804732642 -* HgCVEdgeMean = 64 -* HgCVEdgeMean = OConv(HgCVEdgeMean, 'MD3L') -*HgCVEdgeMean = HgCVEdgeMean[1,4] -* HgCVPct = Oconv(Iconv(HgCVPct, 'MD2L'), 'MD2L') -* RangePoints = '1,2,5,6,9' -* NumRangePoints = DCount(RangePoints, ',') -* Return HgCVEdgeMean -* CustNo = '6593' -* EpiPartNo = '529792' -* -* CustNo = '6874' -* EpiPartNo = 'WEP911359IRE' -* CustEpiPartRec = XLATE('CUST_EPI_PART',CustNo:'*':EpiPartNo,'','X') -* -* CustEpiPartRec = Database_Services('ReadDataRow', 'CUST_EPI_PART', CustNo:'*':EpiPartNo, True$, 600, False$) -* CustEpiPartRec = '25' -* Database_Services('WriteDataRow', 'CUST_EPI_PART', CustNo:'*':EpiPartNo, CustEpiPartRec, False$, False$, False$) -* CassShipQty = CustEpiPartRec -* -* Message = 'Unable to sign FQA because the Scheduled Wafers' : CRLF$ : 'Quantity does not equal the ' -* Message := 'Wafers Out Quantity.' : CRLF$ : 'Lead must override.' -* LeadMessage = 'Scheduled Wafers Quantity does not equal the Wafers Out Quantity.' -* If NOT( MemberOf(@USER4, 'LEAD') OR MemberOf(@USER4, 'SUPERVISOR') ) then -* Response = Msg(@Window, '', 'POST_EPI_WAFER_OUT', '', Message) -* end else -* Response = Msg(@Window, '', 'POST_EPI_WAFER_OUT', '', LeadMessage) -* end -* -* @RECORD = Database_Services('ReadDataRow', 'RDS', '229935') -* @ans = xlate( 'LSL_USERS', @record, 'FIRST_LAST', 'X' ) -* -*Response = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4 : @FM : 'LEAD' : @VM : 'SUPERVISOR') -* -* WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', '165874*1') -* DataPoints = WOMatQARec -* Convert @SVM to @FM in DataPoints -* Min = DataPoints<1> -* Max = DataPoints<1> -* For each DataPoint in DataPoints using @FM -* Min = Min(Min, DataPoint) -* Max = Max(Max, DataPoint) -* Next DataPoint -* -* Result = Min :@VM : Max -* Return Result -* -* CurrStatus = Xlate('RDS', '2297498', 'CURR_STATUS','X') -* -* String = '1,2,3' -* Count = DCount(String, ',') -* Stack = RetStack() -* Convert @FM to ',' in Stack -* SystemWindow = Get_Property('SYSTEM', 'SIZE') -* MaxHeight = SystemWindow<4> * '0.8' -* MaxHeight = Oconv(MaxHeight, 'MD0') -* -* List = 3.929 : @TM : 90 : @SVM : 3.872 : @TM : 90 : @SVM -* For each DataPoint in List using @SVM setting SVPos -* HgCVData = DataPoint[1, 'F' : @TM] -* PhaseData = DataPoint[-1, 'B' : @TM] -* Next DataPoint -* -*Work_Order = Work_Order_Services('GetWorkOrder', '165794') -* -* Status = 0 -* WaferData = '' -* Filename = 'E:\apps\ThruPut\LogFiles\Log.csv' -* Set_Status(0) -* WaferCount = 0 -* OSRead WaferData from Filename then -* SWAP CRLF$ WITH @FM IN WaferData -* SWAP ',' WITH @VM IN WaferData -* LOOP -* LastChar = WaferData[-1,1] -* UNTIL LastChar NE @FM -* WaferData[-1,1] = '' -* REPEAT -* For each row in WaferData using @FM setting Index -* if index > 1 then -* WaferCount += row<1,5> -* end -* Next row -* end else -* Status = Status() -* end -* -* -* -* Tablename = 'PROD_SPEC' -* Dict = 'DICT.':Tablename -* -* OPEN Dict TO DictVar THEN -* SearchString = 'ENTRY_DATE':@VM:'18414~18429':@FM -* Btree.Extract(SearchString, Tablename, DictVar, Keys, '', Flag) -* end -* -* OPEN TableName to Table then -* For each Key in Keys using @VM -* READ Rec from Table, Key else -* ErrMsg('Reading ' : TableName : ' Record ' : Key : 'failed!') -* Return 0 -* end -* WRITE Rec on Table, Key else -* ErrMsg('Writing ' : TableName : ' Record ' : Key : 'failed!') -* Return 0 -* end -* Next Key -* end -* -* -* Status = '' -* -* OPEN 'DICT.WO_MAT' TO DictVar THEN -* SearchString = 'REL_DTM':@VM:'18414~18429':@FM -* Btree.Extract(SearchString, 'WO_MAT', DictVar, WOMatKeys, '', Flag) -* end -* -* OPEN 'WO_MAT' to WOMatTable then -* For each Key in WOMatKeys using @VM -* READ WOMatRec from WOMatTable, Key else -* ErrMsg('Reading WO_Mat Record ' : Key : 'failed!') -* Return 0 -* end -* WRITE WOMatRec on WOMatTable, Key else -* ErrMsg('Writing WO_Mat Record ' : Key : 'failed!') -* Return 0 -* end -* Next Key -* end -* -* -* // Notes: Rewrote RDS Date_Out>18353 -* -* RDSKeys = '' -* Status = '' -* -* OPEN 'DICT.RDS' TO DictVar THEN -* SearchString = 'DATE_OUT':@VM:'18353~18385':@FM ; // (Mar 31, 2018 - May 02, 2018) -* Btree.Extract(SearchString, 'RDS', DictVar, RDSKeys, '', Flag) -* end -* -* OPEN 'RDS' to RDSTable then -* For each Key in RDSKeys using @VM -* READ RDSRec from RDSTable, Key else -* ErrMsg('Reading RDS Record ' : Key : 'failed!') -* Return 0 -* end -* WRITE RDSRec on RDSTable, Key else -* ErrMsg('Writing RDS Record ' : Key : 'failed!') -* Return 0 -* end -* Next Key -* end -* -* -* ReactRunKeys = '' -* Status = '' -* Flag = '' -* Key = '' -* // (May 31, 2018 - June 08, 2018) June -* // (April 30, 2018 - June 01, 2018) May -* // (March 31, 2018 - May 01, 2018) April -* // (Feb 28, 2018 - Apr 01, 2018) March -* // (Jan 31, 2018 - Mar 01, 2018) Feb -* // (Dec 31, 2017 - Feb 01, 2018) Jan -* // -* OPEN 'DICT.REACT_RUN' TO DictVar THEN -* SearchString = 'UNLOAD_DT':@VM:'18408~18415':@FM -* Btree.Extract(SearchString, 'REACT_RUN', DictVar, ReactRunKeys, '', Flag) -* end -* -* OPEN 'REACT_RUN' to ReactRunTable then -* For each Key in ReactRunKeys using @VM -* READ ReactRunRec from ReactRunTable, Key else -* ErrMsg('Reading ReactRun Record ' : Key : 'failed!') -* Return 0 -* end -* WRITE ReactRunRec on ReactRunTable, Key else -* ErrMsg('Writing ReactRun Record ' : Key : 'failed!') -* Return 0 -* end -* Next Key -* end -* -* -* -*Result = '' -*Result = Rds_Services('GetRDSList', '165731', False$) -* -* Response = Dialog_Box('NDW_RDS_SUPPLEMENT', @WINDOW, '165731') -* -* /* -* Response = Dialog_Box('NDW_ADD_SUPPLEMENT', @WINDOW) -* Save = Response<1> -* Instructions = Response<2> -* -* -* If Save EQ True$ then -* -* NumRows = DCount(Result, @FM) -* For Index = 1 to NumRows -* Result = Instructions -* Next Index -* -* // Insert Instructions into selected rows' Supplement cell -* -* For each Field in Result Using @FM Setting Index -* Result = Instructions -* Next Field -* -* end -* -*/ -*Ans = RTI_LH_Info(CMD_SESSION_INFO$) -*Ans = RTI_LH_Info(CMD_LOCKS_INFO$, '') -*Ans = RTI_LH_Info(CMD_TABLE_INFO$, 'APP_INFO') -*Ans = RTI_LH_Info(CMD_UNLOCK$, 'E:\APPS\OICURRENT\LSL\', 'REV29304', '165745', 'REV29304') -* -* /* -* -* If MemberOf(@USER4, 'BYPASS') then -* Response = Msg(@Window, '', 'POST_EPI_WAFER_OUT_LEAD') -* end else -* Response = Msg(@Window, '', 'POST_EPI_WAFER_OUT') -* end -* -* Begin Case -* Case Response EQ 1 -* Response = True$ -* Case Response EQ 2 -* Response = False$ -* Case Response EQ char(27) -* Response = False$ -* End Case -* -* If Response EQ True$ then -* Result = Dialog_Box('NDW_VERIFY_USER', @Window, '' : @FM : 'BYPASS') -* end else -* Result = 0 -* end -* -* Return 1 -*/ - diff --git a/LSL2/STPROC/WO_DAILY_SCHED_ALL_COMM.txt b/LSL2/STPROC/WO_DAILY_SCHED_ALL_COMM.txt index a35e1ff..d14f80d 100644 --- a/LSL2/STPROC/WO_DAILY_SCHED_ALL_COMM.txt +++ b/LSL2/STPROC/WO_DAILY_SCHED_ALL_COMM.txt @@ -67,41 +67,31 @@ ChecklistButton: Message = '' ReactorNo = CurrParm[-1, 'B_'] - Status_ProveIn = Reactor_Services('GetProveInActive', ReactorNo) - Status_0311 = XLATE('REACTOR', ReactorNo, REACTOR_0311_ACTIVE$, 'X') If Status_0311 EQ '' then Status_0311 = False$ CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactorNo, REACTOR_CHILD_KEY_IDS_REACT_MODE_KEY_IDS$, 'X') - CurrRLKey = Xlate('REACT_MODE_NG', CurrModeKey, REACT_MODE_NG_START_RL_ID$, 'X') + CurrRLKey = Xlate('REACT_MODE_NG', CurrModeKey, REACT_MODE_NG_START_RL_ID$, 'X') + ReactorNicaOrders = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactorNo) ReactorPmOrderIds = Nica_Orders_Services('GetActiveOrders', 'REACTOR_LOG', CurrRlKey) - HgCVAlarmOrderIds = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactorNo, 'IQS_HGCV_ALARM') ChecklistInfo = 'The following checklist(s) are active: ' - If Status_ProveIn then - // Add each active prove in order - ProveInOrderProgresses = Reactor_Services('GetActiveProveInProgresses', ReactorNo) - For each ProveInOrderProgress in ProveInOrderProgresses using @VM setting vPos - ChecklistInfo<-1> = ProveInOrderProgress - Next ProveInOrderProgress - end If Status_0311 then ChecklistInfo<-1> = '0311 OCAP' If ReactorPmOrderIds NE '' then - // Add each active reactor PM checklist order For each ReactorPmOrderId in ReactorPmOrderIds using @VM setting vPos ProgressPercentage = Xlate('NICA_ORDERS', ReactorPmOrderId, 'PROGRESS_PERCENTAGE', 'X') ChecklistInfo<-1> = Xlate('NICA_ORDERS', ReactorPmOrderId, 'ORDER_TYPE', 'X') : '- ' : ProgressPercentage :'% Complete.' Next RlPmType end - If HgCVAlarmOrderIds NE '' then - For each HgCVAlarmOrderId in HgCVAlarmOrderIds using @VM - ProgressPercentage = Xlate('NICA_ORDERS', HgCVAlarmOrderId, 'PROGRESS_PERCENTAGE', 'X') - ChecklistInfo<-1> = Xlate('NICA_ORDERS', HgCVAlarmOrderId, 'ORDER_TYPE', 'X') : '- ' : ProgressPercentage :'% Complete.' - Next HgCVAlarmOrder + If ReactorNicaOrders NE '' then + For each NicaOrderId in ReactorNicaOrders using @VM + ProgressPercentage = Xlate('NICA_ORDERS', NicaOrderId, 'PROGRESS_PERCENTAGE', 'X') + ChecklistInfo<-1> = Xlate('NICA_ORDERS', NicaOrderId, 'ORDER_TYPE', 'X') : '- ' : ProgressPercentage :'% Complete.' + Next NicaOrderId end Swap @FM with CRLF$ in ChecklistInfo @@ -269,10 +259,10 @@ FORM_CREATE: Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\Active_0311.png') end - CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', I, 'REACT_MODE_KEY_IDS', 'X') - CurrModeKey = CurrModeKey[-1, 'B':@VM] - CurrRLKey = Xlate('REACT_MODE_NG', CurrModeKey, 'START_RL_ID', 'X') - Status_ReactorPM = Xlate('REACTOR_LOG', CurrRLKey, REACTOR_LOG_CHECKLIST_ACTIVE$, 'X') + CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', I, 'REACT_MODE_KEY_IDS', 'X') + CurrModeKey = CurrModeKey[-1, 'B':@VM] + CurrRLKey = Xlate('REACT_MODE_NG', CurrModeKey, 'START_RL_ID', 'X') + Status_ReactorPM = Xlate('REACTOR_LOG', CurrRLKey, REACTOR_LOG_CHECKLIST_ACTIVE$, 'X') If Status_ReactorPM EQ '' then Status_ReactorPM = False$ @@ -286,7 +276,12 @@ FORM_CREATE: Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\ActiveProveIn.png') end - OlePicVisible = ( Status_ProveIn or Status_0311 or Status_ReactorPM or Status_HgCV_Alarm) + Status_Intrusive_Maint = Xlate('REACTOR', I, REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$, 'X') + If Status_Intrusive_Maint EQ True$ then + Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\ActiveProveIn.png') + end + + OlePicVisible = ( Status_ProveIn or Status_0311 or Status_ReactorPM or Status_HgCV_Alarm or Status_Intrusive_Maint) Set_Property(Window:'.OLE_PIC_':I,'VISIBLE', OlePicVisible) IQSPicControl = @Window : '.OLE_PIC_IQS_': i @@ -334,8 +329,3 @@ REACT_DETAIL: return *===============================================================================================* - - - - - diff --git a/LSL2/STPROCINS/FEATURE_FLAGS_EQUATES.txt b/LSL2/STPROCINS/FEATURE_FLAGS_EQUATES.txt new file mode 100644 index 0000000..6e67061 --- /dev/null +++ b/LSL2/STPROCINS/FEATURE_FLAGS_EQUATES.txt @@ -0,0 +1,17 @@ +compile insert FEATURE_FLAGS_EQUATES +/*---------------------------------------- + Author : Table Create Insert Routine + Written : 07/03/2025 + Description : Insert for Table FEATURE_FLAGS +----------------------------------------*/ +#ifndef __FEATURE_FLAGS_EQUATES__ +#define __FEATURE_FLAGS_EQUATES__ + + equ FEATURE_FLAGS.FEATURE_DESCRIPTION$ to 1 + equ FEATURE_FLAGS.ENABLED$ to 2 + equ FEATURE_FLAGS.MODIFY_USER$ to 3 + equ FEATURE_FLAGS.MODIFY_DTM$ to 4 + equ FEATURE_FLAGS.MODIFY_STATE$ to 5 + equ FEATURE_FLAGS.MODIFY_COMMENT$ to 6 + +#endif diff --git a/LSL2/STPROCINS/NICA_CHECKLISTS_EQUATES.txt b/LSL2/STPROCINS/NICA_CHECKLISTS_EQUATES.txt new file mode 100644 index 0000000..83017c5 --- /dev/null +++ b/LSL2/STPROCINS/NICA_CHECKLISTS_EQUATES.txt @@ -0,0 +1,16 @@ +compile insert NICA_CHECKLISTS_EQUATES +/*---------------------------------------- + Author : Table Create Insert Routine + Written : 05/03/2025 + Description : Insert for Table NICA_CHECKLISTS +----------------------------------------*/ +#ifndef __NICA_CHECKLISTS_EQUATES__ +#define __NICA_CHECKLISTS_EQUATES__ + + equ NICA_CHECKLISTS.PRIORITY$ to 1 + equ NICA_CHECKLISTS.NICA_BASE_INSTRUCTION_ID$ to 2 + equ NICA_CHECKLISTS.NICA_ORDER_FLOW_IDS$ to 3 + equ NICA_CHECKLISTS.NICA_ORDER_FLOW_TYPE$ to 4 + equ NICA_CHECKLISTS.REACTOR_TYPES$ to 5 + +#endif diff --git a/LSL2/STPROCINS/NICA_ORDERS_CHECKLISTS_EQUATES.txt b/LSL2/STPROCINS/NICA_ORDERS_CHECKLISTS_EQUATES.txt new file mode 100644 index 0000000..8424a04 --- /dev/null +++ b/LSL2/STPROCINS/NICA_ORDERS_CHECKLISTS_EQUATES.txt @@ -0,0 +1,13 @@ +compile insert NICA_ORDERS_CHECKLISTS_EQUATES +/*---------------------------------------- + Author : Table Create Insert Routine + Written : 03/03/2025 + Description : Insert for Table NICA_ORDERS_CHECKLISTS +----------------------------------------*/ +#ifndef __NICA_ORDERS_CHECKLISTS_EQUATES__ +#define __NICA_ORDERS_CHECKLISTS_EQUATES__ + + equ NICA_ORDERS_CHECKLISTS.IS_COMPLETE$ to 1 + equ NICA_ORDERS_CHECKLISTS.STATE$ to 2 + +#endif diff --git a/LSL2/STPROCINS/NICA_ORDERS_EQUATES.txt b/LSL2/STPROCINS/NICA_ORDERS_EQUATES.txt index 02c8f25..1a48054 100644 --- a/LSL2/STPROCINS/NICA_ORDERS_EQUATES.txt +++ b/LSL2/STPROCINS/NICA_ORDERS_EQUATES.txt @@ -7,12 +7,14 @@ compile insert NICA_ORDERS_EQUATES #ifndef __NICA_ORDERS_EQUATES__ #define __NICA_ORDERS_EQUATES__ - equ NICA_ORDERS.ORDER_TYPE$ to 1 - equ NICA_ORDERS.ORDER_STATUS$ to 2 - equ NICA_ORDERS.ENTITY_TYPE$ to 3 - equ NICA_ORDERS.ENTITY_ID$ to 4 - equ NICA_ORDERS.IS_COMPLETE$ to 5 - equ NICA_ORDERS.PROGRESS_PERCENTAGE$ to 6 + equ NICA_ORDERS.ORDER_TYPE$ to 1 + equ NICA_ORDERS.ORDER_STATUS$ to 2 + equ NICA_ORDERS.ENTITY_TYPE$ to 3 + equ NICA_ORDERS.ENTITY_ID$ to 4 + equ NICA_ORDERS.IS_COMPLETE$ to 5 + equ NICA_ORDERS.PROGRESS_PERCENTAGE$ to 6 + equ NICA_ORDERS.ORDER_CHECKLIST_IDS$ to 7 #endif + diff --git a/LSL2/STPROCINS/REACTOR_EQUATES.txt b/LSL2/STPROCINS/REACTOR_EQUATES.txt index a3ab878..abf75fa 100644 --- a/LSL2/STPROCINS/REACTOR_EQUATES.txt +++ b/LSL2/STPROCINS/REACTOR_EQUATES.txt @@ -6,77 +6,79 @@ compile insert REACTOR_EQUATES ----------------------------------------*/ -Equ REACTOR_REACT_NO$ To 0 -Equ REACTOR_REACT_TYPE$ To 1 -Equ REACTOR_REDUCED_PRESS$ To 2 -Equ REACTOR_MFC_LOC$ To 3 -Equ REACTOR_MFC_SERIAL$ To 4 -Equ REACTOR_GAS_SRC$ To 5 -Equ REACTOR_REACT_ASSIGNMENT$ To 6 -Equ REACTOR_TEMP_TYPE$ To 7 -Equ REACTOR_MFC_LOC_PN$ To 8 -Equ REACTOR_ESC_START_DTM$ To 9 -Equ REACTOR_ACTIVE_ESCALATION$ To 10 -Equ REACTOR_REACT_DESC$ To 11 -Equ REACTOR_CURR_MODE_KEY$ To 12 -Equ REACTOR_HEAVY_DOPE$ To 13 -Equ REACTOR_ATV$ To 14 -Equ REACTOR_INJECT_TYPE$ To 15 -Equ REACTOR_SOS_SENSORS$ To 16 -Equ REACTOR_SERIAL_NO$ To 17 -Equ REACTOR_MFR_TYPE$ To 18 -Equ REACTOR_ASM_MFR_YEAR$ To 19 -Equ REACTOR_ARM_TYPE$ To 20 -Equ REACTOR_PROCESSOR$ To 21 -Equ REACTOR_CONFIG_NOTES$ To 22 -Equ REACTOR_EXT_TYPE$ To 23 -Equ REACTOR_HTHF$ To 24 -Equ REACTOR_LAST_READ_HRS_DTM$ To 25 -Equ REACTOR_LAST_READ_WFRS_DTM$ To 26 -Equ REACTOR_TUBE_SIZE$ To 27 -Equ REACTOR_WAFER_SIZE$ To 27 -Equ REACTOR_SUSC_POCKET_QTY$ To 28 -Equ REACTOR_SUSC_POCKET_SIZE$ To 29 -Equ REACTOR_PICK_PLACE$ To 30 -Equ REACTOR_VENDOR$ To 31 -Equ REACTOR_LOCATIONX$ To 32 -Equ REACTOR_TOOL_WHX$ To 33 -Equ REACTOR_TOOL_LOCX$ To 34 -Equ REACTOR_TOOL_ID$ To 35 -Equ REACTOR_INJECT_SETTING$ To 36 -Equ REACTOR_CURR_INST_GRAPHITE$ To 37 -Equ REACTOR_CURR_INST_ITEMS$ To 37 -Equ REACTOR_LL_DISABLED$ To 38 -Equ REACTOR_ACTIVE_LL_DISABLED$ To 39 -Equ REACTOR_SUSC_CONFIG_ID$ To 40 -Equ REACTOR_SECOND_CHAMBER$ To 41 -Equ REACTOR_X_PREV_RUNS$ To 42 -Equ REACTOR_NCR_LIMIT$ To 43 -Equ REACTOR_ZERO_NCR_MIN$ To 44 -Equ REACTOR_UCL_LIMIT$ To 45 -Equ REACTOR_ROTR_FAIL_LIMIT$ To 46 -Equ REACTOR_ROTR_STATUS$ To 47 -Equ REACTOR_ROTR_STATUS_REASON$ To 48 -Equ REACTOR_ENABLE_ROTR$ To 49 -Equ REACTOR_ROTR_STOP_RDS$ To 50 -Equ REACTOR_ROTR_MAINT_RESET$ To 51 -Equ REACTOR_SCHED_EVENTS$ To 52 -Equ REACTOR_NOT_REPAIRABLE$ To 53 -Equ REACTOR_0311_ACTIVE$ To 54 -Equ REACTOR_ROTR_OVERRIDE_COUNT$ To 55 -Equ REACTOR_PREVIOUS_ROTR_STATUS_REASON$ To 56 -Equ REACTOR_PREVIOUS_ROTR_OVERRIDE_RDS$ To 57 -Equ REACTOR_TUBE_BELL_JAR_THK$ To 58 -Equ REACTOR_TUBE_BELL_JAR_WFR_CNT$ To 59 -Equ REACTOR_SUSC_THK$ To 60 -Equ REACTOR_SUSC_WFR_CNT$ To 61 -Equ REACTOR_LOWER_QUARTZ_THK$ To 62 -Equ REACTOR_LOWER_QUARTZ_WFR$ To 63 -Equ REACTOR_ARMS_WFR_CNT$ To 64 -Equ REACTOR_PROVE_IN_ACTIVE$ To 65 -Equ REACTOR_PROVE_IN_TYPE$ To 66 -Equ REACTOR_PROVE_IN_ORDER_ID$ To 67 -Equ REACTOR_IDLE_STARTUP_REQUIRED$ To 68 -Equ REACTOR_IQS_ALARM_DTM$ To 69 -Equ REACTOR_IQS_ALARM_TEST$ To 70 -Equ REACTOR_HGCV_CHECKLIST_ACTIVE$ To 71 +Equ REACTOR_REACT_NO$ To 0 +Equ REACTOR_REACT_TYPE$ To 1 +Equ REACTOR_REDUCED_PRESS$ To 2 +Equ REACTOR_MFC_LOC$ To 3 +Equ REACTOR_MFC_SERIAL$ To 4 +Equ REACTOR_GAS_SRC$ To 5 +Equ REACTOR_REACT_ASSIGNMENT$ To 6 +Equ REACTOR_TEMP_TYPE$ To 7 +Equ REACTOR_MFC_LOC_PN$ To 8 +Equ REACTOR_ESC_START_DTM$ To 9 +Equ REACTOR_ACTIVE_ESCALATION$ To 10 +Equ REACTOR_REACT_DESC$ To 11 +Equ REACTOR_CURR_MODE_KEY$ To 12 +Equ REACTOR_HEAVY_DOPE$ To 13 +Equ REACTOR_ATV$ To 14 +Equ REACTOR_INJECT_TYPE$ To 15 +Equ REACTOR_SOS_SENSORS$ To 16 +Equ REACTOR_SERIAL_NO$ To 17 +Equ REACTOR_MFR_TYPE$ To 18 +Equ REACTOR_ASM_MFR_YEAR$ To 19 +Equ REACTOR_ARM_TYPE$ To 20 +Equ REACTOR_PROCESSOR$ To 21 +Equ REACTOR_CONFIG_NOTES$ To 22 +Equ REACTOR_EXT_TYPE$ To 23 +Equ REACTOR_HTHF$ To 24 +Equ REACTOR_LAST_READ_HRS_DTM$ To 25 +Equ REACTOR_LAST_READ_WFRS_DTM$ To 26 +Equ REACTOR_TUBE_SIZE$ To 27 +Equ REACTOR_WAFER_SIZE$ To 27 +Equ REACTOR_SUSC_POCKET_QTY$ To 28 +Equ REACTOR_SUSC_POCKET_SIZE$ To 29 +Equ REACTOR_PICK_PLACE$ To 30 +Equ REACTOR_VENDOR$ To 31 +Equ REACTOR_LOCATIONX$ To 32 +Equ REACTOR_TOOL_WHX$ To 33 +Equ REACTOR_TOOL_LOCX$ To 34 +Equ REACTOR_TOOL_ID$ To 35 +Equ REACTOR_INJECT_SETTING$ To 36 +Equ REACTOR_CURR_INST_GRAPHITE$ To 37 +Equ REACTOR_CURR_INST_ITEMS$ To 37 +Equ REACTOR_LL_DISABLED$ To 38 +Equ REACTOR_ACTIVE_LL_DISABLED$ To 39 +Equ REACTOR_SUSC_CONFIG_ID$ To 40 +Equ REACTOR_SECOND_CHAMBER$ To 41 +Equ REACTOR_X_PREV_RUNS$ To 42 +Equ REACTOR_NCR_LIMIT$ To 43 +Equ REACTOR_ZERO_NCR_MIN$ To 44 +Equ REACTOR_UCL_LIMIT$ To 45 +Equ REACTOR_ROTR_FAIL_LIMIT$ To 46 +Equ REACTOR_ROTR_STATUS$ To 47 +Equ REACTOR_ROTR_STATUS_REASON$ To 48 +Equ REACTOR_ENABLE_ROTR$ To 49 +Equ REACTOR_ROTR_STOP_RDS$ To 50 +Equ REACTOR_ROTR_MAINT_RESET$ To 51 +Equ REACTOR_SCHED_EVENTS$ To 52 +Equ REACTOR_NOT_REPAIRABLE$ To 53 +Equ REACTOR_0311_ACTIVE$ To 54 +Equ REACTOR_ROTR_OVERRIDE_COUNT$ To 55 +Equ REACTOR_PREVIOUS_ROTR_STATUS_REASON$ To 56 +Equ REACTOR_PREVIOUS_ROTR_OVERRIDE_RDS$ To 57 +Equ REACTOR_TUBE_BELL_JAR_THK$ To 58 +Equ REACTOR_TUBE_BELL_JAR_WFR_CNT$ To 59 +Equ REACTOR_SUSC_THK$ To 60 +Equ REACTOR_SUSC_WFR_CNT$ To 61 +Equ REACTOR_LOWER_QUARTZ_THK$ To 62 +Equ REACTOR_LOWER_QUARTZ_WFR$ To 63 +Equ REACTOR_ARMS_WFR_CNT$ To 64 +Equ REACTOR_PROVE_IN_ACTIVE$ To 65 +Equ REACTOR_PROVE_IN_TYPE$ To 66 +Equ REACTOR_PROVE_IN_ORDER_ID$ To 67 +Equ REACTOR_IDLE_STARTUP_REQUIRED$ To 68 +Equ REACTOR_IQS_ALARM_DTM$ To 69 +Equ REACTOR_IQS_ALARM_TEST$ To 70 +Equ REACTOR_HGCV_CHECKLIST_ACTIVE$ To 71 +Equ REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$ To 72 + diff --git a/LSL2/STPROCINS/REACT_SERVS_EQUATES.txt b/LSL2/STPROCINS/REACT_SERVS_EQUATES.txt index 133e452..c8efa4d 100644 --- a/LSL2/STPROCINS/REACT_SERVS_EQUATES.txt +++ b/LSL2/STPROCINS/REACT_SERVS_EQUATES.txt @@ -6,28 +6,28 @@ compile insert REACT_SERVS_EQUATES ----------------------------------------*/ -Equ REACT_SERVS_SERV_ID$ To 0 -Equ REACT_SERVS_DESCRIPTION$ To 1 -Equ REACT_SERVS_ACTION$ To 2 -Equ REACT_SERVS_ENTRY_ID$ To 3 -Equ REACT_SERVS_ENTRY_DATE$ To 4 -Equ REACT_SERVS_INJECTOR_CHANGE$ To 5 -Equ REACT_SERVS_PM_DAYS$ To 7 -Equ REACT_SERVS_REACT_SERV_CAT_ID$ To 8 -Equ REACT_SERVS_GRAPHITE_OR_TUBE$ To 9 -Equ REACT_SERVS_REACT_ITEM_DESC$ To 9 -Equ REACT_SERVS_REACT_ITEM_TYPE$ To 9 -Equ REACT_SERVS_STATUS$ To 10 -Equ REACT_SERVS_INACTIVE_DATE$ To 11 -Equ REACT_SERVS_TC_CHANGE_SERVICE$ To 12 -Equ REACT_SERVS_REQ_ARM_WAND_DATA$ To 13 -Equ REACT_SERVS_SVC_DESC$ To 14 -Equ REACT_SERVS_REACT_ITEM$ To 15 -Equ REACT_SERVS_REACT_GAS$ To 16 -Equ REACT_SERVS_REACT_TYPE$ To 17 -Equ REACT_SERVS_REACT_SYSTEM$ To 18 -Equ REACT_SERVS_NOTE_REQ$ To 19 -Equ REACT_SERVS_ASSOC_METRICS$ To 20 -Equ REACT_SERVS_IS_INTRUSIVE$ To 21 - +Equ REACT_SERVS_SERV_ID$ To 0 +Equ REACT_SERVS_DESCRIPTION$ To 1 +Equ REACT_SERVS_ACTION$ To 2 +Equ REACT_SERVS_ENTRY_ID$ To 3 +Equ REACT_SERVS_ENTRY_DATE$ To 4 +Equ REACT_SERVS_INJECTOR_CHANGE$ To 5 +Equ REACT_SERVS_PM_DAYS$ To 7 +Equ REACT_SERVS_REACT_SERV_CAT_ID$ To 8 +Equ REACT_SERVS_GRAPHITE_OR_TUBE$ To 9 +Equ REACT_SERVS_REACT_ITEM_DESC$ To 9 +Equ REACT_SERVS_REACT_ITEM_TYPE$ To 9 +Equ REACT_SERVS_STATUS$ To 10 +Equ REACT_SERVS_INACTIVE_DATE$ To 11 +Equ REACT_SERVS_TC_CHANGE_SERVICE$ To 12 +Equ REACT_SERVS_REQ_ARM_WAND_DATA$ To 13 +Equ REACT_SERVS_SVC_DESC$ To 14 +Equ REACT_SERVS_REACT_ITEM$ To 15 +Equ REACT_SERVS_REACT_GAS$ To 16 +Equ REACT_SERVS_REACT_TYPE$ To 17 +Equ REACT_SERVS_REACT_SYSTEM$ To 18 +Equ REACT_SERVS_NOTE_REQ$ To 19 +Equ REACT_SERVS_ASSOC_METRICS$ To 20 +Equ REACT_SERVS_IS_INTRUSIVE$ To 21 +Equ REACT_SERVS_INTR_MAINT_FLOW_ID$ To 22