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
This commit is contained in:
parent
8f339106bd
commit
9d4ae3c5b3
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
LSL2/STPROC/TEST_DANIEL3.txt
|
LSL2/STPROC/TEST_DANIEL*.txt
|
||||||
LSL2/STPROC/TEST_DAKOTA.txt
|
LSL2/STPROC/TEST_DAKOTA.txt
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
},
|
},
|
||||||
"body": {
|
"body": {
|
||||||
"record1": {
|
"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<i>\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<i>\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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
389
LSL2/OIWIN/NDW_FEATURE_FLAGS.json
Normal file
389
LSL2/OIWIN/NDW_FEATURE_FLAGS.json
Normal file
@ -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>": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
103
LSL2/POPUP/FEATURE_FLAGS_HISTORY.json
Normal file
103
LSL2/POPUP/FEATURE_FLAGS_HISTORY.json
Normal file
@ -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>": "<<default>>",
|
||||||
|
"<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>": "<<default>>",
|
||||||
|
"<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>": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -630,7 +630,6 @@ TechSign:
|
|||||||
Action = Get_Property(@Window:'.TECH_SIGN', 'TEXT')
|
Action = Get_Property(@Window:'.TECH_SIGN', 'TEXT')
|
||||||
|
|
||||||
If Action EQ 'Sign' then
|
If Action EQ 'Sign' then
|
||||||
|
|
||||||
TechSig = Get_Property(@WINDOW:'.TECH_SIG','DEFPROP')
|
TechSig = Get_Property(@WINDOW:'.TECH_SIG','DEFPROP')
|
||||||
|
|
||||||
IF TechSig NE '' THEN
|
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' ) )
|
Valid = Dialog_Box('QUOTE_SIG_PWD_ENTRY', @WINDOW, @USER4:@VM:XLATE( 'LSL_USERS', @USER4, LSL_USERS_PASSWORD$, 'X' ) )
|
||||||
|
|
||||||
If Valid then
|
If Valid then
|
||||||
|
Def = ""
|
||||||
|
Def<MCAPTION$> = "Signing Reactor Log..."
|
||||||
|
Def<MCOL$> = -2
|
||||||
|
Def<MROW$> = -2
|
||||||
|
Def<MTYPE$> = "U"
|
||||||
|
MsgUp = Msg(@window, Def)
|
||||||
|
|
||||||
SuccessfulSign = Reactor_Log_Services('SignReactorLog', ReactorLogNo, @USER4)
|
SuccessfulSign = Reactor_Log_Services('SignReactorLog', ReactorLogNo, @USER4)
|
||||||
|
|
||||||
|
Msg(@window, MsgUp) ;* take down the message
|
||||||
|
|
||||||
If Not(SuccessfulSign) then
|
If Not(SuccessfulSign) then
|
||||||
Error_Services('DisplayError')
|
Error_Services('DisplayError')
|
||||||
ActiveRlNicaOrderIds = Nica_Orders_Services('GetActiveOrders', 'REACTOR_LOG', ReactorLogNo)
|
ActiveRlNicaOrderIds = Nica_Orders_Services('GetActiveOrders', 'REACTOR_LOG', ReactorLogNo)
|
||||||
@ -722,7 +731,18 @@ TechSign:
|
|||||||
RLKey = Get_Property(@Window:'.REACTOR_LOG_NO', 'TEXT')
|
RLKey = Get_Property(@Window:'.REACTOR_LOG_NO', 'TEXT')
|
||||||
If RLKey NE '' then
|
If RLKey NE '' then
|
||||||
Set_Property(@Window, 'SAVEWARN', False$)
|
Set_Property(@Window, 'SAVEWARN', False$)
|
||||||
|
|
||||||
|
Def = ""
|
||||||
|
Def<MCAPTION$> = "Unsigning Reactor Log..."
|
||||||
|
Def<MCOL$> = -2
|
||||||
|
Def<MROW$> = -2
|
||||||
|
Def<MTYPE$> = "U"
|
||||||
|
MsgUp = Msg(@window, Def)
|
||||||
|
|
||||||
Reactor_Log_Services('ClearSignature', RLKey)
|
Reactor_Log_Services('ClearSignature', RLKey)
|
||||||
|
|
||||||
|
Msg(@window, MsgUp) ;* take down the message
|
||||||
|
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
Post_Event(@Window, 'READ')
|
Post_Event(@Window, 'READ')
|
||||||
end else
|
end else
|
||||||
|
@ -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 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 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 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 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
|
DECLARE FUNCTION Send_Message, Msg, Security_Check, RowExists, NextKey, End_Window, React_Servs_Services
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$INSERT MSG_EQUATES
|
$INSERT MSG_EQUATES
|
||||||
$INSERT APPCOLORS
|
$INSERT APPCOLORS
|
||||||
$INSERT LSL_USERS_EQU
|
$INSERT LSL_USERS_EQU
|
||||||
@ -44,40 +42,11 @@ BEGIN CASE
|
|||||||
CASE Event[1,3] = 'QBF' ; GOSUB Refresh
|
CASE Event[1,3] = 'QBF' ; GOSUB Refresh
|
||||||
END CASE
|
END CASE
|
||||||
|
|
||||||
|
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_SYSTEM' AND Event = 'CLICK' ; GOSUB LUSystem
|
||||||
CASE EntID = @WINDOW:'.LU_REACT_ITEM' AND Event = 'CLICK' ; GOSUB LUReactItem
|
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:'.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 1
|
CASE 1
|
||||||
|
|
||||||
ErrorMsg = 'Unknown Parameters ':EntID:' - ':Event:' passed to commuter'
|
ErrorMsg = 'Unknown Parameters ':EntID:' - ':Event:' passed to commuter'
|
||||||
@ -92,357 +61,176 @@ END
|
|||||||
RETURN Result
|
RETURN Result
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Create:
|
Create:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
|
IF NOT(Security_Check('React Servs',Read$)) THEN
|
||||||
IF NOT(Security_Check('React Servs',Read$)) THEN
|
Security_Err_Msg('React Servs',Read$)
|
||||||
Security_Err_Msg('React Servs',Read$)
|
void = End_Window( @WINDOW, '' )
|
||||||
void = End_Window( @WINDOW, '' )
|
RETURN
|
||||||
RETURN
|
END
|
||||||
END
|
|
||||||
|
IF NOT(Security_Check('React Servs',Edit$)) THEN
|
||||||
IF NOT(Security_Check('React Servs',Edit$)) THEN
|
Security_Err_Msg('React Servs',Edit$)
|
||||||
Security_Err_Msg('React Servs',Edit$)
|
END
|
||||||
END
|
|
||||||
|
ReactMetrics = React_Servs_Services('GetReactMetrics')
|
||||||
ReactMetrics = React_Servs_Services('GetReactMetrics')
|
Set_Property(@Window:'.ASSOC_METRICS', 'LIST', ReactMetrics)
|
||||||
Set_Property(@Window:'.ASSOC_METRICS', 'LIST', ReactMetrics)
|
|
||||||
|
obj_Appwindow('Create',@WINDOW)
|
||||||
obj_Appwindow('Create',@WINDOW)
|
|
||||||
|
GOSUB Refresh
|
||||||
|
|
||||||
GOSUB Refresh
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Clear:
|
Clear:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
Send_Event(@WINDOW,'PAGE',1)
|
Send_Event(@WINDOW,'PAGE',1)
|
||||||
|
|
||||||
|
IF Get_Property(@WINDOW,'@READONLY') THEN
|
||||||
IF Get_Property(@WINDOW,'@READONLY') THEN
|
obj_AppWindow('ReadOnly',@RM:1) ;* Reenables data bound controls
|
||||||
obj_AppWindow('ReadOnly',@RM:1) ;* Reenables data bound controls
|
Set_Property(@WINDOW,'@READONLY',0) ;* Clear flag on window
|
||||||
Set_Property(@WINDOW,'@READONLY',0) ;* Clear flag on window
|
END
|
||||||
END
|
|
||||||
|
* GOSUB EnableFlowCode
|
||||||
|
* React_Servs_Events(@Window, 'READ')
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Refresh:
|
Refresh:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
/*
|
* QBF buttons
|
||||||
|
|
||||||
* * * * * Samples * * * * * *
|
Ctrls = @WINDOW:'.QBF_FIRST_FIX':@RM ; Props = 'ENABLED':@RM
|
||||||
|
Ctrls := @WINDOW:'.QBF_PREV_FIX':@RM ; Props := 'ENABLED':@RM
|
||||||
ACStatus = Get_Property(@WINDOW:'.AC_STATUS','TEXT')
|
Ctrls := @WINDOW:'.QBF_ABS_FIX':@RM ; Props := 'ENABLED':@RM
|
||||||
IF ACStatus NE '' THEN
|
Ctrls := @WINDOW:'.QBF_NEXT_FIX':@RM ; Props := 'ENABLED':@RM
|
||||||
IF ACStatus[1,1] = 'C' THEN
|
Ctrls := @WINDOW:'.QBF_LAST_FIX':@RM ; Props := 'ENABLED':@RM
|
||||||
Set_Property(@WINDOW:'.AC_STATUS','BACKCOLOR',RED$)
|
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
|
END ELSE
|
||||||
Set_Property(@WINDOW:'.AC_STATUS','BACKCOLOR',GREEN$)
|
Vals = 1:@RM:1:@RM:1:@RM:1:@RM:1:@RM:1
|
||||||
END
|
END
|
||||||
END
|
|
||||||
|
Set_Property(Ctrls,Props,Vals)
|
||||||
Captive = Get_Property(@WINDOW:'.CAPTIVE','CHECK')
|
|
||||||
Consignment = Get_Property(@WINDOW:'.CONSIGNMENT','CHECK')
|
* Turn edit table symbolic column backgrounds to green
|
||||||
|
|
||||||
BEGIN CASE
|
ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow
|
||||||
CASE Captive
|
|
||||||
Set_Property(@WINDOW:'.ORD_TYPE','BACKCOLOR',LTBLUE$)
|
ETCtrls = ETSymbolics<1>
|
||||||
|
ETCols = ETSymbolics<2>
|
||||||
CASE Consignment
|
|
||||||
Set_Property(@WINDOW:'.ORD_TYPE','BACKCOLOR',YELLOW$)
|
FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '')
|
||||||
|
ETCtrl = ETCtrls<1,I>
|
||||||
CASE 1
|
ETList = Get_Property(ETCtrl,'LIST')
|
||||||
Set_Property(@WINDOW:'.ORD_TYPE','BACKCOLOR',GREEN$)
|
FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '')
|
||||||
|
IF ETList<Line,1> NE '' THEN
|
||||||
END CASE
|
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
|
||||||
Ctrls = @WINDOW:'.CHANGE_VISION_ORD_NO':@RM ; Props = 'ENABLED':@RM
|
END
|
||||||
Ctrls := @WINDOW:'.CUST_BUTTON':@RM ; Props := 'ENABLED':@RM
|
NEXT I
|
||||||
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<Line,1> 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
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Page:
|
Page:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
obj_Appwindow('Page')
|
obj_Appwindow('Page')
|
||||||
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
LUSystem:
|
LUSystem:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
ReturnCtrl = Parm1
|
ReturnCtrl = Parm1
|
||||||
|
|
||||||
IF ReturnCtrl NE '' THEN
|
IF ReturnCtrl NE '' THEN
|
||||||
ReturnCtrl = @WINDOW:'.':ReturnCtrl
|
ReturnCtrl = @WINDOW:'.':ReturnCtrl
|
||||||
END ELSE
|
END ELSE
|
||||||
ReturnCtrl = ''
|
ReturnCtrl = ''
|
||||||
END
|
END
|
||||||
|
|
||||||
|
Set_Status(0)
|
||||||
Set_Status(0)
|
|
||||||
|
ReactSystem = Popup(@WINDOW,'','REACT_SYSTEM')
|
||||||
ReactSystem = Popup(@WINDOW,'','REACT_SYSTEM')
|
|
||||||
|
IF ReactSystem = '' THEN RETURN
|
||||||
IF ReactSystem = '' THEN RETURN
|
|
||||||
|
obj_Appwindow('LUValReturn',ReactSystem:@RM:ReturnCtrl)
|
||||||
obj_Appwindow('LUValReturn',ReactSystem:@RM:ReturnCtrl)
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
LUREactItem:
|
LUREactItem:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
ReturnCtrl = Parm1
|
ReturnCtrl = Parm1
|
||||||
|
|
||||||
IF ReturnCtrl NE '' THEN
|
IF ReturnCtrl NE '' THEN
|
||||||
ReturnCtrl = @WINDOW:'.':ReturnCtrl
|
ReturnCtrl = @WINDOW:'.':ReturnCtrl
|
||||||
END ELSE
|
END ELSE
|
||||||
ReturnCtrl = ''
|
ReturnCtrl = ''
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
Set_Status(0)
|
Set_Status(0)
|
||||||
|
|
||||||
ReactItem = Popup(@WINDOW,'','REACT_ITEMS')
|
ReactItem = Popup(@WINDOW,'','REACT_ITEMS')
|
||||||
|
|
||||||
IF ReactItem = '' THEN RETURN
|
IF ReactItem = '' THEN RETURN
|
||||||
|
|
||||||
obj_Appwindow('LUValReturn',ReactItem:@RM:ReturnCtrl)
|
obj_Appwindow('LUValReturn',ReactItem:@RM:ReturnCtrl)
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
LUReactItemType:
|
LUReactItemType:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
ReturnCtrl = Parm1
|
ReturnCtrl = Parm1
|
||||||
|
|
||||||
IF ReturnCtrl NE '' THEN
|
IF ReturnCtrl NE '' THEN
|
||||||
ReturnCtrl = @WINDOW:'.':ReturnCtrl
|
ReturnCtrl = @WINDOW:'.':ReturnCtrl
|
||||||
END ELSE
|
END ELSE
|
||||||
ErrorMsg = 'ReturnCtrl not specified'
|
ErrorMsg = 'ReturnCtrl not specified'
|
||||||
RETURN
|
RETURN
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
RetVal = Popup(@WINDOW,'','REACT_ITEM_TYPE')
|
RetVal = Popup(@WINDOW,'','REACT_ITEM_TYPE')
|
||||||
|
|
||||||
IF RetVal = '' THEN RETURN
|
IF RetVal = '' THEN RETURN
|
||||||
|
|
||||||
obj_Appwindow('LUValReturn',RetVal:@RM:ReturnCtrl)
|
obj_Appwindow('LUValReturn',RetVal:@RM:ReturnCtrl)
|
||||||
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Read:
|
Read:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
/*
|
GOSUB Refresh
|
||||||
|
|
||||||
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<i>
|
|
||||||
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<i>
|
|
||||||
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
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
@ -450,195 +238,41 @@ RETURN
|
|||||||
Write:
|
Write:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
/*
|
Result = 1
|
||||||
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
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Delete:
|
Delete:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
IF Security_Check('React Servs',Delete$ ) THEN
|
IF Security_Check('React Servs',Delete$ ) THEN
|
||||||
Result = 1 ;* Proceed with delete
|
Result = 1 ;* Proceed with delete
|
||||||
END ELSE
|
END ELSE
|
||||||
Security_Err_Msg('React Servs',Delete$)
|
Security_Err_Msg('React Servs',Delete$)
|
||||||
Result = 0 ;* Stop event chain (and delete)
|
Result = 0 ;* Stop event chain (and delete)
|
||||||
END
|
END
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Close:
|
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
|
obj_Notes('Inbox',@USER4) ;* Checks for any new messages
|
||||||
IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
|
|
||||||
Send_Event(@WINDOW,'WRITE')
|
obj_Appwindow('CardReturn',@WINDOW)
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
||||||
RETURN
|
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
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ $INSERT RLIST_EQUATES
|
|||||||
$INSERT CLEAN_INSP_EQUATES
|
$INSERT CLEAN_INSP_EQUATES
|
||||||
$INSERT TOOL_PARMS_EQUATES
|
$INSERT TOOL_PARMS_EQUATES
|
||||||
$INSERT SERVICES_EQUATES
|
$INSERT SERVICES_EQUATES
|
||||||
|
$INSERT FEATURE_FLAGS_EQUATES
|
||||||
|
|
||||||
EQU COL$QA_MET_PHASE_MIN TO 17
|
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 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 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 SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array
|
||||||
Declare function Development_Services
|
Declare function Development_Services, Datetime
|
||||||
|
|
||||||
GoToService
|
GoToService
|
||||||
|
|
||||||
@ -632,6 +633,59 @@ Service DeployRoutine(StoredProcNames)
|
|||||||
end service
|
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<RowIndex, 1> = KeyId
|
||||||
|
FeatureFlagArray<RowIndex, 2> = Rec<FEATURE_FLAGS.FEATURE_DESCRIPTION$>
|
||||||
|
FeatureFlagArray<RowIndex, 3> = Rec<FEATURE_FLAGS.ENABLED$>
|
||||||
|
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<FEATURE_FLAGS.ENABLED$> = ModifyState
|
||||||
|
FeatureRec<FEATURE_FLAGS.MODIFY_USER$, -1> = ModifyUser
|
||||||
|
FeatureRec<FEATURE_FLAGS.MODIFY_DTM$, -1> = Datetime()
|
||||||
|
FeatureRec<FEATURE_FLAGS.MODIFY_STATE$, -1> = ModifyState
|
||||||
|
FeatureRec<FEATURE_FLAGS.MODIFY_COMMENT$, -1> = 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
|
// Internal GoSubs
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -642,4 +696,3 @@ ClearCursors:
|
|||||||
Next counter
|
Next counter
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -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 Environment_Services, Memory_Services, SRP_List, SRP_FastArray, SRP_Array, Database_Services
|
||||||
Declare function Active_Directory_Services, SRP_Send_Mail, RTI_GetNetworkUserName, Utility
|
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 subroutine Environment_Services, Memory_Services, SRP_List, SRP_FastArray, Database_Services, GetTempPath
|
||||||
|
Declare function GetEnvironmentVariable
|
||||||
|
|
||||||
GoToService else
|
GoToService else
|
||||||
Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
|
Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
|
||||||
@ -537,6 +538,21 @@ Service GetIfxEmailServer()
|
|||||||
|
|
||||||
end service
|
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
|
// Internal GoSubs
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
172
LSL2/STPROC/NDW_FEATURE_FLAGS_EVENTS.txt
Normal file
172
LSL2/STPROC/NDW_FEATURE_FLAGS_EVENTS.txt
Normal file
@ -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<PDISPLAY$> = 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
|
||||||
|
|
@ -301,6 +301,10 @@ Event WINDOW.CREATE(CreateParam)
|
|||||||
Set_Property(@Window:'.MENU.MATERIAL.FQA_LABEL_CHECK', 'VISIBLE', 1)
|
Set_Property(@Window:'.MENU.MATERIAL.FQA_LABEL_CHECK', 'VISIBLE', 1)
|
||||||
end
|
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 * * * * * * * * * * * *
|
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")
|
Set_Property(@Window:".OLE_SNOOZE", "OLE.Icon", "BMPS\do-not-disturb-mode.png")
|
||||||
@ -845,7 +849,3 @@ FixFont:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
233
LSL2/STPROC/NICA_ORDERS_CHECKLISTS_ACTIONS.txt
Normal file
233
LSL2/STPROC/NICA_ORDERS_CHECKLISTS_ACTIONS.txt
Normal file
@ -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<NICA_ORDERS.ORDER_CHECKLIST_IDS$>
|
||||||
|
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<NICA_ORDERS.ORDER_CHECKLIST_IDS$> = 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
|
||||||
|
|
@ -27,11 +27,13 @@ $Insert SERVICE_SETUP
|
|||||||
$Insert REACTOR_EQUATES
|
$Insert REACTOR_EQUATES
|
||||||
$Insert REACTOR_LOG_EQUATES
|
$Insert REACTOR_LOG_EQUATES
|
||||||
$Insert NICA_ORDERS_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 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 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')
|
Machine = Environment_Services('GetServer')
|
||||||
LogDate = Oconv(Date(), 'D4/')
|
LogDate = Oconv(Date(), 'D4/')
|
||||||
@ -49,6 +51,7 @@ Options BOOLEAN = True$, False$
|
|||||||
Options ENTITY_TYPES = 'REACTOR','REACTOR_LOG'
|
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_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 ORDER_STATUSES = 'new','creating','not-started','in-progress','cancelled','done'
|
||||||
|
Options REACTOR_TYPES = 'ASM','ASM+','HTR','EPP'
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// SERVICES
|
// SERVICES
|
||||||
@ -101,7 +104,7 @@ End Service
|
|||||||
|
|
||||||
|
|
||||||
Service GetOrderUpdates()
|
Service GetOrderUpdates()
|
||||||
|
|
||||||
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
|
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
|
||||||
Lock hSysLists, ServiceKeyID then
|
Lock hSysLists, ServiceKeyID then
|
||||||
ActiveOrderIds = Nica_Orders_Services('GetActiveOrders')
|
ActiveOrderIds = Nica_Orders_Services('GetActiveOrders')
|
||||||
@ -117,7 +120,6 @@ end service
|
|||||||
|
|
||||||
Service UpdateNicaFlags()
|
Service UpdateNicaFlags()
|
||||||
|
|
||||||
rv = ''
|
|
||||||
ErrCode = ''
|
ErrCode = ''
|
||||||
ReactNos = Reactor_Services('GetReactorNumbers')
|
ReactNos = Reactor_Services('GetReactorNumbers')
|
||||||
Open 'REACTOR' to hReactor then
|
Open 'REACTOR' to hReactor then
|
||||||
@ -125,6 +127,7 @@ Service UpdateNicaFlags()
|
|||||||
For each ReactNo in ReactNos using @FM
|
For each ReactNo in ReactNos using @FM
|
||||||
ProveInActive = Reactor_Services('GetProveInActive', ReactNo)
|
ProveInActive = Reactor_Services('GetProveInActive', ReactNo)
|
||||||
HgCVChecklistActive = (Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'IQS_HGCV_ALARM') NE '')
|
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
|
Open 'REACTOR' to hReactor then
|
||||||
ReadV CacheProveInActive from hReactor, ReactNo, REACTOR_PROVE_IN_ACTIVE$ then
|
ReadV CacheProveInActive from hReactor, ReactNo, REACTOR_PROVE_IN_ACTIVE$ then
|
||||||
If CacheProveInActive NE ProveInActive then
|
If CacheProveInActive NE ProveInActive then
|
||||||
@ -142,6 +145,14 @@ Service UpdateNicaFlags()
|
|||||||
end
|
end
|
||||||
end
|
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
|
end
|
||||||
CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactNo, 'REACT_MODE_KEY_IDS', 'X')
|
CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactNo, 'REACT_MODE_KEY_IDS', 'X')
|
||||||
CurrModeKey = CurrModeKey[-1, 'B':@VM]
|
CurrModeKey = CurrModeKey[-1, 'B':@VM]
|
||||||
@ -171,7 +182,7 @@ Service GetActiveOrders(EntityType=ENTITY_TYPES, EntityId, OrderTypes=ORDER_TYPE
|
|||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES)
|
Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES, OrderFlows)
|
||||||
|
|
||||||
ErrorMsg = ''
|
ErrorMsg = ''
|
||||||
EntityTypes = 'REACTOR,REACTOR_LOG'
|
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)
|
CurrActiveOrders = Nica_Orders_Services('GetActiveOrders', EntityType, EntityID, OrderType)
|
||||||
OrderTypeAlreadyActive = (CurrActiveOrders NE '')
|
OrderTypeAlreadyActive = (CurrActiveOrders NE '')
|
||||||
|
|
||||||
If OrderTypeAlreadyActive EQ False$ then
|
If ( (OrderTypeAlreadyActive EQ False$) or (OrderType EQ 'INTRUSIVE_MAINT') ) then
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
Case EntityType EQ 'REACTOR'
|
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')
|
ReactNo = Xlate(EntityType, EntityID, REACTOR_LOG_REACTOR$, 'X')
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
// Call the API
|
// Build request
|
||||||
NicaURL = Environment_Services("GetProveInApiUrl"):'/checklists?'
|
Body = ''
|
||||||
NicaURL := 'checklistType=':OrderType
|
NewSortedChecklistIds = ''
|
||||||
NicaURL := '&reactorNumber=':ReactNo
|
If OrderType NE 'INTRUSIVE_MAINT' then
|
||||||
|
// Original API endpoint just uses query params, no body.
|
||||||
Retries = 3
|
NicaURL = Environment_Services("GetProveInApiUrl"):'/checklists?'
|
||||||
BackoffSeconds = 1
|
NicaURL := 'checklistType=':OrderType
|
||||||
IsSuccessful = False$
|
NicaURL := '&reactorNumber=':ReactNo
|
||||||
|
end else
|
||||||
OrderId = ''
|
// New API endpoint uses JSON body instead of query params.
|
||||||
|
NicaURL = Environment_Services("GetProveInApiUrl"):'/order'
|
||||||
Loop
|
If OrderFlows NE '' then
|
||||||
while (IsSuccessful EQ False$ and Retries GT 0)
|
ReactorType = Xlate('REACTOR', ReactNo, REACTOR_REACT_TYPE$, 'X')
|
||||||
WaitSeconds = (3 - retries) * BackoffSeconds
|
NewChecklistIds = Nica_Orders_Services('GetFlowChecklistIds', OrderFlows, OrderType, ReactorType)
|
||||||
Delay(WaitSeconds)
|
// Get incomplete checklists and add them to the new order
|
||||||
|
If CurrActiveOrders NE '' then
|
||||||
Retries = Retries - 1
|
IncompleteChecklistIds = ''
|
||||||
|
Open 'DICT.NICA_ORDERS_CHECKLISTS' to hDict then
|
||||||
HttpResponseJson = Httpclient_Services('SendHTTPRequest', 'POST', NicaURL, 'Accept':@VM:'*/*', '', '', '', False$, False$, '', IgnoreCertErrors)
|
For each ActiveNicaOrdersId in CurrActiveOrders using @VM
|
||||||
If HttpResponseJson NE '' then
|
IncompleteOrderChecklistIds = ''
|
||||||
ObjResponseJson = ''
|
Flag = ''
|
||||||
If SRP_JSON(ObjResponseJson, 'Parse', HttpResponseJson) EQ '' then
|
Query = 'NICA_ORDERS_ID':@VM:ActiveNicaOrdersId:@FM
|
||||||
OrderId = SRP_JSON(ObjResponseJson, 'GetValue', 'id')
|
Query := 'IS_COMPLETE':@VM:False$:@FM
|
||||||
If OrderId NE '' then
|
Btree.Extract(Query, 'NICA_ORDERS_CHECKLISTS', hDict, IncompleteOrderChecklistIds, 'E', Flag)
|
||||||
Convert @Lower.Case to @Upper.Case in OrderId
|
If Flag EQ 0 then
|
||||||
NicaOrderRec = ''
|
IncompleteOrderChecklistIdsRot = SRP_Array('Rotate', IncompleteOrderChecklistIds, @VM, '*')
|
||||||
NicaOrderRec<NICA_ORDERS.ORDER_TYPE$> = OrderType
|
PrevChecklistIds = IncompleteOrderChecklistIdsRot<0, 2>
|
||||||
NicaOrderRec<NICA_ORDERS.ORDER_STATUS$> = SRP_JSON(ObjResponseJson, 'GetValue', 'state')
|
Swap '*' with @VM in PrevChecklistIds
|
||||||
NicaOrderRec<NICA_ORDERS.ENTITY_TYPE$> = EntityType
|
IncompleteChecklistIds<0, -1> = PrevChecklistIds
|
||||||
NicaOrderRec<NICA_ORDERS.ENTITY_ID$> = EntityID
|
|
||||||
NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete')
|
|
||||||
If NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> EQ False$ then
|
|
||||||
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'progressPercentage')
|
|
||||||
end else
|
|
||||||
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = 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
|
end
|
||||||
If ErrorMsg EQ '' then
|
Next ActiveNicaOrdersId
|
||||||
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
|
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
|
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
|
||||||
end else
|
end else
|
||||||
ErrorMsg = 'Error in ':Service:' service. Null JSON response returned from MesaProveInAPI.'
|
ErrorMsg = 'Error in ':Service:' service. Null Orderflows variable passed in.'
|
||||||
end
|
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
|
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<NICA_ORDERS.ORDER_TYPE$> = OrderType
|
||||||
|
NicaOrderRec<NICA_ORDERS.ORDER_STATUS$> = SRP_JSON(ObjResponseJson, 'GetValue', 'state')
|
||||||
|
NicaOrderRec<NICA_ORDERS.ENTITY_TYPE$> = EntityType
|
||||||
|
NicaOrderRec<NICA_ORDERS.ENTITY_ID$> = EntityID
|
||||||
|
NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete')
|
||||||
|
If NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> EQ False$ then
|
||||||
|
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'progressPercentage')
|
||||||
|
end else
|
||||||
|
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = 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<NICA_ORDERS_CHECKLISTS.IS_COMPLETE$> = 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'
|
StatusName = 'CreateNicaOrder'
|
||||||
If IsSuccessful then
|
If IsSuccessful then
|
||||||
LogData = ''
|
LogData = ''
|
||||||
@ -308,7 +394,7 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES)
|
|||||||
end else
|
end else
|
||||||
ErrorMsg = 'Error encountered when attempting to create Nica in order for reactor ':ReactNo:' of type ':OrderType
|
ErrorMsg = 'Error encountered when attempting to create Nica in order for reactor ':ReactNo:' of type ':OrderType
|
||||||
Mona_Services('SendBufferedStatus', MonAResource, StatusName, 'Critical')
|
Mona_Services('SendBufferedStatus', MonAResource, StatusName, 'Critical')
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
ErrorMsg = 'Error encountered when attempting to create Nica order for entity ':EntityType:' ' :EntityID:' of type ':OrderType:'. Active order already exists.'
|
ErrorMsg = 'Error encountered when attempting to create Nica order for entity ':EntityType:' ' :EntityID:' of type ':OrderType:'. Active order already exists.'
|
||||||
end
|
end
|
||||||
@ -438,11 +524,7 @@ Service CancelOrder(OrderId)
|
|||||||
SRP_JSON(ObjResponseJson, 'Release')
|
SRP_JSON(ObjResponseJson, 'Release')
|
||||||
Repeat
|
Repeat
|
||||||
|
|
||||||
If Environment_Services('IsProd') then
|
MonaResource = Environment_Services('GetEnvironmentVariable', 'MonaNicaIntegrationServiceGroup')
|
||||||
MonAResource = 'GRP_OPENINSIGHT_MES_OP_FE_MESAPROVEINAPI'
|
|
||||||
end else
|
|
||||||
MonAResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_MESAPROVEINAPI_DEV'
|
|
||||||
end
|
|
||||||
StatusName = 'CancelNicaOrder'
|
StatusName = 'CancelNicaOrder'
|
||||||
If ( (IsSuccessful EQ True$) and (Response NE 'error') and (ErrorMsg EQ '') ) then
|
If ( (IsSuccessful EQ True$) and (Response NE 'error') and (ErrorMsg EQ '') ) then
|
||||||
LogData = ''
|
LogData = ''
|
||||||
@ -556,11 +638,8 @@ Service GetOrderStatusUpdate(OrderId)
|
|||||||
Loop
|
Loop
|
||||||
while (IsSuccessful EQ False$ and Retries GT 0)
|
while (IsSuccessful EQ False$ and Retries GT 0)
|
||||||
WaitSeconds = (3 - Retries) * BackoffSeconds
|
WaitSeconds = (3 - Retries) * BackoffSeconds
|
||||||
|
|
||||||
Delay(WaitSeconds)
|
Delay(WaitSeconds)
|
||||||
|
|
||||||
Retries = Retries - 1
|
Retries = Retries - 1
|
||||||
|
|
||||||
HttpResponseJson = Httpclient_Services('SendHTTPRequest', 'GET', ProveInUrl, 'Accept':@VM:'*/*', '', '', '', False$, False$, '', IgnoreCertErrors)
|
HttpResponseJson = Httpclient_Services('SendHTTPRequest', 'GET', ProveInUrl, 'Accept':@VM:'*/*', '', '', '', False$, False$, '', IgnoreCertErrors)
|
||||||
|
|
||||||
If HttpResponseJson NE '' then
|
If HttpResponseJson NE '' then
|
||||||
@ -576,15 +655,64 @@ Service GetOrderStatusUpdate(OrderId)
|
|||||||
end
|
end
|
||||||
Database_Services('WriteDataRow', 'NICA_ORDERS', OrderId, NicaOrderRec, True$, False$, False$)
|
Database_Services('WriteDataRow', 'NICA_ORDERS', OrderId, NicaOrderRec, True$, False$, False$)
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
|
OrderType = NicaOrderRec<NICA_ORDERS.ORDER_TYPE$>
|
||||||
|
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<NICA_ORDERS_CHECKLISTS.IS_COMPLETE$> = IsComplete
|
||||||
|
NicaOrdersChecklistsRec<NICA_ORDERS_CHECKLISTS.STATE$> = 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
|
If IsComplete EQ True$ then
|
||||||
OrderType = NicaOrderRec<NICA_ORDERS.ORDER_TYPE$>
|
|
||||||
If ( (OrderType _EQC 'IDLE') and (EntityType _EQC 'REACTOR') ) then
|
If ( (OrderType _EQC 'IDLE') and (EntityType _EQC 'REACTOR') ) then
|
||||||
Open 'REACTOR' to hReactor then
|
Open 'REACTOR' to hReactor then
|
||||||
WriteV False$ on hReactor, ReactNo, REACTOR_IDLE_STARTUP_REQUIRED$ else
|
WriteV False$ on hReactor, ReactNo, REACTOR_IDLE_STARTUP_REQUIRED$ else
|
||||||
ErrorMsg = 'Error in ':Service:' service. Error setting IDLE_STARTUP_REQUIRED flag in REACTOR record.'
|
ErrorMsg = 'Error in ':Service:' service. Error setting IDLE_STARTUP_REQUIRED flag in REACTOR record.'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
If ErrorMsg EQ '' then Response = True$
|
If ErrorMsg EQ '' then Response = True$
|
||||||
end else
|
end else
|
||||||
Response = False$
|
Response = False$
|
||||||
@ -594,16 +722,11 @@ Service GetOrderStatusUpdate(OrderId)
|
|||||||
ErrorMsg = Error_Services('GetMessage')
|
ErrorMsg = Error_Services('GetMessage')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
SRP_JSON(ObjResponseJson, 'Release')
|
||||||
end
|
end
|
||||||
SRP_JSON(ObjResponseJson, 'Release')
|
|
||||||
Repeat
|
Repeat
|
||||||
|
|
||||||
If Environment_Services('IsProd') then
|
MonaResource = Environment_Services('GetEnvironmentVariable', 'MonaNicaIntegrationServiceGroup')
|
||||||
MonAResource = 'GRP_OPENINSIGHT_MES_OP_FE_MESAPROVEINAPI'
|
|
||||||
end else
|
|
||||||
MonAResource = 'GRP_OPENINSIGHT_MES_OP_FE_DEV_MESAPROVEINAPI_DEV'
|
|
||||||
end
|
|
||||||
|
|
||||||
StatusName = 'GetNicaOrderUpdate'
|
StatusName = 'GetNicaOrderUpdate'
|
||||||
If IsSuccessful and Response NE 'error' then
|
If IsSuccessful and Response NE 'error' then
|
||||||
LogData = ''
|
LogData = ''
|
||||||
@ -641,8 +764,50 @@ Service GetOrderStatusUpdate(OrderId)
|
|||||||
end service
|
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
|
// Internal GoSubs
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ $Insert REACT_ITEM_EQUATES
|
|||||||
$Insert RDS_EQUATES
|
$Insert RDS_EQUATES
|
||||||
$Insert REACT_SERVS_EQUATES
|
$Insert REACT_SERVS_EQUATES
|
||||||
$Insert REACTOR_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 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
|
Declare function obj_Calendar, NextKey, SRP_JSON, Datetime, Reactor_Services, React_Servs_Services, Logging_Services
|
||||||
@ -86,8 +87,6 @@ Service SignReactorLog(ReactorLogID, UserID)
|
|||||||
ErrCode = ''
|
ErrCode = ''
|
||||||
ErrorMsg = ''
|
ErrorMsg = ''
|
||||||
If RowExists('REACTOR_LOG', ReactorLogID) then
|
If RowExists('REACTOR_LOG', ReactorLogID) then
|
||||||
// Update any NICA checklist order statuses
|
|
||||||
Nica_Orders_Services('GetOrderUpdates')
|
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
If RowExists('LSL_USERS', UserID) then
|
If RowExists('LSL_USERS', UserID) then
|
||||||
ReactorLogRec = Database_Services('ReadDataRow', 'REACTOR_LOG', ReactorLogID)
|
ReactorLogRec = Database_Services('ReadDataRow', 'REACTOR_LOG', ReactorLogID)
|
||||||
@ -199,96 +198,110 @@ Service SignReactorLog(ReactorLogID, UserID)
|
|||||||
If ErrorMsg EQ '' then
|
If ErrorMsg EQ '' then
|
||||||
// Check reactor prevent maintenance records
|
// Check reactor prevent maintenance records
|
||||||
CurServices = ReactorLogRec<REACTOR_LOG_REACT_SERV_ID$>
|
CurServices = ReactorLogRec<REACTOR_LOG_REACT_SERV_ID$>
|
||||||
|
|
||||||
Loop
|
Loop
|
||||||
TestChar = CurServices[-1,1]
|
TestChar = CurServices[-1,1]
|
||||||
Until TestChar NE @VM or CurServices = ''
|
Until TestChar NE @VM or CurServices = ''
|
||||||
CurServices[-1,1] = ''
|
CurServices[-1,1] = ''
|
||||||
Repeat
|
Repeat
|
||||||
|
CCnt = COUNT(CurServices,@VM) + (CurServices NE '')
|
||||||
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
|
||||||
For N = 1 to CCnt
|
IntrMaintFlowCodes = React_Servs_Services('GetIntrMaintFlowIds', CurServices)
|
||||||
CurService = CurServices<1,N>
|
If IntrMaintFlowCodes NE '' then
|
||||||
|
// Create INTRUSIVE_MAINT NICA order
|
||||||
Open 'REACTOR_PM' to ReactorPMTable then
|
Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactorNo, 'INTRUSIVE_MAINT', IntrMaintFlowCodes)
|
||||||
|
If Error_Services('NoError') then
|
||||||
Open 'DICT.REACTOR_PM' to DictReactorPMTable then
|
LogFlows = IntrMaintFlowCodes
|
||||||
|
Convert @VM to ', ' in LogFlows
|
||||||
SearchStr = 'REACT_SERV_ID':@VM:CurService:@FM
|
Reactor_Log_Services('AddComment', ReactorNo, 'Intrusive Maintenance initiated for flow(s) ':LogFlows:'.', UserID)
|
||||||
SearchStr := 'REACTOR':@VM:ReactorNo:@FM
|
end else
|
||||||
SearchStr := 'COMPLETE_DATE':@VM:'':@FM
|
ErrorMsg = Error_Services('GetMessage')
|
||||||
|
|
||||||
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<REACTOR_PM_ENTRY_ID$> = UserID
|
|
||||||
NewPMRec<REACTOR_PM_ENTRY_DATE$> = Date()
|
|
||||||
NewPMRec<REACTOR_PM_REACTOR$> = ReactorNo
|
|
||||||
NewPMRec<REACTOR_PM_PREV_PM_COMP_DT$> = EndDate
|
|
||||||
NewPMRec<REACTOR_PM_DUE_DT$> = EndDate + PMDays
|
|
||||||
NewPMRec<REACTOR_PM_REACT_SERV_ID$> = CurService
|
|
||||||
NewPMRec<REACTOR_PM_ENTRY_RL_NO$> = 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
|
||||||
end else
|
|
||||||
ErrorMsg = 'Error in ':Service:' service. Error opening REACTOR_PM table.'
|
|
||||||
end
|
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<REACTOR_PM_ENTRY_ID$> = UserID
|
||||||
|
NewPMRec<REACTOR_PM_ENTRY_DATE$> = Date()
|
||||||
|
NewPMRec<REACTOR_PM_REACTOR$> = ReactorNo
|
||||||
|
NewPMRec<REACTOR_PM_PREV_PM_COMP_DT$> = EndDate
|
||||||
|
NewPMRec<REACTOR_PM_DUE_DT$> = EndDate + PMDays
|
||||||
|
NewPMRec<REACTOR_PM_REACT_SERV_ID$> = CurService
|
||||||
|
NewPMRec<REACTOR_PM_ENTRY_RL_NO$> = 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
|
end
|
||||||
end
|
end
|
||||||
@ -319,6 +332,8 @@ Service SignReactorLog(ReactorLogID, UserID)
|
|||||||
end
|
end
|
||||||
|
|
||||||
If ErrorMsg EQ '' then
|
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
|
// Set signature, end date, and end time
|
||||||
ReactorLogRec<REACTOR_LOG_TECH_SIG$> = UserID
|
ReactorLogRec<REACTOR_LOG_TECH_SIG$> = UserID
|
||||||
ReactorLogRec<REACTOR_LOG_END_DATE$> = Date()
|
ReactorLogRec<REACTOR_LOG_END_DATE$> = Date()
|
||||||
@ -349,6 +364,17 @@ Service ClearSignature(RLKey)
|
|||||||
RLRec<REACTOR_LOG_LO_NA$> = ''
|
RLRec<REACTOR_LOG_LO_NA$> = ''
|
||||||
RLRec<REACTOR_LOG_REACT_WFR_CNT_START$> = ''
|
RLRec<REACTOR_LOG_REACT_WFR_CNT_START$> = ''
|
||||||
Database_Services('WriteDataRow', 'REACTOR_LOG', RLKey, RLRec, True$, False$, False$)
|
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<REACTOR_LOG_REACTOR$>
|
||||||
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -52,6 +52,7 @@ $Insert WO_LOG_EQUATES
|
|||||||
$Insert REACTOR_DAILY_UPTIME_EQUATES
|
$Insert REACTOR_DAILY_UPTIME_EQUATES
|
||||||
$Insert REACT_LL_EQUATES
|
$Insert REACT_LL_EQUATES
|
||||||
$Insert IQS_VIOL_DATA_EQUATES
|
$Insert IQS_VIOL_DATA_EQUATES
|
||||||
|
$Insert FEATURE_FLAGS_EQUATES
|
||||||
|
|
||||||
Equ WOCust$ to 2
|
Equ WOCust$ to 2
|
||||||
|
|
||||||
@ -1884,8 +1885,8 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
|
|||||||
ErrorMsg = ''
|
ErrorMsg = ''
|
||||||
IF ForceModeChange NE True$ then ForceModeChange = False$
|
IF ForceModeChange NE True$ then ForceModeChange = False$
|
||||||
If ( (UserID NE '') and (ReactNo NE '') and (Mode NE '') and (ModeSubCat NE '')) then
|
If ( (UserID NE '') and (ReactNo NE '') and (Mode NE '') and (ModeSubCat NE '')) then
|
||||||
CurTime = time()
|
CurTime = Time()
|
||||||
CurDate = date()
|
CurDate = Date()
|
||||||
NGPrevModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactNo, REACTOR_CHILD_KEY_IDS_REACT_MODE_KEY_IDS$, 'X')<1, 1>
|
NGPrevModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactNo, REACTOR_CHILD_KEY_IDS_REACT_MODE_KEY_IDS$, 'X')<1, 1>
|
||||||
PrevModeRec = Reactor_Services('GetReactCurrModeRec', ReactNo)
|
PrevModeRec = Reactor_Services('GetReactCurrModeRec', ReactNo)
|
||||||
SelectedModeRec = Database_Services('ReadDataRow', 'REACTOR_MODES', Mode)
|
SelectedModeRec = Database_Services('ReadDataRow', 'REACTOR_MODES', Mode)
|
||||||
@ -1913,18 +1914,18 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
|
|||||||
CommentException = True$
|
CommentException = True$
|
||||||
|
|
||||||
End Case
|
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<REACTOR_MODES_MODE_CATEGORY$>
|
NewModeCategory = SelectedModeRec<REACTOR_MODES_MODE_CATEGORY$>
|
||||||
OldRlRecordKey = PrevModeRec<REACT_MODE_NG_START_RL_ID$>
|
OldRlRecordKey = PrevModeRec<REACT_MODE_NG_START_RL_ID$>
|
||||||
if Reactor_Log_Services('IsMaint', OldRlRecordKey) AND ForceModeChange EQ False$ then
|
If Reactor_Log_Services('IsMaint', OldRlRecordKey) AND ForceModeChange EQ False$ then
|
||||||
if (NOT(Reactor_Log_Services('IsSigned', OldRlRecordKey))) 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.'
|
ErrorMsg = 'The current mode cannot be changed until the technician has signed off on the Reactor Log.'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
ModeSubCatID = ''
|
ModeSubCatID = ''
|
||||||
LOCATE ModeSubCat in SelectedModeRec<REACTOR_MODES_SERVICE_CATEGORIES$> using @VM setting SvcPos then
|
Locate ModeSubCat in SelectedModeRec<REACTOR_MODES_SERVICE_CATEGORIES$> using @VM setting SvcPos then
|
||||||
NewModeSvcList = SelectedModeRec<REACTOR_MODES_SERVICE_CATEGORY_ID$>
|
NewModeSvcList = SelectedModeRec<REACTOR_MODES_SERVICE_CATEGORY_ID$>
|
||||||
ModeSubCatID = NewModeSvcList<1,SvcPos>
|
ModeSubCatID = NewModeSvcList<1,SvcPos>
|
||||||
end else
|
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
|
If ErrorMsg EQ '' and IdleStartupRequired and Mode[1, 2] EQ 'UP' then
|
||||||
ProveInTypes = Reactor_Services('GetActiveProveInTypes', ReactNo)
|
ProveInTypes = Reactor_Services('GetActiveProveInTypes', ReactNo)
|
||||||
IdleStartupActive = False$
|
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
|
If ProveInType EQ 'IDLE' then
|
||||||
IdleStartupActive = True$
|
IdleStartupActive = True$
|
||||||
end
|
end
|
||||||
@ -1978,6 +1979,17 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
|
|||||||
end
|
end
|
||||||
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 ErrorMsg EQ '' then
|
||||||
If Len(Mode) GT 10 and Mode[1, 10] EQ 'CHANGEOVER' then
|
If Len(Mode) GT 10 and Mode[1, 10] EQ 'CHANGEOVER' then
|
||||||
Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactNo, 'CHANGEOVER')
|
Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactNo, 'CHANGEOVER')
|
||||||
@ -3707,5 +3719,3 @@ ClearCursors:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -288,78 +288,109 @@ Event APPLY.CLICK()
|
|||||||
end else
|
end else
|
||||||
|
|
||||||
Error_Services('DisplayError')
|
Error_Services('DisplayError')
|
||||||
ActiveProveIn = Reactor_Services('GetProveInActive', ReactNo)
|
ReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactNo)
|
||||||
ActiveHgCVChecklists = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'IQS_HGCV_ALARM')
|
If Error_Services('NoError') then
|
||||||
HgCVChecklistActive = (ActiveHgCVChecklists NE '')
|
ActiveProveInOrder = ReactorRec<REACTOR_PROVE_IN_ACTIVE$>
|
||||||
|
ActiveHgCVOrder = ReactorRec<REACTOR_HGCV_CHECKLIST_ACTIVE$>
|
||||||
|
ActiveIntrMaintOrder = ReactorRec<REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$>
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
|
|
||||||
Case ActiveProveIn
|
|
||||||
|
|
||||||
OverrideGroups = 'LEAD':@VM:'SUPERVISOR'
|
Case ActiveProveInOrder
|
||||||
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)
|
OverrideGroups = 'LEAD':@VM:'SUPERVISOR'
|
||||||
Override = UserVerification<1>
|
UserMsg = "Reactor prove in must be processed in NICA. Override required from a lead or supervisor to bypass NICA."
|
||||||
If Override EQ True$ then
|
UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg)
|
||||||
ProveInOrderIds = Reactor_Services('GetActiveProveInOrderIds', ReactNo)
|
Override = UserVerification<1>
|
||||||
If (DCount(ProveInOrderIds, @VM) GT 1) then
|
If Override EQ True$ then
|
||||||
ProveInTypes = Xlate('NICA_ORDERS', ProveInOrderIds, 'ORDER_TYPE', 'X')
|
ProveInOrderIds = Reactor_Services('GetActiveProveInOrderIds', ReactNo)
|
||||||
OverrideData = Dialog_Box('PROVE_IN_OVERRIDE', @Window, ReactNo)
|
If (DCount(ProveInOrderIds, @VM) GT 1) then
|
||||||
ProveInTypesToCancel = OverrideData<1, 1>
|
ProveInTypes = Xlate('NICA_ORDERS', ProveInOrderIds, 'ORDER_TYPE', 'X')
|
||||||
ResponseComment = ''
|
OverrideData = Dialog_Box('PROVE_IN_OVERRIDE', @Window, ReactNo)
|
||||||
For each ProveInType in ProveInTypes using @VM setting Idx
|
ProveInTypesToCancel = OverrideData<1, 1>
|
||||||
Locate ProveInType in ProveInTypesToCancel using @VM setting Unused then
|
ResponseComment = ''
|
||||||
ProveInOrderId = ProveInOrderIds<0, Idx>
|
For each ProveInType in ProveInTypes using @VM setting Idx
|
||||||
Nica_Orders_Services('CancelOrder', ProveInOrderId)
|
Locate ProveInType in ProveInTypesToCancel using @VM setting Unused then
|
||||||
If ResponseComment NE '' then ResponseComment := ', '
|
ProveInOrderId = ProveInOrderIds<0, Idx>
|
||||||
ResponseComment := ProveInType
|
Nica_Orders_Services('CancelOrder', ProveInOrderId)
|
||||||
end
|
If ResponseComment NE '' then ResponseComment := ', '
|
||||||
Next ProveInType
|
ResponseComment := ProveInType
|
||||||
ResponseComment := ': '
|
end
|
||||||
ResponseComment := OverrideData<2, 1>
|
Next ProveInType
|
||||||
Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'REACTOR_PROVE_IN')
|
ResponseComment := ': '
|
||||||
Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText)
|
ResponseComment := OverrideData<2, 1>
|
||||||
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')
|
Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'REACTOR_PROVE_IN')
|
||||||
Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText)
|
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
|
end else
|
||||||
Message_Box(@Window, 'You must enter a comment greater than 4 letters!', 'Error', MSG_ICON_EXCLAM$)
|
Message_Box(@Window, 'You must enter a comment greater than 4 letters!', 'Error', MSG_ICON_EXCLAM$)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
Case ActiveIntrMaintOrder
|
||||||
Case HgCVChecklistActive
|
|
||||||
|
|
||||||
OverrideGroups = 'LEAD':@VM:'SUPERVISOR'
|
OverrideGroups = 'LEAD':@VM:'SUPERVISOR'
|
||||||
UserMsg = "HgCV OCAP Checklist must be completed in NICA. Override required from a lead or supervisor to bypass NICA."
|
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)
|
UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg)
|
||||||
Override = UserVerification<1>
|
Override = UserVerification<1>
|
||||||
If Override then
|
If Override then
|
||||||
|
|
||||||
ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2>
|
|
||||||
If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then
|
|
||||||
|
|
||||||
For each ActiveHgCVOrderId in ActiveHgCVChecklists using @VM
|
ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2>
|
||||||
Nica_Orders_Services('CancelOrder', ActiveHgCVOrderId)
|
If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then
|
||||||
Next ActiveHgCVChecklistId
|
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
|
||||||
Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText)
|
End_Dialog(@Window, NewMode)
|
||||||
If Error_Services('NoError') then
|
end
|
||||||
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 else
|
|
||||||
Message_Box(@Window, 'You must enter a comment greater than 4 letters!', 'Error', MSG_ICON_EXCLAM$)
|
|
||||||
end
|
end
|
||||||
end
|
|
||||||
End Case
|
End Case
|
||||||
|
end else
|
||||||
|
Error_Services('DisplayError')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -520,8 +551,3 @@ HideDropDownComments:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,12 +23,45 @@ Compile function React_Servs_Services(@Service, @Params)
|
|||||||
|
|
||||||
#pragma precomp SRP_PreCompiler
|
#pragma precomp SRP_PreCompiler
|
||||||
|
|
||||||
$Insert LOGICAL
|
$Insert SERVICE_SETUP
|
||||||
|
$Insert APP_INSERTS
|
||||||
$Insert RLIST_EQUATES
|
$Insert RLIST_EQUATES
|
||||||
$Insert REACT_SERVS_EQUATES
|
$Insert REACT_SERVS_EQUATES
|
||||||
|
|
||||||
Declare function Database_Services, Error_Services, SRP_JSON, React_Servs_Services
|
Equ NEW_EXIST$ To 0
|
||||||
Declare subroutine SRP_JSON, Error_Services, React_Servs_Services
|
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
|
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()
|
Service GetReactMetrics()
|
||||||
|
|
||||||
Response = ''
|
Response = ''
|
||||||
|
@ -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
|
|
||||||
|
|
||||||
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -1,9 +0,0 @@
|
|||||||
Function Test_Crisp5()
|
|
||||||
#pragma precomp SRP_PreCompiler
|
|
||||||
|
|
||||||
Debug
|
|
||||||
IF 1 EQ 1 then
|
|
||||||
a = 0
|
|
||||||
end
|
|
||||||
return
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -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<REACT_RUN_GAN_RECIPE$>
|
|
||||||
RRPart = Xlate('REACT_RUN', RDSNo, 'EPI_PART_NO', 'X')
|
|
||||||
RRScribes = Xlate('REACT_RUN', RDSNo, 'WFR_SCRIBES', 'X')
|
|
||||||
InWfrIDs = ReactRunRec<REACT_RUN_IN_WFR_ID$>
|
|
||||||
|
|
||||||
* 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<WO_WFR_GRADE$> = Grade
|
|
||||||
* WOWfrRec<WO_WFR_GAN_RUN_ID$> = RunID
|
|
||||||
* WOWfrRec<WO_WFR_POCKET$> = Pocket
|
|
||||||
* WOWfrRec<WO_WFR_SCRIBE$> = Scribe
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_BOX$> = RetainBox
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_SLOT$> = RetainSlot
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_LOC$> = CurrLoc
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_COMMENT$> = Comment
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_STATUS$> = Status
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_SIG$> = RetainSig
|
|
||||||
WOWfrRec<WO_WFR_RETAIN_DT$> = 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<REACT_RUN_GAN_RECIPE$>
|
|
||||||
RRPart = Xlate('REACT_RUN', RDSNo, 'EPI_PART_NO', 'X')
|
|
||||||
RRScribes = Xlate('REACT_RUN', RDSNo, 'WFR_SCRIBES', 'X')
|
|
||||||
InWfrIDs = ReactRunRec<REACT_RUN_IN_WFR_ID$>
|
|
||||||
|
|
||||||
* 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<WO_WFR_GRADE$> = Grade
|
|
||||||
* WOWfrRec<WO_WFR_GAN_RUN_ID$> = RunID
|
|
||||||
* WOWfrRec<WO_WFR_POCKET$> = Pocket
|
|
||||||
* WOWfrRec<WO_WFR_SCRIBE$> = Scribe
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_BOX$> = RetainBox
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_SLOT$> = RetainSlot
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_LOC$> = CurrLoc
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_COMMENT$> = Comment
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_STATUS$> = Status
|
|
||||||
* WOWfrRec<WO_WFR_RETAIN_SIG$> = RetainSig
|
|
||||||
WOWfrRec<WO_WFR_RETAIN_DT$> = RetainDate
|
|
||||||
Database_Services('WriteDataRow', 'WO_WFR', WfrID, WOWfrRec, True$, False$, True$)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
Next ExcelRow
|
|
||||||
end
|
|
||||||
Excel_Services('CloseDocument', RetainExcelHandle)
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
@ -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<MICON$> = '*' ; // Info icon
|
|
||||||
Msg(@Window, MsgStruct, 'OK', '', 'Success':@FM:'Report generated.')
|
|
||||||
end else
|
|
||||||
MsgStruct = ''
|
|
||||||
MsgStruct<MICON$> = '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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
@ -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
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -67,41 +67,31 @@ ChecklistButton:
|
|||||||
Message = ''
|
Message = ''
|
||||||
ReactorNo = CurrParm[-1, 'B_']
|
ReactorNo = CurrParm[-1, 'B_']
|
||||||
|
|
||||||
Status_ProveIn = Reactor_Services('GetProveInActive', ReactorNo)
|
|
||||||
|
|
||||||
Status_0311 = XLATE('REACTOR', ReactorNo, REACTOR_0311_ACTIVE$, 'X')
|
Status_0311 = XLATE('REACTOR', ReactorNo, REACTOR_0311_ACTIVE$, 'X')
|
||||||
|
|
||||||
If Status_0311 EQ '' then Status_0311 = False$
|
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')
|
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)
|
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: '
|
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 Status_0311 then ChecklistInfo<-1> = '0311 OCAP'
|
||||||
|
|
||||||
If ReactorPmOrderIds NE '' then
|
If ReactorPmOrderIds NE '' then
|
||||||
// Add each active reactor PM checklist order
|
|
||||||
For each ReactorPmOrderId in ReactorPmOrderIds using @VM setting vPos
|
For each ReactorPmOrderId in ReactorPmOrderIds using @VM setting vPos
|
||||||
ProgressPercentage = Xlate('NICA_ORDERS', ReactorPmOrderId, 'PROGRESS_PERCENTAGE', 'X')
|
ProgressPercentage = Xlate('NICA_ORDERS', ReactorPmOrderId, 'PROGRESS_PERCENTAGE', 'X')
|
||||||
ChecklistInfo<-1> = Xlate('NICA_ORDERS', ReactorPmOrderId, 'ORDER_TYPE', 'X') : '- ' : ProgressPercentage :'% Complete.'
|
ChecklistInfo<-1> = Xlate('NICA_ORDERS', ReactorPmOrderId, 'ORDER_TYPE', 'X') : '- ' : ProgressPercentage :'% Complete.'
|
||||||
Next RlPmType
|
Next RlPmType
|
||||||
end
|
end
|
||||||
|
|
||||||
If HgCVAlarmOrderIds NE '' then
|
If ReactorNicaOrders NE '' then
|
||||||
For each HgCVAlarmOrderId in HgCVAlarmOrderIds using @VM
|
For each NicaOrderId in ReactorNicaOrders using @VM
|
||||||
ProgressPercentage = Xlate('NICA_ORDERS', HgCVAlarmOrderId, 'PROGRESS_PERCENTAGE', 'X')
|
ProgressPercentage = Xlate('NICA_ORDERS', NicaOrderId, 'PROGRESS_PERCENTAGE', 'X')
|
||||||
ChecklistInfo<-1> = Xlate('NICA_ORDERS', HgCVAlarmOrderId, 'ORDER_TYPE', 'X') : '- ' : ProgressPercentage :'% Complete.'
|
ChecklistInfo<-1> = Xlate('NICA_ORDERS', NicaOrderId, 'ORDER_TYPE', 'X') : '- ' : ProgressPercentage :'% Complete.'
|
||||||
Next HgCVAlarmOrder
|
Next NicaOrderId
|
||||||
end
|
end
|
||||||
|
|
||||||
Swap @FM with CRLF$ in ChecklistInfo
|
Swap @FM with CRLF$ in ChecklistInfo
|
||||||
@ -269,10 +259,10 @@ FORM_CREATE:
|
|||||||
Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\Active_0311.png')
|
Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\Active_0311.png')
|
||||||
end
|
end
|
||||||
|
|
||||||
CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', I, 'REACT_MODE_KEY_IDS', 'X')
|
CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', I, 'REACT_MODE_KEY_IDS', 'X')
|
||||||
CurrModeKey = CurrModeKey[-1, 'B':@VM]
|
CurrModeKey = CurrModeKey[-1, 'B':@VM]
|
||||||
CurrRLKey = Xlate('REACT_MODE_NG', CurrModeKey, 'START_RL_ID', 'X')
|
CurrRLKey = Xlate('REACT_MODE_NG', CurrModeKey, 'START_RL_ID', 'X')
|
||||||
Status_ReactorPM = Xlate('REACTOR_LOG', CurrRLKey, REACTOR_LOG_CHECKLIST_ACTIVE$, 'X')
|
Status_ReactorPM = Xlate('REACTOR_LOG', CurrRLKey, REACTOR_LOG_CHECKLIST_ACTIVE$, 'X')
|
||||||
|
|
||||||
If Status_ReactorPM EQ '' then Status_ReactorPM = False$
|
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')
|
Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\ActiveProveIn.png')
|
||||||
end
|
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)
|
Set_Property(Window:'.OLE_PIC_':I,'VISIBLE', OlePicVisible)
|
||||||
|
|
||||||
IQSPicControl = @Window : '.OLE_PIC_IQS_': i
|
IQSPicControl = @Window : '.OLE_PIC_IQS_': i
|
||||||
@ -334,8 +329,3 @@ REACT_DETAIL:
|
|||||||
return
|
return
|
||||||
*===============================================================================================*
|
*===============================================================================================*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
17
LSL2/STPROCINS/FEATURE_FLAGS_EQUATES.txt
Normal file
17
LSL2/STPROCINS/FEATURE_FLAGS_EQUATES.txt
Normal file
@ -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
|
16
LSL2/STPROCINS/NICA_CHECKLISTS_EQUATES.txt
Normal file
16
LSL2/STPROCINS/NICA_CHECKLISTS_EQUATES.txt
Normal file
@ -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
|
13
LSL2/STPROCINS/NICA_ORDERS_CHECKLISTS_EQUATES.txt
Normal file
13
LSL2/STPROCINS/NICA_ORDERS_CHECKLISTS_EQUATES.txt
Normal file
@ -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
|
@ -7,12 +7,14 @@ compile insert NICA_ORDERS_EQUATES
|
|||||||
#ifndef __NICA_ORDERS_EQUATES__
|
#ifndef __NICA_ORDERS_EQUATES__
|
||||||
#define __NICA_ORDERS_EQUATES__
|
#define __NICA_ORDERS_EQUATES__
|
||||||
|
|
||||||
equ NICA_ORDERS.ORDER_TYPE$ to 1
|
equ NICA_ORDERS.ORDER_TYPE$ to 1
|
||||||
equ NICA_ORDERS.ORDER_STATUS$ to 2
|
equ NICA_ORDERS.ORDER_STATUS$ to 2
|
||||||
equ NICA_ORDERS.ENTITY_TYPE$ to 3
|
equ NICA_ORDERS.ENTITY_TYPE$ to 3
|
||||||
equ NICA_ORDERS.ENTITY_ID$ to 4
|
equ NICA_ORDERS.ENTITY_ID$ to 4
|
||||||
equ NICA_ORDERS.IS_COMPLETE$ to 5
|
equ NICA_ORDERS.IS_COMPLETE$ to 5
|
||||||
equ NICA_ORDERS.PROGRESS_PERCENTAGE$ to 6
|
equ NICA_ORDERS.PROGRESS_PERCENTAGE$ to 6
|
||||||
|
equ NICA_ORDERS.ORDER_CHECKLIST_IDS$ to 7
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,77 +6,79 @@ compile insert REACTOR_EQUATES
|
|||||||
----------------------------------------*/
|
----------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
Equ REACTOR_REACT_NO$ To 0
|
Equ REACTOR_REACT_NO$ To 0
|
||||||
Equ REACTOR_REACT_TYPE$ To 1
|
Equ REACTOR_REACT_TYPE$ To 1
|
||||||
Equ REACTOR_REDUCED_PRESS$ To 2
|
Equ REACTOR_REDUCED_PRESS$ To 2
|
||||||
Equ REACTOR_MFC_LOC$ To 3
|
Equ REACTOR_MFC_LOC$ To 3
|
||||||
Equ REACTOR_MFC_SERIAL$ To 4
|
Equ REACTOR_MFC_SERIAL$ To 4
|
||||||
Equ REACTOR_GAS_SRC$ To 5
|
Equ REACTOR_GAS_SRC$ To 5
|
||||||
Equ REACTOR_REACT_ASSIGNMENT$ To 6
|
Equ REACTOR_REACT_ASSIGNMENT$ To 6
|
||||||
Equ REACTOR_TEMP_TYPE$ To 7
|
Equ REACTOR_TEMP_TYPE$ To 7
|
||||||
Equ REACTOR_MFC_LOC_PN$ To 8
|
Equ REACTOR_MFC_LOC_PN$ To 8
|
||||||
Equ REACTOR_ESC_START_DTM$ To 9
|
Equ REACTOR_ESC_START_DTM$ To 9
|
||||||
Equ REACTOR_ACTIVE_ESCALATION$ To 10
|
Equ REACTOR_ACTIVE_ESCALATION$ To 10
|
||||||
Equ REACTOR_REACT_DESC$ To 11
|
Equ REACTOR_REACT_DESC$ To 11
|
||||||
Equ REACTOR_CURR_MODE_KEY$ To 12
|
Equ REACTOR_CURR_MODE_KEY$ To 12
|
||||||
Equ REACTOR_HEAVY_DOPE$ To 13
|
Equ REACTOR_HEAVY_DOPE$ To 13
|
||||||
Equ REACTOR_ATV$ To 14
|
Equ REACTOR_ATV$ To 14
|
||||||
Equ REACTOR_INJECT_TYPE$ To 15
|
Equ REACTOR_INJECT_TYPE$ To 15
|
||||||
Equ REACTOR_SOS_SENSORS$ To 16
|
Equ REACTOR_SOS_SENSORS$ To 16
|
||||||
Equ REACTOR_SERIAL_NO$ To 17
|
Equ REACTOR_SERIAL_NO$ To 17
|
||||||
Equ REACTOR_MFR_TYPE$ To 18
|
Equ REACTOR_MFR_TYPE$ To 18
|
||||||
Equ REACTOR_ASM_MFR_YEAR$ To 19
|
Equ REACTOR_ASM_MFR_YEAR$ To 19
|
||||||
Equ REACTOR_ARM_TYPE$ To 20
|
Equ REACTOR_ARM_TYPE$ To 20
|
||||||
Equ REACTOR_PROCESSOR$ To 21
|
Equ REACTOR_PROCESSOR$ To 21
|
||||||
Equ REACTOR_CONFIG_NOTES$ To 22
|
Equ REACTOR_CONFIG_NOTES$ To 22
|
||||||
Equ REACTOR_EXT_TYPE$ To 23
|
Equ REACTOR_EXT_TYPE$ To 23
|
||||||
Equ REACTOR_HTHF$ To 24
|
Equ REACTOR_HTHF$ To 24
|
||||||
Equ REACTOR_LAST_READ_HRS_DTM$ To 25
|
Equ REACTOR_LAST_READ_HRS_DTM$ To 25
|
||||||
Equ REACTOR_LAST_READ_WFRS_DTM$ To 26
|
Equ REACTOR_LAST_READ_WFRS_DTM$ To 26
|
||||||
Equ REACTOR_TUBE_SIZE$ To 27
|
Equ REACTOR_TUBE_SIZE$ To 27
|
||||||
Equ REACTOR_WAFER_SIZE$ To 27
|
Equ REACTOR_WAFER_SIZE$ To 27
|
||||||
Equ REACTOR_SUSC_POCKET_QTY$ To 28
|
Equ REACTOR_SUSC_POCKET_QTY$ To 28
|
||||||
Equ REACTOR_SUSC_POCKET_SIZE$ To 29
|
Equ REACTOR_SUSC_POCKET_SIZE$ To 29
|
||||||
Equ REACTOR_PICK_PLACE$ To 30
|
Equ REACTOR_PICK_PLACE$ To 30
|
||||||
Equ REACTOR_VENDOR$ To 31
|
Equ REACTOR_VENDOR$ To 31
|
||||||
Equ REACTOR_LOCATIONX$ To 32
|
Equ REACTOR_LOCATIONX$ To 32
|
||||||
Equ REACTOR_TOOL_WHX$ To 33
|
Equ REACTOR_TOOL_WHX$ To 33
|
||||||
Equ REACTOR_TOOL_LOCX$ To 34
|
Equ REACTOR_TOOL_LOCX$ To 34
|
||||||
Equ REACTOR_TOOL_ID$ To 35
|
Equ REACTOR_TOOL_ID$ To 35
|
||||||
Equ REACTOR_INJECT_SETTING$ To 36
|
Equ REACTOR_INJECT_SETTING$ To 36
|
||||||
Equ REACTOR_CURR_INST_GRAPHITE$ To 37
|
Equ REACTOR_CURR_INST_GRAPHITE$ To 37
|
||||||
Equ REACTOR_CURR_INST_ITEMS$ To 37
|
Equ REACTOR_CURR_INST_ITEMS$ To 37
|
||||||
Equ REACTOR_LL_DISABLED$ To 38
|
Equ REACTOR_LL_DISABLED$ To 38
|
||||||
Equ REACTOR_ACTIVE_LL_DISABLED$ To 39
|
Equ REACTOR_ACTIVE_LL_DISABLED$ To 39
|
||||||
Equ REACTOR_SUSC_CONFIG_ID$ To 40
|
Equ REACTOR_SUSC_CONFIG_ID$ To 40
|
||||||
Equ REACTOR_SECOND_CHAMBER$ To 41
|
Equ REACTOR_SECOND_CHAMBER$ To 41
|
||||||
Equ REACTOR_X_PREV_RUNS$ To 42
|
Equ REACTOR_X_PREV_RUNS$ To 42
|
||||||
Equ REACTOR_NCR_LIMIT$ To 43
|
Equ REACTOR_NCR_LIMIT$ To 43
|
||||||
Equ REACTOR_ZERO_NCR_MIN$ To 44
|
Equ REACTOR_ZERO_NCR_MIN$ To 44
|
||||||
Equ REACTOR_UCL_LIMIT$ To 45
|
Equ REACTOR_UCL_LIMIT$ To 45
|
||||||
Equ REACTOR_ROTR_FAIL_LIMIT$ To 46
|
Equ REACTOR_ROTR_FAIL_LIMIT$ To 46
|
||||||
Equ REACTOR_ROTR_STATUS$ To 47
|
Equ REACTOR_ROTR_STATUS$ To 47
|
||||||
Equ REACTOR_ROTR_STATUS_REASON$ To 48
|
Equ REACTOR_ROTR_STATUS_REASON$ To 48
|
||||||
Equ REACTOR_ENABLE_ROTR$ To 49
|
Equ REACTOR_ENABLE_ROTR$ To 49
|
||||||
Equ REACTOR_ROTR_STOP_RDS$ To 50
|
Equ REACTOR_ROTR_STOP_RDS$ To 50
|
||||||
Equ REACTOR_ROTR_MAINT_RESET$ To 51
|
Equ REACTOR_ROTR_MAINT_RESET$ To 51
|
||||||
Equ REACTOR_SCHED_EVENTS$ To 52
|
Equ REACTOR_SCHED_EVENTS$ To 52
|
||||||
Equ REACTOR_NOT_REPAIRABLE$ To 53
|
Equ REACTOR_NOT_REPAIRABLE$ To 53
|
||||||
Equ REACTOR_0311_ACTIVE$ To 54
|
Equ REACTOR_0311_ACTIVE$ To 54
|
||||||
Equ REACTOR_ROTR_OVERRIDE_COUNT$ To 55
|
Equ REACTOR_ROTR_OVERRIDE_COUNT$ To 55
|
||||||
Equ REACTOR_PREVIOUS_ROTR_STATUS_REASON$ To 56
|
Equ REACTOR_PREVIOUS_ROTR_STATUS_REASON$ To 56
|
||||||
Equ REACTOR_PREVIOUS_ROTR_OVERRIDE_RDS$ To 57
|
Equ REACTOR_PREVIOUS_ROTR_OVERRIDE_RDS$ To 57
|
||||||
Equ REACTOR_TUBE_BELL_JAR_THK$ To 58
|
Equ REACTOR_TUBE_BELL_JAR_THK$ To 58
|
||||||
Equ REACTOR_TUBE_BELL_JAR_WFR_CNT$ To 59
|
Equ REACTOR_TUBE_BELL_JAR_WFR_CNT$ To 59
|
||||||
Equ REACTOR_SUSC_THK$ To 60
|
Equ REACTOR_SUSC_THK$ To 60
|
||||||
Equ REACTOR_SUSC_WFR_CNT$ To 61
|
Equ REACTOR_SUSC_WFR_CNT$ To 61
|
||||||
Equ REACTOR_LOWER_QUARTZ_THK$ To 62
|
Equ REACTOR_LOWER_QUARTZ_THK$ To 62
|
||||||
Equ REACTOR_LOWER_QUARTZ_WFR$ To 63
|
Equ REACTOR_LOWER_QUARTZ_WFR$ To 63
|
||||||
Equ REACTOR_ARMS_WFR_CNT$ To 64
|
Equ REACTOR_ARMS_WFR_CNT$ To 64
|
||||||
Equ REACTOR_PROVE_IN_ACTIVE$ To 65
|
Equ REACTOR_PROVE_IN_ACTIVE$ To 65
|
||||||
Equ REACTOR_PROVE_IN_TYPE$ To 66
|
Equ REACTOR_PROVE_IN_TYPE$ To 66
|
||||||
Equ REACTOR_PROVE_IN_ORDER_ID$ To 67
|
Equ REACTOR_PROVE_IN_ORDER_ID$ To 67
|
||||||
Equ REACTOR_IDLE_STARTUP_REQUIRED$ To 68
|
Equ REACTOR_IDLE_STARTUP_REQUIRED$ To 68
|
||||||
Equ REACTOR_IQS_ALARM_DTM$ To 69
|
Equ REACTOR_IQS_ALARM_DTM$ To 69
|
||||||
Equ REACTOR_IQS_ALARM_TEST$ To 70
|
Equ REACTOR_IQS_ALARM_TEST$ To 70
|
||||||
Equ REACTOR_HGCV_CHECKLIST_ACTIVE$ To 71
|
Equ REACTOR_HGCV_CHECKLIST_ACTIVE$ To 71
|
||||||
|
Equ REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$ To 72
|
||||||
|
|
||||||
|
@ -6,28 +6,28 @@ compile insert REACT_SERVS_EQUATES
|
|||||||
----------------------------------------*/
|
----------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
Equ REACT_SERVS_SERV_ID$ To 0
|
Equ REACT_SERVS_SERV_ID$ To 0
|
||||||
Equ REACT_SERVS_DESCRIPTION$ To 1
|
Equ REACT_SERVS_DESCRIPTION$ To 1
|
||||||
Equ REACT_SERVS_ACTION$ To 2
|
Equ REACT_SERVS_ACTION$ To 2
|
||||||
Equ REACT_SERVS_ENTRY_ID$ To 3
|
Equ REACT_SERVS_ENTRY_ID$ To 3
|
||||||
Equ REACT_SERVS_ENTRY_DATE$ To 4
|
Equ REACT_SERVS_ENTRY_DATE$ To 4
|
||||||
Equ REACT_SERVS_INJECTOR_CHANGE$ To 5
|
Equ REACT_SERVS_INJECTOR_CHANGE$ To 5
|
||||||
Equ REACT_SERVS_PM_DAYS$ To 7
|
Equ REACT_SERVS_PM_DAYS$ To 7
|
||||||
Equ REACT_SERVS_REACT_SERV_CAT_ID$ To 8
|
Equ REACT_SERVS_REACT_SERV_CAT_ID$ To 8
|
||||||
Equ REACT_SERVS_GRAPHITE_OR_TUBE$ To 9
|
Equ REACT_SERVS_GRAPHITE_OR_TUBE$ To 9
|
||||||
Equ REACT_SERVS_REACT_ITEM_DESC$ To 9
|
Equ REACT_SERVS_REACT_ITEM_DESC$ To 9
|
||||||
Equ REACT_SERVS_REACT_ITEM_TYPE$ To 9
|
Equ REACT_SERVS_REACT_ITEM_TYPE$ To 9
|
||||||
Equ REACT_SERVS_STATUS$ To 10
|
Equ REACT_SERVS_STATUS$ To 10
|
||||||
Equ REACT_SERVS_INACTIVE_DATE$ To 11
|
Equ REACT_SERVS_INACTIVE_DATE$ To 11
|
||||||
Equ REACT_SERVS_TC_CHANGE_SERVICE$ To 12
|
Equ REACT_SERVS_TC_CHANGE_SERVICE$ To 12
|
||||||
Equ REACT_SERVS_REQ_ARM_WAND_DATA$ To 13
|
Equ REACT_SERVS_REQ_ARM_WAND_DATA$ To 13
|
||||||
Equ REACT_SERVS_SVC_DESC$ To 14
|
Equ REACT_SERVS_SVC_DESC$ To 14
|
||||||
Equ REACT_SERVS_REACT_ITEM$ To 15
|
Equ REACT_SERVS_REACT_ITEM$ To 15
|
||||||
Equ REACT_SERVS_REACT_GAS$ To 16
|
Equ REACT_SERVS_REACT_GAS$ To 16
|
||||||
Equ REACT_SERVS_REACT_TYPE$ To 17
|
Equ REACT_SERVS_REACT_TYPE$ To 17
|
||||||
Equ REACT_SERVS_REACT_SYSTEM$ To 18
|
Equ REACT_SERVS_REACT_SYSTEM$ To 18
|
||||||
Equ REACT_SERVS_NOTE_REQ$ To 19
|
Equ REACT_SERVS_NOTE_REQ$ To 19
|
||||||
Equ REACT_SERVS_ASSOC_METRICS$ To 20
|
Equ REACT_SERVS_ASSOC_METRICS$ To 20
|
||||||
Equ REACT_SERVS_IS_INTRUSIVE$ To 21
|
Equ REACT_SERVS_IS_INTRUSIVE$ To 21
|
||||||
|
Equ REACT_SERVS_INTR_MAINT_FLOW_ID$ To 22
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user