Compare commits
21 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e5f0e9b7f1 | ||
|
869787e0f3 | ||
|
38fc89dac6 | ||
|
614da8ad3b | ||
|
dcb61e220c | ||
|
117e5c8b4b | ||
|
25c608c9a6 | ||
|
31632e28aa | ||
|
03b0c8f606 | ||
|
6cfb6e521e | ||
|
481f083804 | ||
|
18919090d8 | ||
|
550f376a0b | ||
|
6aad8036e5 | ||
|
4fc7eb189b | ||
|
5e917e65ac | ||
|
97f3c3fce2 | ||
|
27d55d83a1 | ||
|
4e213ff253 | ||
292bc4646b | |||
|
ab55269f87 |
File diff suppressed because it is too large
Load Diff
675
LSL2/OIWIN/NDW_ACKNOWLEDGE_MESSAGE.json
Normal file
675
LSL2/OIWIN/NDW_ACKNOWLEDGE_MESSAGE.json
Normal file
@ -0,0 +1,675 @@
|
|||||||
|
{
|
||||||
|
"header": {
|
||||||
|
"version": 1,
|
||||||
|
"type": "record"
|
||||||
|
},
|
||||||
|
"body": {
|
||||||
|
"record1": {
|
||||||
|
"<1>": "1010",
|
||||||
|
"<2>": "3",
|
||||||
|
"<3>": ""
|
||||||
|
},
|
||||||
|
"record2": {
|
||||||
|
"<1>": {
|
||||||
|
"<1,1>": "NDW_ACKNOWLEDGE_MESSAGE",
|
||||||
|
"<1,2>": "",
|
||||||
|
"<1,3>": "WINDOW",
|
||||||
|
"<1,4>": "",
|
||||||
|
"<1,5>": "137",
|
||||||
|
"<1,6>": "173",
|
||||||
|
"<1,7>": "-765",
|
||||||
|
"<1,8>": "-539",
|
||||||
|
"<1,9>": "Process Message",
|
||||||
|
"<1,10>": {
|
||||||
|
"<1,10,1>": "0x84C80000",
|
||||||
|
"<1,10,2>": "0x101"
|
||||||
|
},
|
||||||
|
"<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>": "0"
|
||||||
|
},
|
||||||
|
"<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>": "2",
|
||||||
|
"<1,62,5>": "0",
|
||||||
|
"<1,62,6>": "0",
|
||||||
|
"<1,62,7>": "",
|
||||||
|
"<1,62,8>": "0.50",
|
||||||
|
"<1,62,9>": "5.00",
|
||||||
|
"<1,62,10>": "0.00"
|
||||||
|
},
|
||||||
|
"<1,63>": "",
|
||||||
|
"<1,64>": "",
|
||||||
|
"<1,65>": "",
|
||||||
|
"<1,66>": "",
|
||||||
|
"<1,67>": "",
|
||||||
|
"<1,68>": "",
|
||||||
|
"<1,69>": "",
|
||||||
|
"<1,70>": "",
|
||||||
|
"<1,71>": "",
|
||||||
|
"<1,72>": "",
|
||||||
|
"<1,73>": "",
|
||||||
|
"<1,74>": "",
|
||||||
|
"<1,75>": "",
|
||||||
|
"<1,76>": "",
|
||||||
|
"<1,77>": "",
|
||||||
|
"<1,78>": "",
|
||||||
|
"<1,79>": "",
|
||||||
|
"<1,80>": "",
|
||||||
|
"<1,81>": "",
|
||||||
|
"<1,82>": "",
|
||||||
|
"<1,83>": "",
|
||||||
|
"<1,84>": "",
|
||||||
|
"<1,85>": "",
|
||||||
|
"<1,86>": "",
|
||||||
|
"<1,87>": "",
|
||||||
|
"<1,88>": "",
|
||||||
|
"<1,89>": "",
|
||||||
|
"<1,90>": "",
|
||||||
|
"<1,91>": "",
|
||||||
|
"<1,92>": "",
|
||||||
|
"<1,93>": "",
|
||||||
|
"<1,94>": "",
|
||||||
|
"<1,95>": "",
|
||||||
|
"<1,96>": "",
|
||||||
|
"<1,97>": "",
|
||||||
|
"<1,98>": "",
|
||||||
|
"<1,99>": "",
|
||||||
|
"<1,100>": "",
|
||||||
|
"<1,101>": "",
|
||||||
|
"<1,102>": "",
|
||||||
|
"<1,103>": "",
|
||||||
|
"<1,104>": "",
|
||||||
|
"<1,105>": "",
|
||||||
|
"<1,106>": "0",
|
||||||
|
"<1,107>": "",
|
||||||
|
"<1,108>": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"record3": {
|
||||||
|
"<1>": {
|
||||||
|
"<1,1>": "EDB_DATA",
|
||||||
|
"<1,2>": "",
|
||||||
|
"<1,3>": "EDITBOX",
|
||||||
|
"<1,4>": "NDW_ACKNOWLEDGE_MESSAGE",
|
||||||
|
"<1,5>": "16",
|
||||||
|
"<1,6>": "12",
|
||||||
|
"<1,7>": "-17",
|
||||||
|
"<1,8>": "-48",
|
||||||
|
"<1,9>": "",
|
||||||
|
"<1,10>": {
|
||||||
|
"<1,10,1>": "0x56200840",
|
||||||
|
"<1,10,2>": "0x200"
|
||||||
|
},
|
||||||
|
"<1,11>": {
|
||||||
|
"<1,11,1>": "0xC400",
|
||||||
|
"<1,11,2>": "0x80000000"
|
||||||
|
},
|
||||||
|
"<1,12>": "3",
|
||||||
|
"<1,13>": {
|
||||||
|
"<1,13,1>": "-2",
|
||||||
|
"<1,13,2>": "-2",
|
||||||
|
"<1,13,3>": ""
|
||||||
|
},
|
||||||
|
"<1,14>": "-2",
|
||||||
|
"<1,15>": {
|
||||||
|
"<1,15,1>": {
|
||||||
|
"<1,15,1,1>": "Segoe UI",
|
||||||
|
"<1,15,1,2>": "-15",
|
||||||
|
"<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,19>": "",
|
||||||
|
"<1,20>": "",
|
||||||
|
"<1,21>": "",
|
||||||
|
"<1,22>": "",
|
||||||
|
"<1,23>": "",
|
||||||
|
"<1,24>": "",
|
||||||
|
"<1,25>": "",
|
||||||
|
"<1,26>": "",
|
||||||
|
"<1,27>": "",
|
||||||
|
"<1,28>": "<<None>>",
|
||||||
|
"<1,29>": "<<None>>",
|
||||||
|
"<1,30>": "",
|
||||||
|
"<1,31>": "0",
|
||||||
|
"<1,32>": "",
|
||||||
|
"<1,33>": "",
|
||||||
|
"<1,34>": "",
|
||||||
|
"<1,35>": "",
|
||||||
|
"<1,36>": "",
|
||||||
|
"<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,56>": "",
|
||||||
|
"<1,57>": "",
|
||||||
|
"<1,58>": "",
|
||||||
|
"<1,59>": "",
|
||||||
|
"<1,60>": "",
|
||||||
|
"<1,61>": "",
|
||||||
|
"<1,62>": "0",
|
||||||
|
"<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>": ""
|
||||||
|
},
|
||||||
|
"<2>": {
|
||||||
|
"<2,1>": "PUB_OK",
|
||||||
|
"<2,2>": "",
|
||||||
|
"<2,3>": "PUSHBUTTON",
|
||||||
|
"<2,4>": "NDW_ACKNOWLEDGE_MESSAGE",
|
||||||
|
"<2,5>": "-184",
|
||||||
|
"<2,6>": "-37",
|
||||||
|
"<2,7>": "80",
|
||||||
|
"<2,8>": "24",
|
||||||
|
"<2,9>": "&OK",
|
||||||
|
"<2,10>": {
|
||||||
|
"<2,10,1>": "0x56000300",
|
||||||
|
"<2,10,2>": "0x0"
|
||||||
|
},
|
||||||
|
"<2,11>": {
|
||||||
|
"<2,11,1>": "0x3005",
|
||||||
|
"<2,11,2>": "0x80000000"
|
||||||
|
},
|
||||||
|
"<2,12>": "1",
|
||||||
|
"<2,13>": {
|
||||||
|
"<2,13,1>": "-2",
|
||||||
|
"<2,13,2>": "-2",
|
||||||
|
"<2,13,3>": "0"
|
||||||
|
},
|
||||||
|
"<2,14>": "-2",
|
||||||
|
"<2,15>": {
|
||||||
|
"<2,15,1>": {
|
||||||
|
"<2,15,1,1>": "Segoe UI",
|
||||||
|
"<2,15,1,2>": "-12",
|
||||||
|
"<2,15,1,3>": "400",
|
||||||
|
"<2,15,1,4>": "0",
|
||||||
|
"<2,15,1,5>": "0",
|
||||||
|
"<2,15,1,6>": "0",
|
||||||
|
"<2,15,1,7>": "1",
|
||||||
|
"<2,15,1,8>": "0",
|
||||||
|
"<2,15,1,9>": "0",
|
||||||
|
"<2,15,1,10>": "0",
|
||||||
|
"<2,15,1,11>": "0",
|
||||||
|
"<2,15,1,12>": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"<2,16>": "",
|
||||||
|
"<2,17>": "",
|
||||||
|
"<2,18>": {
|
||||||
|
"<2,18,1>": {
|
||||||
|
"<2,18,1,1>": "X",
|
||||||
|
"<2,18,1,2>": "EXECUTE",
|
||||||
|
"<2,18,1,3>": "@WINDOW_EVENTS",
|
||||||
|
"<2,18,1,4>": {
|
||||||
|
"<2,18,1,4,1>": "@SELF",
|
||||||
|
"<2,18,1,4,2>": "@EVENT",
|
||||||
|
"<2,18,1,4,3>": "@PARAM1",
|
||||||
|
"<2,18,1,4,4>": "@PARAM2",
|
||||||
|
"<2,18,1,4,5>": "@PARAM3",
|
||||||
|
"<2,18,1,4,6>": "@PARAM4",
|
||||||
|
"<2,18,1,4,7>": "@PARAM5",
|
||||||
|
"<2,18,1,4,8>": "@PARAM6"
|
||||||
|
},
|
||||||
|
"<2,18,1,5>": "",
|
||||||
|
"<2,18,1,6>": "",
|
||||||
|
"<2,18,1,7>": "",
|
||||||
|
"<2,18,1,8>": "",
|
||||||
|
"<2,18,1,9>": "",
|
||||||
|
"<2,18,1,10>": "",
|
||||||
|
"<2,18,1,11>": "",
|
||||||
|
"<2,18,1,12>": "",
|
||||||
|
"<2,18,1,13>": "",
|
||||||
|
"<2,18,1,14>": "",
|
||||||
|
"<2,18,1,15>": "COMMEVT",
|
||||||
|
"<2,18,1,16>": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"<2,19>": "CLICK",
|
||||||
|
"<2,20>": "",
|
||||||
|
"<2,21>": "",
|
||||||
|
"<2,22>": "",
|
||||||
|
"<2,23>": "",
|
||||||
|
"<2,24>": "",
|
||||||
|
"<2,25>": "",
|
||||||
|
"<2,26>": "",
|
||||||
|
"<2,27>": "",
|
||||||
|
"<2,28>": "",
|
||||||
|
"<2,29>": "",
|
||||||
|
"<2,30>": "",
|
||||||
|
"<2,31>": "",
|
||||||
|
"<2,32>": "",
|
||||||
|
"<2,33>": "",
|
||||||
|
"<2,34>": "",
|
||||||
|
"<2,35>": "",
|
||||||
|
"<2,36>": "",
|
||||||
|
"<2,37>": "",
|
||||||
|
"<2,38>": "",
|
||||||
|
"<2,39>": "",
|
||||||
|
"<2,40>": "-1",
|
||||||
|
"<2,41>": {
|
||||||
|
"<2,41,1>": "",
|
||||||
|
"<2,41,2>": "-1"
|
||||||
|
},
|
||||||
|
"<2,42>": "",
|
||||||
|
"<2,43>": "",
|
||||||
|
"<2,44>": "",
|
||||||
|
"<2,45>": "",
|
||||||
|
"<2,46>": "",
|
||||||
|
"<2,47>": "",
|
||||||
|
"<2,48>": "",
|
||||||
|
"<2,49>": "",
|
||||||
|
"<2,50>": "",
|
||||||
|
"<2,51>": "",
|
||||||
|
"<2,52>": "",
|
||||||
|
"<2,53>": "",
|
||||||
|
"<2,54>": "",
|
||||||
|
"<2,55>": "",
|
||||||
|
"<2,56>": "",
|
||||||
|
"<2,57>": "",
|
||||||
|
"<2,58>": "",
|
||||||
|
"<2,59>": "",
|
||||||
|
"<2,60>": "",
|
||||||
|
"<2,61>": "",
|
||||||
|
"<2,62>": "0",
|
||||||
|
"<2,63>": "",
|
||||||
|
"<2,64>": {
|
||||||
|
"<2,64,1>": "-2",
|
||||||
|
"<2,64,2>": "-2",
|
||||||
|
"<2,64,3>": "0"
|
||||||
|
},
|
||||||
|
"<2,65>": "-2",
|
||||||
|
"<2,66>": "",
|
||||||
|
"<2,67>": "",
|
||||||
|
"<2,68>": "",
|
||||||
|
"<2,69>": "",
|
||||||
|
"<2,70>": "",
|
||||||
|
"<2,71>": "",
|
||||||
|
"<2,72>": "",
|
||||||
|
"<2,73>": "",
|
||||||
|
"<2,74>": "",
|
||||||
|
"<2,75>": "",
|
||||||
|
"<2,76>": "",
|
||||||
|
"<2,77>": "",
|
||||||
|
"<2,78>": "",
|
||||||
|
"<2,79>": "",
|
||||||
|
"<2,80>": "",
|
||||||
|
"<2,81>": "",
|
||||||
|
"<2,82>": "",
|
||||||
|
"<2,83>": "",
|
||||||
|
"<2,84>": "",
|
||||||
|
"<2,85>": "",
|
||||||
|
"<2,86>": "",
|
||||||
|
"<2,87>": "",
|
||||||
|
"<2,88>": "",
|
||||||
|
"<2,89>": "",
|
||||||
|
"<2,90>": "0",
|
||||||
|
"<2,91>": "0",
|
||||||
|
"<2,92>": "",
|
||||||
|
"<2,93>": "",
|
||||||
|
"<2,94>": "",
|
||||||
|
"<2,95>": "",
|
||||||
|
"<2,96>": "",
|
||||||
|
"<2,97>": "",
|
||||||
|
"<2,98>": "",
|
||||||
|
"<2,99>": "",
|
||||||
|
"<2,100>": "",
|
||||||
|
"<2,101>": "",
|
||||||
|
"<2,102>": "",
|
||||||
|
"<2,103>": "",
|
||||||
|
"<2,104>": "",
|
||||||
|
"<2,105>": "",
|
||||||
|
"<2,106>": "",
|
||||||
|
"<2,107>": "",
|
||||||
|
"<2,108>": ""
|
||||||
|
},
|
||||||
|
"<3>": {
|
||||||
|
"<3,1>": "PUB_CANCEL",
|
||||||
|
"<3,2>": "",
|
||||||
|
"<3,3>": "PUSHBUTTON",
|
||||||
|
"<3,4>": "NDW_ACKNOWLEDGE_MESSAGE",
|
||||||
|
"<3,5>": "-97",
|
||||||
|
"<3,6>": "-37",
|
||||||
|
"<3,7>": "80",
|
||||||
|
"<3,8>": "24",
|
||||||
|
"<3,9>": "&Cancel",
|
||||||
|
"<3,10>": {
|
||||||
|
"<3,10,1>": "0x56000300",
|
||||||
|
"<3,10,2>": "0x0"
|
||||||
|
},
|
||||||
|
"<3,11>": {
|
||||||
|
"<3,11,1>": "0x3002",
|
||||||
|
"<3,11,2>": "0x80000000"
|
||||||
|
},
|
||||||
|
"<3,12>": "2",
|
||||||
|
"<3,13>": {
|
||||||
|
"<3,13,1>": "-2",
|
||||||
|
"<3,13,2>": "-2",
|
||||||
|
"<3,13,3>": "0"
|
||||||
|
},
|
||||||
|
"<3,14>": "-2",
|
||||||
|
"<3,15>": {
|
||||||
|
"<3,15,1>": {
|
||||||
|
"<3,15,1,1>": "Segoe UI",
|
||||||
|
"<3,15,1,2>": "-12",
|
||||||
|
"<3,15,1,3>": "400",
|
||||||
|
"<3,15,1,4>": "0",
|
||||||
|
"<3,15,1,5>": "0",
|
||||||
|
"<3,15,1,6>": "0",
|
||||||
|
"<3,15,1,7>": "1",
|
||||||
|
"<3,15,1,8>": "0",
|
||||||
|
"<3,15,1,9>": "0",
|
||||||
|
"<3,15,1,10>": "0",
|
||||||
|
"<3,15,1,11>": "0",
|
||||||
|
"<3,15,1,12>": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"<3,16>": "",
|
||||||
|
"<3,17>": "",
|
||||||
|
"<3,18>": {
|
||||||
|
"<3,18,1>": {
|
||||||
|
"<3,18,1,1>": "X",
|
||||||
|
"<3,18,1,2>": "EXECUTE",
|
||||||
|
"<3,18,1,3>": "@WINDOW_EVENTS",
|
||||||
|
"<3,18,1,4>": {
|
||||||
|
"<3,18,1,4,1>": "@SELF",
|
||||||
|
"<3,18,1,4,2>": "@EVENT",
|
||||||
|
"<3,18,1,4,3>": "@PARAM1",
|
||||||
|
"<3,18,1,4,4>": "@PARAM2",
|
||||||
|
"<3,18,1,4,5>": "@PARAM3",
|
||||||
|
"<3,18,1,4,6>": "@PARAM4",
|
||||||
|
"<3,18,1,4,7>": "@PARAM5",
|
||||||
|
"<3,18,1,4,8>": "@PARAM6"
|
||||||
|
},
|
||||||
|
"<3,18,1,5>": "",
|
||||||
|
"<3,18,1,6>": "",
|
||||||
|
"<3,18,1,7>": "",
|
||||||
|
"<3,18,1,8>": "",
|
||||||
|
"<3,18,1,9>": "",
|
||||||
|
"<3,18,1,10>": "",
|
||||||
|
"<3,18,1,11>": "",
|
||||||
|
"<3,18,1,12>": "",
|
||||||
|
"<3,18,1,13>": "",
|
||||||
|
"<3,18,1,14>": "",
|
||||||
|
"<3,18,1,15>": "COMMEVT",
|
||||||
|
"<3,18,1,16>": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"<3,19>": "CLICK",
|
||||||
|
"<3,20>": "",
|
||||||
|
"<3,21>": "",
|
||||||
|
"<3,22>": "",
|
||||||
|
"<3,23>": "",
|
||||||
|
"<3,24>": "",
|
||||||
|
"<3,25>": "",
|
||||||
|
"<3,26>": "",
|
||||||
|
"<3,27>": "",
|
||||||
|
"<3,28>": "",
|
||||||
|
"<3,29>": "",
|
||||||
|
"<3,30>": "",
|
||||||
|
"<3,31>": "",
|
||||||
|
"<3,32>": "",
|
||||||
|
"<3,33>": "",
|
||||||
|
"<3,34>": "",
|
||||||
|
"<3,35>": "",
|
||||||
|
"<3,36>": "",
|
||||||
|
"<3,37>": "",
|
||||||
|
"<3,38>": "",
|
||||||
|
"<3,39>": "",
|
||||||
|
"<3,40>": "-1",
|
||||||
|
"<3,41>": {
|
||||||
|
"<3,41,1>": "",
|
||||||
|
"<3,41,2>": "-1"
|
||||||
|
},
|
||||||
|
"<3,42>": "",
|
||||||
|
"<3,43>": "",
|
||||||
|
"<3,44>": "",
|
||||||
|
"<3,45>": "",
|
||||||
|
"<3,46>": "",
|
||||||
|
"<3,47>": "",
|
||||||
|
"<3,48>": "",
|
||||||
|
"<3,49>": "",
|
||||||
|
"<3,50>": "",
|
||||||
|
"<3,51>": "",
|
||||||
|
"<3,52>": "",
|
||||||
|
"<3,53>": "",
|
||||||
|
"<3,54>": "",
|
||||||
|
"<3,55>": "",
|
||||||
|
"<3,56>": "",
|
||||||
|
"<3,57>": "",
|
||||||
|
"<3,58>": "",
|
||||||
|
"<3,59>": "",
|
||||||
|
"<3,60>": "",
|
||||||
|
"<3,61>": "",
|
||||||
|
"<3,62>": "0",
|
||||||
|
"<3,63>": "",
|
||||||
|
"<3,64>": {
|
||||||
|
"<3,64,1>": "-2",
|
||||||
|
"<3,64,2>": "-2",
|
||||||
|
"<3,64,3>": "0"
|
||||||
|
},
|
||||||
|
"<3,65>": "-2",
|
||||||
|
"<3,66>": "",
|
||||||
|
"<3,67>": "",
|
||||||
|
"<3,68>": "",
|
||||||
|
"<3,69>": "",
|
||||||
|
"<3,70>": "",
|
||||||
|
"<3,71>": "",
|
||||||
|
"<3,72>": "",
|
||||||
|
"<3,73>": "",
|
||||||
|
"<3,74>": "",
|
||||||
|
"<3,75>": "",
|
||||||
|
"<3,76>": "",
|
||||||
|
"<3,77>": "",
|
||||||
|
"<3,78>": "",
|
||||||
|
"<3,79>": "",
|
||||||
|
"<3,80>": "",
|
||||||
|
"<3,81>": "",
|
||||||
|
"<3,82>": "",
|
||||||
|
"<3,83>": "",
|
||||||
|
"<3,84>": "",
|
||||||
|
"<3,85>": "",
|
||||||
|
"<3,86>": "",
|
||||||
|
"<3,87>": "",
|
||||||
|
"<3,88>": "",
|
||||||
|
"<3,89>": "",
|
||||||
|
"<3,90>": "0",
|
||||||
|
"<3,91>": "0",
|
||||||
|
"<3,92>": "",
|
||||||
|
"<3,93>": "",
|
||||||
|
"<3,94>": "",
|
||||||
|
"<3,95>": "",
|
||||||
|
"<3,96>": "",
|
||||||
|
"<3,97>": "",
|
||||||
|
"<3,98>": "",
|
||||||
|
"<3,99>": "",
|
||||||
|
"<3,100>": "",
|
||||||
|
"<3,101>": "",
|
||||||
|
"<3,102>": "",
|
||||||
|
"<3,103>": "",
|
||||||
|
"<3,104>": "",
|
||||||
|
"<3,105>": "",
|
||||||
|
"<3,106>": "",
|
||||||
|
"<3,107>": "",
|
||||||
|
"<3,108>": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"record4": {
|
||||||
|
"<1>": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -2738,7 +2738,7 @@
|
|||||||
"<1,1,6>": "",
|
"<1,1,6>": "",
|
||||||
"<1,1,7>": "",
|
"<1,1,7>": "",
|
||||||
"<1,1,8>": "",
|
"<1,1,8>": "",
|
||||||
"<1,1,9>": "273"
|
"<1,1,9>": "274"
|
||||||
},
|
},
|
||||||
"<1,2>": {
|
"<1,2>": {
|
||||||
"<1,2,1>": "POPUP",
|
"<1,2,1>": "POPUP",
|
||||||
@ -7802,7 +7802,7 @@
|
|||||||
},
|
},
|
||||||
"<1,232>": {
|
"<1,232>": {
|
||||||
"<1,232,1>": "POPUP",
|
"<1,232,1>": "POPUP",
|
||||||
"<1,232,2>": "8",
|
"<1,232,2>": "9",
|
||||||
"<1,232,3>": "ADM.TOOLS",
|
"<1,232,3>": "ADM.TOOLS",
|
||||||
"<1,232,4>": "Tools",
|
"<1,232,4>": "Tools",
|
||||||
"<1,232,5>": "0",
|
"<1,232,5>": "0",
|
||||||
@ -7999,15 +7999,15 @@
|
|||||||
"<1,240,20>": ""
|
"<1,240,20>": ""
|
||||||
},
|
},
|
||||||
"<1,241>": {
|
"<1,241>": {
|
||||||
"<1,241,1>": "POPUP",
|
"<1,241,1>": "ITEM",
|
||||||
"<1,241,2>": "3",
|
"<1,241,2>": "",
|
||||||
"<1,241,3>": "ADM.WAREHOUSE",
|
"<1,241,3>": "ADM.TOOLS.PRS_STAGE_DEFAULTS",
|
||||||
"<1,241,4>": "Warehouse",
|
"<1,241,4>": "PRS Stage Defaults",
|
||||||
"<1,241,5>": "0",
|
"<1,241,5>": "0",
|
||||||
"<1,241,6>": "0",
|
"<1,241,6>": "0",
|
||||||
"<1,241,7>": "0",
|
"<1,241,7>": "0",
|
||||||
"<1,241,8>": "0",
|
"<1,241,8>": "0",
|
||||||
"<1,241,9>": "Warehouse and Location Setup",
|
"<1,241,9>": "",
|
||||||
"<1,241,10>": "",
|
"<1,241,10>": "",
|
||||||
"<1,241,11>": "0",
|
"<1,241,11>": "0",
|
||||||
"<1,241,12>": "",
|
"<1,241,12>": "",
|
||||||
@ -8017,19 +8017,18 @@
|
|||||||
"<1,241,16>": "",
|
"<1,241,16>": "",
|
||||||
"<1,241,17>": "",
|
"<1,241,17>": "",
|
||||||
"<1,241,18>": "",
|
"<1,241,18>": "",
|
||||||
"<1,241,19>": "",
|
"<1,241,19>": ""
|
||||||
"<1,241,20>": ""
|
|
||||||
},
|
},
|
||||||
"<1,242>": {
|
"<1,242>": {
|
||||||
"<1,242,1>": "ITEM",
|
"<1,242,1>": "POPUP",
|
||||||
"<1,242,2>": "",
|
"<1,242,2>": "3",
|
||||||
"<1,242,3>": "ADM.WH.LOCATION",
|
"<1,242,3>": "ADM.WAREHOUSE",
|
||||||
"<1,242,4>": "Location",
|
"<1,242,4>": "Warehouse",
|
||||||
"<1,242,5>": "0",
|
"<1,242,5>": "0",
|
||||||
"<1,242,6>": "0",
|
"<1,242,6>": "0",
|
||||||
"<1,242,7>": "0",
|
"<1,242,7>": "0",
|
||||||
"<1,242,8>": "0",
|
"<1,242,8>": "0",
|
||||||
"<1,242,9>": "Inventory Locations",
|
"<1,242,9>": "Warehouse and Location Setup",
|
||||||
"<1,242,10>": "",
|
"<1,242,10>": "",
|
||||||
"<1,242,11>": "0",
|
"<1,242,11>": "0",
|
||||||
"<1,242,12>": "",
|
"<1,242,12>": "",
|
||||||
@ -8045,13 +8044,13 @@
|
|||||||
"<1,243>": {
|
"<1,243>": {
|
||||||
"<1,243,1>": "ITEM",
|
"<1,243,1>": "ITEM",
|
||||||
"<1,243,2>": "",
|
"<1,243,2>": "",
|
||||||
"<1,243,3>": "ADM.WH.WAREHOUSE",
|
"<1,243,3>": "ADM.WH.LOCATION",
|
||||||
"<1,243,4>": "Warehouse",
|
"<1,243,4>": "Location",
|
||||||
"<1,243,5>": "0",
|
"<1,243,5>": "0",
|
||||||
"<1,243,6>": "0",
|
"<1,243,6>": "0",
|
||||||
"<1,243,7>": "0",
|
"<1,243,7>": "0",
|
||||||
"<1,243,8>": "0",
|
"<1,243,8>": "0",
|
||||||
"<1,243,9>": "Warehouse Information",
|
"<1,243,9>": "Inventory Locations",
|
||||||
"<1,243,10>": "",
|
"<1,243,10>": "",
|
||||||
"<1,243,11>": "0",
|
"<1,243,11>": "0",
|
||||||
"<1,243,12>": "",
|
"<1,243,12>": "",
|
||||||
@ -8067,13 +8066,13 @@
|
|||||||
"<1,244>": {
|
"<1,244>": {
|
||||||
"<1,244,1>": "ITEM",
|
"<1,244,1>": "ITEM",
|
||||||
"<1,244,2>": "",
|
"<1,244,2>": "",
|
||||||
"<1,244,3>": "ADM.WH.GENERIC_BAR_CODE_LABEL",
|
"<1,244,3>": "ADM.WH.WAREHOUSE",
|
||||||
"<1,244,4>": "Generic Bar Code Label",
|
"<1,244,4>": "Warehouse",
|
||||||
"<1,244,5>": "0",
|
"<1,244,5>": "0",
|
||||||
"<1,244,6>": "0",
|
"<1,244,6>": "0",
|
||||||
"<1,244,7>": "0",
|
"<1,244,7>": "0",
|
||||||
"<1,244,8>": "0",
|
"<1,244,8>": "0",
|
||||||
"<1,244,9>": "Print Generic Bar Code Label",
|
"<1,244,9>": "Warehouse Information",
|
||||||
"<1,244,10>": "",
|
"<1,244,10>": "",
|
||||||
"<1,244,11>": "0",
|
"<1,244,11>": "0",
|
||||||
"<1,244,12>": "",
|
"<1,244,12>": "",
|
||||||
@ -8089,13 +8088,13 @@
|
|||||||
"<1,245>": {
|
"<1,245>": {
|
||||||
"<1,245,1>": "ITEM",
|
"<1,245,1>": "ITEM",
|
||||||
"<1,245,2>": "",
|
"<1,245,2>": "",
|
||||||
"<1,245,3>": "ADM.NIGHTLY_PROCESS_SETUP",
|
"<1,245,3>": "ADM.WH.GENERIC_BAR_CODE_LABEL",
|
||||||
"<1,245,4>": "&Nightly Process Setup",
|
"<1,245,4>": "Generic Bar Code Label",
|
||||||
"<1,245,5>": "0",
|
"<1,245,5>": "0",
|
||||||
"<1,245,6>": "0",
|
"<1,245,6>": "0",
|
||||||
"<1,245,7>": "1",
|
"<1,245,7>": "0",
|
||||||
"<1,245,8>": "0",
|
"<1,245,8>": "0",
|
||||||
"<1,245,9>": "",
|
"<1,245,9>": "Print Generic Bar Code Label",
|
||||||
"<1,245,10>": "",
|
"<1,245,10>": "",
|
||||||
"<1,245,11>": "0",
|
"<1,245,11>": "0",
|
||||||
"<1,245,12>": "",
|
"<1,245,12>": "",
|
||||||
@ -8111,8 +8110,8 @@
|
|||||||
"<1,246>": {
|
"<1,246>": {
|
||||||
"<1,246,1>": "ITEM",
|
"<1,246,1>": "ITEM",
|
||||||
"<1,246,2>": "",
|
"<1,246,2>": "",
|
||||||
"<1,246,3>": "ADM.RUN_NIGHTLY_PROCESS",
|
"<1,246,3>": "ADM.NIGHTLY_PROCESS_SETUP",
|
||||||
"<1,246,4>": "&Run Nightly Process",
|
"<1,246,4>": "&Nightly Process Setup",
|
||||||
"<1,246,5>": "0",
|
"<1,246,5>": "0",
|
||||||
"<1,246,6>": "0",
|
"<1,246,6>": "0",
|
||||||
"<1,246,7>": "1",
|
"<1,246,7>": "1",
|
||||||
@ -8133,13 +8132,13 @@
|
|||||||
"<1,247>": {
|
"<1,247>": {
|
||||||
"<1,247,1>": "ITEM",
|
"<1,247,1>": "ITEM",
|
||||||
"<1,247,2>": "",
|
"<1,247,2>": "",
|
||||||
"<1,247,3>": "ADMI.CUST_PROD_TEST_WAFER",
|
"<1,247,3>": "ADM.RUN_NIGHTLY_PROCESS",
|
||||||
"<1,247,4>": "Customer Prod Test Wafer",
|
"<1,247,4>": "&Run Nightly Process",
|
||||||
"<1,247,5>": "0",
|
"<1,247,5>": "0",
|
||||||
"<1,247,6>": "0",
|
"<1,247,6>": "0",
|
||||||
"<1,247,7>": "1",
|
"<1,247,7>": "1",
|
||||||
"<1,247,8>": "0",
|
"<1,247,8>": "0",
|
||||||
"<1,247,9>": "Enter or Update Customer Product Test Wafer Part Numbers",
|
"<1,247,9>": "",
|
||||||
"<1,247,10>": "",
|
"<1,247,10>": "",
|
||||||
"<1,247,11>": "0",
|
"<1,247,11>": "0",
|
||||||
"<1,247,12>": "",
|
"<1,247,12>": "",
|
||||||
@ -8153,15 +8152,15 @@
|
|||||||
"<1,247,20>": ""
|
"<1,247,20>": ""
|
||||||
},
|
},
|
||||||
"<1,248>": {
|
"<1,248>": {
|
||||||
"<1,248,1>": "POPUP",
|
"<1,248,1>": "ITEM",
|
||||||
"<1,248,2>": "2",
|
"<1,248,2>": "",
|
||||||
"<1,248,3>": "ADM.THRUPUT_TARGETS",
|
"<1,248,3>": "ADMI.CUST_PROD_TEST_WAFER",
|
||||||
"<1,248,4>": "&ThruPut Targets",
|
"<1,248,4>": "Customer Prod Test Wafer",
|
||||||
"<1,248,5>": "0",
|
"<1,248,5>": "0",
|
||||||
"<1,248,6>": "0",
|
"<1,248,6>": "0",
|
||||||
"<1,248,7>": "0",
|
"<1,248,7>": "1",
|
||||||
"<1,248,8>": "0",
|
"<1,248,8>": "0",
|
||||||
"<1,248,9>": "ThruPut Target Config",
|
"<1,248,9>": "Enter or Update Customer Product Test Wafer Part Numbers",
|
||||||
"<1,248,10>": "",
|
"<1,248,10>": "",
|
||||||
"<1,248,11>": "0",
|
"<1,248,11>": "0",
|
||||||
"<1,248,12>": "",
|
"<1,248,12>": "",
|
||||||
@ -8175,15 +8174,15 @@
|
|||||||
"<1,248,20>": ""
|
"<1,248,20>": ""
|
||||||
},
|
},
|
||||||
"<1,249>": {
|
"<1,249>": {
|
||||||
"<1,249,1>": "ITEM",
|
"<1,249,1>": "POPUP",
|
||||||
"<1,249,2>": "",
|
"<1,249,2>": "2",
|
||||||
"<1,249,3>": "ADM.THRUPUT_TARGETS.FISCAL_YEAR",
|
"<1,249,3>": "ADM.THRUPUT_TARGETS",
|
||||||
"<1,249,4>": "Fiscal Year",
|
"<1,249,4>": "&ThruPut Targets",
|
||||||
"<1,249,5>": "0",
|
"<1,249,5>": "0",
|
||||||
"<1,249,6>": "0",
|
"<1,249,6>": "0",
|
||||||
"<1,249,7>": "0",
|
"<1,249,7>": "0",
|
||||||
"<1,249,8>": "0",
|
"<1,249,8>": "0",
|
||||||
"<1,249,9>": "Enter Fiscal Year Dates",
|
"<1,249,9>": "ThruPut Target Config",
|
||||||
"<1,249,10>": "",
|
"<1,249,10>": "",
|
||||||
"<1,249,11>": "0",
|
"<1,249,11>": "0",
|
||||||
"<1,249,12>": "",
|
"<1,249,12>": "",
|
||||||
@ -8199,13 +8198,13 @@
|
|||||||
"<1,250>": {
|
"<1,250>": {
|
||||||
"<1,250,1>": "ITEM",
|
"<1,250,1>": "ITEM",
|
||||||
"<1,250,2>": "",
|
"<1,250,2>": "",
|
||||||
"<1,250,3>": "ADM.THRUPUT_TARGETS.FISCAL_QUARTER",
|
"<1,250,3>": "ADM.THRUPUT_TARGETS.FISCAL_YEAR",
|
||||||
"<1,250,4>": "Fiscal Quarter",
|
"<1,250,4>": "Fiscal Year",
|
||||||
"<1,250,5>": "0",
|
"<1,250,5>": "0",
|
||||||
"<1,250,6>": "0",
|
"<1,250,6>": "0",
|
||||||
"<1,250,7>": "0",
|
"<1,250,7>": "0",
|
||||||
"<1,250,8>": "0",
|
"<1,250,8>": "0",
|
||||||
"<1,250,9>": "Enter Fiscal Quarter Targets",
|
"<1,250,9>": "Enter Fiscal Year Dates",
|
||||||
"<1,250,10>": "",
|
"<1,250,10>": "",
|
||||||
"<1,250,11>": "0",
|
"<1,250,11>": "0",
|
||||||
"<1,250,12>": "",
|
"<1,250,12>": "",
|
||||||
@ -8219,15 +8218,15 @@
|
|||||||
"<1,250,20>": ""
|
"<1,250,20>": ""
|
||||||
},
|
},
|
||||||
"<1,251>": {
|
"<1,251>": {
|
||||||
"<1,251,1>": "POPUP",
|
"<1,251,1>": "ITEM",
|
||||||
"<1,251,2>": "4",
|
"<1,251,2>": "",
|
||||||
"<1,251,3>": "ADM.RAS",
|
"<1,251,3>": "ADM.THRUPUT_TARGETS.FISCAL_QUARTER",
|
||||||
"<1,251,4>": "NCR Setup",
|
"<1,251,4>": "Fiscal Quarter",
|
||||||
"<1,251,5>": "0",
|
"<1,251,5>": "0",
|
||||||
"<1,251,6>": "0",
|
"<1,251,6>": "0",
|
||||||
"<1,251,7>": "0",
|
"<1,251,7>": "0",
|
||||||
"<1,251,8>": "0",
|
"<1,251,8>": "0",
|
||||||
"<1,251,9>": "Rejected Wafer Setup ",
|
"<1,251,9>": "Enter Fiscal Quarter Targets",
|
||||||
"<1,251,10>": "",
|
"<1,251,10>": "",
|
||||||
"<1,251,11>": "0",
|
"<1,251,11>": "0",
|
||||||
"<1,251,12>": "",
|
"<1,251,12>": "",
|
||||||
@ -8241,15 +8240,15 @@
|
|||||||
"<1,251,20>": ""
|
"<1,251,20>": ""
|
||||||
},
|
},
|
||||||
"<1,252>": {
|
"<1,252>": {
|
||||||
"<1,252,1>": "ITEM",
|
"<1,252,1>": "POPUP",
|
||||||
"<1,252,2>": "",
|
"<1,252,2>": "4",
|
||||||
"<1,252,3>": "ADM.RAS.AC",
|
"<1,252,3>": "ADM.RAS",
|
||||||
"<1,252,4>": "&Assignable Causes",
|
"<1,252,4>": "NCR Setup",
|
||||||
"<1,252,5>": "0",
|
"<1,252,5>": "0",
|
||||||
"<1,252,6>": "0",
|
"<1,252,6>": "0",
|
||||||
"<1,252,7>": "0",
|
"<1,252,7>": "0",
|
||||||
"<1,252,8>": "0",
|
"<1,252,8>": "0",
|
||||||
"<1,252,9>": "Assignable Cause Setup",
|
"<1,252,9>": "Rejected Wafer Setup ",
|
||||||
"<1,252,10>": "",
|
"<1,252,10>": "",
|
||||||
"<1,252,11>": "0",
|
"<1,252,11>": "0",
|
||||||
"<1,252,12>": "",
|
"<1,252,12>": "",
|
||||||
@ -8265,13 +8264,13 @@
|
|||||||
"<1,253>": {
|
"<1,253>": {
|
||||||
"<1,253,1>": "ITEM",
|
"<1,253,1>": "ITEM",
|
||||||
"<1,253,2>": "",
|
"<1,253,2>": "",
|
||||||
"<1,253,3>": "ADM.RAS.DE_GROUPS",
|
"<1,253,3>": "ADM.RAS.AC",
|
||||||
"<1,253,4>": "&Designation Error Groups",
|
"<1,253,4>": "&Assignable Causes",
|
||||||
"<1,253,5>": "0",
|
"<1,253,5>": "0",
|
||||||
"<1,253,6>": "0",
|
"<1,253,6>": "0",
|
||||||
"<1,253,7>": "0",
|
"<1,253,7>": "0",
|
||||||
"<1,253,8>": "0",
|
"<1,253,8>": "0",
|
||||||
"<1,253,9>": "Error Group Setup",
|
"<1,253,9>": "Assignable Cause Setup",
|
||||||
"<1,253,10>": "",
|
"<1,253,10>": "",
|
||||||
"<1,253,11>": "0",
|
"<1,253,11>": "0",
|
||||||
"<1,253,12>": "",
|
"<1,253,12>": "",
|
||||||
@ -8287,13 +8286,13 @@
|
|||||||
"<1,254>": {
|
"<1,254>": {
|
||||||
"<1,254,1>": "ITEM",
|
"<1,254,1>": "ITEM",
|
||||||
"<1,254,2>": "",
|
"<1,254,2>": "",
|
||||||
"<1,254,3>": "ADM.RAS.LOSS_CODES",
|
"<1,254,3>": "ADM.RAS.DE_GROUPS",
|
||||||
"<1,254,4>": "&Loss Codes",
|
"<1,254,4>": "&Designation Error Groups",
|
||||||
"<1,254,5>": "0",
|
"<1,254,5>": "0",
|
||||||
"<1,254,6>": "0",
|
"<1,254,6>": "0",
|
||||||
"<1,254,7>": "0",
|
"<1,254,7>": "0",
|
||||||
"<1,254,8>": "0",
|
"<1,254,8>": "0",
|
||||||
"<1,254,9>": "Loss Code Setup",
|
"<1,254,9>": "Error Group Setup",
|
||||||
"<1,254,10>": "",
|
"<1,254,10>": "",
|
||||||
"<1,254,11>": "0",
|
"<1,254,11>": "0",
|
||||||
"<1,254,12>": "",
|
"<1,254,12>": "",
|
||||||
@ -8309,13 +8308,13 @@
|
|||||||
"<1,255>": {
|
"<1,255>": {
|
||||||
"<1,255,1>": "ITEM",
|
"<1,255,1>": "ITEM",
|
||||||
"<1,255,2>": "",
|
"<1,255,2>": "",
|
||||||
"<1,255,3>": "ADM.TEST_WFR_USE_CD",
|
"<1,255,3>": "ADM.RAS.LOSS_CODES",
|
||||||
"<1,255,4>": "&Test Wafer Usage Codes",
|
"<1,255,4>": "&Loss Codes",
|
||||||
"<1,255,5>": "0",
|
"<1,255,5>": "0",
|
||||||
"<1,255,6>": "0",
|
"<1,255,6>": "0",
|
||||||
"<1,255,7>": "1",
|
"<1,255,7>": "0",
|
||||||
"<1,255,8>": "0",
|
"<1,255,8>": "0",
|
||||||
"<1,255,9>": "",
|
"<1,255,9>": "Loss Code Setup",
|
||||||
"<1,255,10>": "",
|
"<1,255,10>": "",
|
||||||
"<1,255,11>": "0",
|
"<1,255,11>": "0",
|
||||||
"<1,255,12>": "",
|
"<1,255,12>": "",
|
||||||
@ -8329,15 +8328,15 @@
|
|||||||
"<1,255,20>": ""
|
"<1,255,20>": ""
|
||||||
},
|
},
|
||||||
"<1,256>": {
|
"<1,256>": {
|
||||||
"<1,256,1>": "POPUP",
|
"<1,256,1>": "ITEM",
|
||||||
"<1,256,2>": "11",
|
"<1,256,2>": "",
|
||||||
"<1,256,3>": "ADM.DEVELOPER",
|
"<1,256,3>": "ADM.TEST_WFR_USE_CD",
|
||||||
"<1,256,4>": "Developer",
|
"<1,256,4>": "&Test Wafer Usage Codes",
|
||||||
"<1,256,5>": "0",
|
"<1,256,5>": "0",
|
||||||
"<1,256,6>": "0",
|
"<1,256,6>": "0",
|
||||||
"<1,256,7>": "0",
|
"<1,256,7>": "1",
|
||||||
"<1,256,8>": "0",
|
"<1,256,8>": "0",
|
||||||
"<1,256,9>": "Developer and System Support Menu",
|
"<1,256,9>": "",
|
||||||
"<1,256,10>": "",
|
"<1,256,10>": "",
|
||||||
"<1,256,11>": "0",
|
"<1,256,11>": "0",
|
||||||
"<1,256,12>": "",
|
"<1,256,12>": "",
|
||||||
@ -8351,15 +8350,15 @@
|
|||||||
"<1,256,20>": ""
|
"<1,256,20>": ""
|
||||||
},
|
},
|
||||||
"<1,257>": {
|
"<1,257>": {
|
||||||
"<1,257,1>": "ITEM",
|
"<1,257,1>": "POPUP",
|
||||||
"<1,257,2>": "",
|
"<1,257,2>": "11",
|
||||||
"<1,257,3>": "ADM.DEV.KEEP_ALIVES",
|
"<1,257,3>": "ADM.DEVELOPER",
|
||||||
"<1,257,4>": "Keep Alives",
|
"<1,257,4>": "Developer",
|
||||||
"<1,257,5>": "0",
|
"<1,257,5>": "0",
|
||||||
"<1,257,6>": "0",
|
"<1,257,6>": "0",
|
||||||
"<1,257,7>": "0",
|
"<1,257,7>": "0",
|
||||||
"<1,257,8>": "0",
|
"<1,257,8>": "0",
|
||||||
"<1,257,9>": "",
|
"<1,257,9>": "Developer and System Support Menu",
|
||||||
"<1,257,10>": "",
|
"<1,257,10>": "",
|
||||||
"<1,257,11>": "0",
|
"<1,257,11>": "0",
|
||||||
"<1,257,12>": "",
|
"<1,257,12>": "",
|
||||||
@ -8375,13 +8374,13 @@
|
|||||||
"<1,258>": {
|
"<1,258>": {
|
||||||
"<1,258,1>": "ITEM",
|
"<1,258,1>": "ITEM",
|
||||||
"<1,258,2>": "",
|
"<1,258,2>": "",
|
||||||
"<1,258,3>": "ADMIN.DEVELOPER.MES_TASK",
|
"<1,258,3>": "ADM.DEV.KEEP_ALIVES",
|
||||||
"<1,258,4>": "MES Task",
|
"<1,258,4>": "Keep Alives",
|
||||||
"<1,258,5>": "0",
|
"<1,258,5>": "0",
|
||||||
"<1,258,6>": "0",
|
"<1,258,6>": "0",
|
||||||
"<1,258,7>": "0",
|
"<1,258,7>": "0",
|
||||||
"<1,258,8>": "0",
|
"<1,258,8>": "0",
|
||||||
"<1,258,9>": "Window for MES Task maintenenace.",
|
"<1,258,9>": "",
|
||||||
"<1,258,10>": "",
|
"<1,258,10>": "",
|
||||||
"<1,258,11>": "0",
|
"<1,258,11>": "0",
|
||||||
"<1,258,12>": "",
|
"<1,258,12>": "",
|
||||||
@ -8397,13 +8396,13 @@
|
|||||||
"<1,259>": {
|
"<1,259>": {
|
||||||
"<1,259,1>": "ITEM",
|
"<1,259,1>": "ITEM",
|
||||||
"<1,259,2>": "",
|
"<1,259,2>": "",
|
||||||
"<1,259,3>": "ADMIN.DEVELOPER.SRP_UTILITY",
|
"<1,259,3>": "ADMIN.DEVELOPER.MES_TASK",
|
||||||
"<1,259,4>": "SRP Utility\tCtrl+Shift+S",
|
"<1,259,4>": "MES Task",
|
||||||
"<1,259,5>": "0",
|
"<1,259,5>": "0",
|
||||||
"<1,259,6>": "0",
|
"<1,259,6>": "0",
|
||||||
"<1,259,7>": "1",
|
"<1,259,7>": "0",
|
||||||
"<1,259,8>": "851",
|
"<1,259,8>": "0",
|
||||||
"<1,259,9>": "",
|
"<1,259,9>": "Window for MES Task maintenenace.",
|
||||||
"<1,259,10>": "",
|
"<1,259,10>": "",
|
||||||
"<1,259,11>": "0",
|
"<1,259,11>": "0",
|
||||||
"<1,259,12>": "",
|
"<1,259,12>": "",
|
||||||
@ -8419,12 +8418,12 @@
|
|||||||
"<1,260>": {
|
"<1,260>": {
|
||||||
"<1,260,1>": "ITEM",
|
"<1,260,1>": "ITEM",
|
||||||
"<1,260,2>": "",
|
"<1,260,2>": "",
|
||||||
"<1,260,3>": "ADMIN.DEVELOPER.DICTIONARY_LISTINGS",
|
"<1,260,3>": "ADMIN.DEVELOPER.SRP_UTILITY",
|
||||||
"<1,260,4>": "Dictionary Listings",
|
"<1,260,4>": "SRP Utility\tCtrl+Shift+S",
|
||||||
"<1,260,5>": "0",
|
"<1,260,5>": "0",
|
||||||
"<1,260,6>": "0",
|
"<1,260,6>": "0",
|
||||||
"<1,260,7>": "0",
|
"<1,260,7>": "1",
|
||||||
"<1,260,8>": "0",
|
"<1,260,8>": "851",
|
||||||
"<1,260,9>": "",
|
"<1,260,9>": "",
|
||||||
"<1,260,10>": "",
|
"<1,260,10>": "",
|
||||||
"<1,260,11>": "0",
|
"<1,260,11>": "0",
|
||||||
@ -8441,8 +8440,8 @@
|
|||||||
"<1,261>": {
|
"<1,261>": {
|
||||||
"<1,261,1>": "ITEM",
|
"<1,261,1>": "ITEM",
|
||||||
"<1,261,2>": "",
|
"<1,261,2>": "",
|
||||||
"<1,261,3>": "ADM.DEVELOPER.INTERFACE_DICT_EXPORT",
|
"<1,261,3>": "ADMIN.DEVELOPER.DICTIONARY_LISTINGS",
|
||||||
"<1,261,4>": "Interface Dict Export",
|
"<1,261,4>": "Dictionary Listings",
|
||||||
"<1,261,5>": "0",
|
"<1,261,5>": "0",
|
||||||
"<1,261,6>": "0",
|
"<1,261,6>": "0",
|
||||||
"<1,261,7>": "0",
|
"<1,261,7>": "0",
|
||||||
@ -8463,8 +8462,8 @@
|
|||||||
"<1,262>": {
|
"<1,262>": {
|
||||||
"<1,262,1>": "ITEM",
|
"<1,262,1>": "ITEM",
|
||||||
"<1,262,2>": "",
|
"<1,262,2>": "",
|
||||||
"<1,262,3>": "ADMIN.DEVELOPER.THRUPUT_TEST",
|
"<1,262,3>": "ADM.DEVELOPER.INTERFACE_DICT_EXPORT",
|
||||||
"<1,262,4>": "Thruput Test",
|
"<1,262,4>": "Interface Dict Export",
|
||||||
"<1,262,5>": "0",
|
"<1,262,5>": "0",
|
||||||
"<1,262,6>": "0",
|
"<1,262,6>": "0",
|
||||||
"<1,262,7>": "0",
|
"<1,262,7>": "0",
|
||||||
@ -8485,8 +8484,8 @@
|
|||||||
"<1,263>": {
|
"<1,263>": {
|
||||||
"<1,263,1>": "ITEM",
|
"<1,263,1>": "ITEM",
|
||||||
"<1,263,2>": "",
|
"<1,263,2>": "",
|
||||||
"<1,263,3>": "ADMIN.DEVELOPER.AD_TEST",
|
"<1,263,3>": "ADMIN.DEVELOPER.THRUPUT_TEST",
|
||||||
"<1,263,4>": "AD Test",
|
"<1,263,4>": "Thruput Test",
|
||||||
"<1,263,5>": "0",
|
"<1,263,5>": "0",
|
||||||
"<1,263,6>": "0",
|
"<1,263,6>": "0",
|
||||||
"<1,263,7>": "0",
|
"<1,263,7>": "0",
|
||||||
@ -8507,8 +8506,8 @@
|
|||||||
"<1,264>": {
|
"<1,264>": {
|
||||||
"<1,264,1>": "ITEM",
|
"<1,264,1>": "ITEM",
|
||||||
"<1,264,2>": "",
|
"<1,264,2>": "",
|
||||||
"<1,264,3>": "ADMIN.DEVELOPER.SESSION_MANAGER",
|
"<1,264,3>": "ADMIN.DEVELOPER.AD_TEST",
|
||||||
"<1,264,4>": "Session Manager...",
|
"<1,264,4>": "AD Test",
|
||||||
"<1,264,5>": "0",
|
"<1,264,5>": "0",
|
||||||
"<1,264,6>": "0",
|
"<1,264,6>": "0",
|
||||||
"<1,264,7>": "0",
|
"<1,264,7>": "0",
|
||||||
@ -8529,8 +8528,8 @@
|
|||||||
"<1,265>": {
|
"<1,265>": {
|
||||||
"<1,265,1>": "ITEM",
|
"<1,265,1>": "ITEM",
|
||||||
"<1,265,2>": "",
|
"<1,265,2>": "",
|
||||||
"<1,265,3>": "ADMIN.DEVELOPER.WEBTEST",
|
"<1,265,3>": "ADMIN.DEVELOPER.SESSION_MANAGER",
|
||||||
"<1,265,4>": "WebTest",
|
"<1,265,4>": "Session Manager...",
|
||||||
"<1,265,5>": "0",
|
"<1,265,5>": "0",
|
||||||
"<1,265,6>": "0",
|
"<1,265,6>": "0",
|
||||||
"<1,265,7>": "0",
|
"<1,265,7>": "0",
|
||||||
@ -8551,8 +8550,8 @@
|
|||||||
"<1,266>": {
|
"<1,266>": {
|
||||||
"<1,266,1>": "ITEM",
|
"<1,266,1>": "ITEM",
|
||||||
"<1,266,2>": "",
|
"<1,266,2>": "",
|
||||||
"<1,266,3>": "ADMIN.DEVELOPER.ALL_REACTOR_MODES",
|
"<1,266,3>": "ADMIN.DEVELOPER.WEBTEST",
|
||||||
"<1,266,4>": "All Reactor Modes",
|
"<1,266,4>": "WebTest",
|
||||||
"<1,266,5>": "0",
|
"<1,266,5>": "0",
|
||||||
"<1,266,6>": "0",
|
"<1,266,6>": "0",
|
||||||
"<1,266,7>": "0",
|
"<1,266,7>": "0",
|
||||||
@ -8571,15 +8570,15 @@
|
|||||||
"<1,266,20>": ""
|
"<1,266,20>": ""
|
||||||
},
|
},
|
||||||
"<1,267>": {
|
"<1,267>": {
|
||||||
"<1,267,1>": "POPUP",
|
"<1,267,1>": "ITEM",
|
||||||
"<1,267,2>": "2",
|
"<1,267,2>": "",
|
||||||
"<1,267,3>": "ADMIN.DEV.ARCHIVE",
|
"<1,267,3>": "ADMIN.DEVELOPER.ALL_REACTOR_MODES",
|
||||||
"<1,267,4>": "Archive",
|
"<1,267,4>": "All Reactor Modes",
|
||||||
"<1,267,5>": "0",
|
"<1,267,5>": "0",
|
||||||
"<1,267,6>": "0",
|
"<1,267,6>": "0",
|
||||||
"<1,267,7>": "0",
|
"<1,267,7>": "0",
|
||||||
"<1,267,8>": "0",
|
"<1,267,8>": "0",
|
||||||
"<1,267,9>": "Archived Records",
|
"<1,267,9>": "",
|
||||||
"<1,267,10>": "",
|
"<1,267,10>": "",
|
||||||
"<1,267,11>": "0",
|
"<1,267,11>": "0",
|
||||||
"<1,267,12>": "",
|
"<1,267,12>": "",
|
||||||
@ -8593,15 +8592,15 @@
|
|||||||
"<1,267,20>": ""
|
"<1,267,20>": ""
|
||||||
},
|
},
|
||||||
"<1,268>": {
|
"<1,268>": {
|
||||||
"<1,268,1>": "ITEM",
|
"<1,268,1>": "POPUP",
|
||||||
"<1,268,2>": "",
|
"<1,268,2>": "2",
|
||||||
"<1,268,3>": "ADM.DEV.ARCHIVE.AUDIT_TRAIL",
|
"<1,268,3>": "ADMIN.DEV.ARCHIVE",
|
||||||
"<1,268,4>": "Audit Trail",
|
"<1,268,4>": "Archive",
|
||||||
"<1,268,5>": "0",
|
"<1,268,5>": "0",
|
||||||
"<1,268,6>": "0",
|
"<1,268,6>": "0",
|
||||||
"<1,268,7>": "0",
|
"<1,268,7>": "0",
|
||||||
"<1,268,8>": "0",
|
"<1,268,8>": "0",
|
||||||
"<1,268,9>": "Audit Manager Reporting",
|
"<1,268,9>": "Archived Records",
|
||||||
"<1,268,10>": "",
|
"<1,268,10>": "",
|
||||||
"<1,268,11>": "0",
|
"<1,268,11>": "0",
|
||||||
"<1,268,12>": "",
|
"<1,268,12>": "",
|
||||||
@ -8617,13 +8616,13 @@
|
|||||||
"<1,269>": {
|
"<1,269>": {
|
||||||
"<1,269,1>": "ITEM",
|
"<1,269,1>": "ITEM",
|
||||||
"<1,269,2>": "",
|
"<1,269,2>": "",
|
||||||
"<1,269,3>": "ADM.DEV.ARCHIVE.AUDIT_MANAGER",
|
"<1,269,3>": "ADM.DEV.ARCHIVE.AUDIT_TRAIL",
|
||||||
"<1,269,4>": "Audit Manager",
|
"<1,269,4>": "Audit Trail",
|
||||||
"<1,269,5>": "0",
|
"<1,269,5>": "0",
|
||||||
"<1,269,6>": "0",
|
"<1,269,6>": "0",
|
||||||
"<1,269,7>": "0",
|
"<1,269,7>": "0",
|
||||||
"<1,269,8>": "0",
|
"<1,269,8>": "0",
|
||||||
"<1,269,9>": "Audit Manager Setup",
|
"<1,269,9>": "Audit Manager Reporting",
|
||||||
"<1,269,10>": "",
|
"<1,269,10>": "",
|
||||||
"<1,269,11>": "0",
|
"<1,269,11>": "0",
|
||||||
"<1,269,12>": "",
|
"<1,269,12>": "",
|
||||||
@ -8637,15 +8636,15 @@
|
|||||||
"<1,269,20>": ""
|
"<1,269,20>": ""
|
||||||
},
|
},
|
||||||
"<1,270>": {
|
"<1,270>": {
|
||||||
"<1,270,1>": "SEPARATOR",
|
"<1,270,1>": "ITEM",
|
||||||
"<1,270,2>": "",
|
"<1,270,2>": "",
|
||||||
"<1,270,3>": "ADMIN.SEP114",
|
"<1,270,3>": "ADM.DEV.ARCHIVE.AUDIT_MANAGER",
|
||||||
"<1,270,4>": "SEP114",
|
"<1,270,4>": "Audit Manager",
|
||||||
"<1,270,5>": "0",
|
"<1,270,5>": "0",
|
||||||
"<1,270,6>": "0",
|
"<1,270,6>": "0",
|
||||||
"<1,270,7>": "0",
|
"<1,270,7>": "0",
|
||||||
"<1,270,8>": "0",
|
"<1,270,8>": "0",
|
||||||
"<1,270,9>": "",
|
"<1,270,9>": "Audit Manager Setup",
|
||||||
"<1,270,10>": "",
|
"<1,270,10>": "",
|
||||||
"<1,270,11>": "0",
|
"<1,270,11>": "0",
|
||||||
"<1,270,12>": "",
|
"<1,270,12>": "",
|
||||||
@ -8659,10 +8658,10 @@
|
|||||||
"<1,270,20>": ""
|
"<1,270,20>": ""
|
||||||
},
|
},
|
||||||
"<1,271>": {
|
"<1,271>": {
|
||||||
"<1,271,1>": "ITEM",
|
"<1,271,1>": "SEPARATOR",
|
||||||
"<1,271,2>": "",
|
"<1,271,2>": "",
|
||||||
"<1,271,3>": "ADMIN.MASS_TOOL_MODE_CHANGE",
|
"<1,271,3>": "ADMIN.SEP114",
|
||||||
"<1,271,4>": "Mass Tool Mode Change",
|
"<1,271,4>": "SEP114",
|
||||||
"<1,271,5>": "0",
|
"<1,271,5>": "0",
|
||||||
"<1,271,6>": "0",
|
"<1,271,6>": "0",
|
||||||
"<1,271,7>": "0",
|
"<1,271,7>": "0",
|
||||||
@ -8683,8 +8682,8 @@
|
|||||||
"<1,272>": {
|
"<1,272>": {
|
||||||
"<1,272,1>": "ITEM",
|
"<1,272,1>": "ITEM",
|
||||||
"<1,272,2>": "",
|
"<1,272,2>": "",
|
||||||
"<1,272,3>": "ADMIN.MASS_REACTOR_MODE_CHANGE",
|
"<1,272,3>": "ADMIN.MASS_TOOL_MODE_CHANGE",
|
||||||
"<1,272,4>": "Mass Reactor Mode Change",
|
"<1,272,4>": "Mass Tool Mode Change",
|
||||||
"<1,272,5>": "0",
|
"<1,272,5>": "0",
|
||||||
"<1,272,6>": "0",
|
"<1,272,6>": "0",
|
||||||
"<1,272,7>": "0",
|
"<1,272,7>": "0",
|
||||||
@ -8705,8 +8704,8 @@
|
|||||||
"<1,273>": {
|
"<1,273>": {
|
||||||
"<1,273,1>": "ITEM",
|
"<1,273,1>": "ITEM",
|
||||||
"<1,273,2>": "",
|
"<1,273,2>": "",
|
||||||
"<1,273,3>": "ADMIN.TOOLS_EVAC",
|
"<1,273,3>": "ADMIN.MASS_REACTOR_MODE_CHANGE",
|
||||||
"<1,273,4>": "Tools Evac",
|
"<1,273,4>": "Mass Reactor Mode Change",
|
||||||
"<1,273,5>": "0",
|
"<1,273,5>": "0",
|
||||||
"<1,273,6>": "0",
|
"<1,273,6>": "0",
|
||||||
"<1,273,7>": "0",
|
"<1,273,7>": "0",
|
||||||
@ -8723,6 +8722,28 @@
|
|||||||
"<1,273,18>": "",
|
"<1,273,18>": "",
|
||||||
"<1,273,19>": "",
|
"<1,273,19>": "",
|
||||||
"<1,273,20>": ""
|
"<1,273,20>": ""
|
||||||
|
},
|
||||||
|
"<1,274>": {
|
||||||
|
"<1,274,1>": "ITEM",
|
||||||
|
"<1,274,2>": "",
|
||||||
|
"<1,274,3>": "ADMIN.TOOLS_EVAC",
|
||||||
|
"<1,274,4>": "Tools Evac",
|
||||||
|
"<1,274,5>": "0",
|
||||||
|
"<1,274,6>": "0",
|
||||||
|
"<1,274,7>": "0",
|
||||||
|
"<1,274,8>": "0",
|
||||||
|
"<1,274,9>": "",
|
||||||
|
"<1,274,10>": "",
|
||||||
|
"<1,274,11>": "0",
|
||||||
|
"<1,274,12>": "",
|
||||||
|
"<1,274,13>": "",
|
||||||
|
"<1,274,14>": "",
|
||||||
|
"<1,274,15>": "",
|
||||||
|
"<1,274,16>": "",
|
||||||
|
"<1,274,17>": "",
|
||||||
|
"<1,274,18>": "",
|
||||||
|
"<1,274,19>": "",
|
||||||
|
"<1,274,20>": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"<2>": {
|
"<2>": {
|
||||||
@ -10964,7 +10985,17 @@
|
|||||||
"<2,2,178,4,2>": "@WINDOW"
|
"<2,2,178,4,2>": "@WINDOW"
|
||||||
},
|
},
|
||||||
"<2,2,178,5>": "",
|
"<2,2,178,5>": "",
|
||||||
"<2,2,178,6>": ""
|
"<2,2,178,6>": "",
|
||||||
|
"<2,2,178,7>": "",
|
||||||
|
"<2,2,178,8>": "",
|
||||||
|
"<2,2,178,9>": "",
|
||||||
|
"<2,2,178,10>": "",
|
||||||
|
"<2,2,178,11>": "",
|
||||||
|
"<2,2,178,12>": "",
|
||||||
|
"<2,2,178,13>": "",
|
||||||
|
"<2,2,178,14>": "",
|
||||||
|
"<2,2,178,15>": "STARTWIN",
|
||||||
|
"<2,2,178,16>": "0"
|
||||||
},
|
},
|
||||||
"<2,2,179>": {
|
"<2,2,179>": {
|
||||||
"<2,2,179,1>": "R",
|
"<2,2,179,1>": "R",
|
||||||
@ -11032,25 +11063,45 @@
|
|||||||
"<2,2,185,3>": "LSL2*STPROCEXE**PRINT_AKRION_TEST",
|
"<2,2,185,3>": "LSL2*STPROCEXE**PRINT_AKRION_TEST",
|
||||||
"<2,2,185,4>": "",
|
"<2,2,185,4>": "",
|
||||||
"<2,2,185,5>": "",
|
"<2,2,185,5>": "",
|
||||||
"<2,2,185,6>": ""
|
"<2,2,185,6>": "",
|
||||||
|
"<2,2,185,7>": "",
|
||||||
|
"<2,2,185,8>": "",
|
||||||
|
"<2,2,185,9>": "",
|
||||||
|
"<2,2,185,10>": "",
|
||||||
|
"<2,2,185,11>": "",
|
||||||
|
"<2,2,185,12>": "",
|
||||||
|
"<2,2,185,13>": "",
|
||||||
|
"<2,2,185,14>": "",
|
||||||
|
"<2,2,185,15>": "STPROC",
|
||||||
|
"<2,2,185,16>": "0"
|
||||||
},
|
},
|
||||||
"<2,2,186>": {
|
"<2,2,186>": {
|
||||||
"<2,2,186,1>": "R",
|
"<2,2,186,1>": "R",
|
||||||
"<2,2,186,2>": "EXECUTE",
|
"<2,2,186,2>": "EXECUTE",
|
||||||
"<2,2,186,3>": "LSL2*OIWINEXE**LOCATION",
|
"<2,2,186,3>": "LSL2*OIWINEXE**PRS_STAGE_DEFECT_DEFAULTS",
|
||||||
"<2,2,186,4>": {
|
"<2,2,186,4>": {
|
||||||
"<2,2,186,4,1>": "CreateParam",
|
"<2,2,186,4,1>": "CreateParam",
|
||||||
"<2,2,186,4,2>": "@WINDOW"
|
"<2,2,186,4,2>": "@WINDOW"
|
||||||
},
|
},
|
||||||
"<2,2,186,5>": "",
|
"<2,2,186,5>": "",
|
||||||
"<2,2,186,6>": ""
|
"<2,2,186,6>": "",
|
||||||
|
"<2,2,186,7>": "",
|
||||||
|
"<2,2,186,8>": "",
|
||||||
|
"<2,2,186,9>": "",
|
||||||
|
"<2,2,186,10>": "",
|
||||||
|
"<2,2,186,11>": "",
|
||||||
|
"<2,2,186,12>": "",
|
||||||
|
"<2,2,186,13>": "",
|
||||||
|
"<2,2,186,14>": "",
|
||||||
|
"<2,2,186,15>": "STARTWIN",
|
||||||
|
"<2,2,186,16>": "0"
|
||||||
},
|
},
|
||||||
"<2,2,187>": {
|
"<2,2,187>": {
|
||||||
"<2,2,187,1>": "R",
|
"<2,2,187,1>": "R",
|
||||||
"<2,2,187,2>": "EXECUTE",
|
"<2,2,187,2>": "EXECUTE",
|
||||||
"<2,2,187,3>": "LSL2*OIWINEXE**WAREHOUSE",
|
"<2,2,187,3>": "LSL2*OIWINEXE**LOCATION",
|
||||||
"<2,2,187,4>": {
|
"<2,2,187,4>": {
|
||||||
"<2,2,187,4,1>": "",
|
"<2,2,187,4,1>": "CreateParam",
|
||||||
"<2,2,187,4,2>": "@WINDOW"
|
"<2,2,187,4,2>": "@WINDOW"
|
||||||
},
|
},
|
||||||
"<2,2,187,5>": "",
|
"<2,2,187,5>": "",
|
||||||
@ -11059,9 +11110,9 @@
|
|||||||
"<2,2,188>": {
|
"<2,2,188>": {
|
||||||
"<2,2,188,1>": "R",
|
"<2,2,188,1>": "R",
|
||||||
"<2,2,188,2>": "EXECUTE",
|
"<2,2,188,2>": "EXECUTE",
|
||||||
"<2,2,188,3>": "LSL2*OIWINEXE**PRINT_GENERIC_BARCODE",
|
"<2,2,188,3>": "LSL2*OIWINEXE**WAREHOUSE",
|
||||||
"<2,2,188,4>": {
|
"<2,2,188,4>": {
|
||||||
"<2,2,188,4,1>": "CreateParam",
|
"<2,2,188,4,1>": "",
|
||||||
"<2,2,188,4,2>": "@WINDOW"
|
"<2,2,188,4,2>": "@WINDOW"
|
||||||
},
|
},
|
||||||
"<2,2,188,5>": "",
|
"<2,2,188,5>": "",
|
||||||
@ -11070,9 +11121,9 @@
|
|||||||
"<2,2,189>": {
|
"<2,2,189>": {
|
||||||
"<2,2,189,1>": "R",
|
"<2,2,189,1>": "R",
|
||||||
"<2,2,189,2>": "EXECUTE",
|
"<2,2,189,2>": "EXECUTE",
|
||||||
"<2,2,189,3>": "LSL2*OIWINEXE**NIGHTLY_PROCESS",
|
"<2,2,189,3>": "LSL2*OIWINEXE**PRINT_GENERIC_BARCODE",
|
||||||
"<2,2,189,4>": {
|
"<2,2,189,4>": {
|
||||||
"<2,2,189,4,1>": "*CENTER",
|
"<2,2,189,4,1>": "CreateParam",
|
||||||
"<2,2,189,4,2>": "@WINDOW"
|
"<2,2,189,4,2>": "@WINDOW"
|
||||||
},
|
},
|
||||||
"<2,2,189,5>": "",
|
"<2,2,189,5>": "",
|
||||||
@ -11081,7 +11132,7 @@
|
|||||||
"<2,2,190>": {
|
"<2,2,190>": {
|
||||||
"<2,2,190,1>": "R",
|
"<2,2,190,1>": "R",
|
||||||
"<2,2,190,2>": "EXECUTE",
|
"<2,2,190,2>": "EXECUTE",
|
||||||
"<2,2,190,3>": "LSL2*OIWINEXE**RUN_NIGHTLY_PROCESS",
|
"<2,2,190,3>": "LSL2*OIWINEXE**NIGHTLY_PROCESS",
|
||||||
"<2,2,190,4>": {
|
"<2,2,190,4>": {
|
||||||
"<2,2,190,4,1>": "*CENTER",
|
"<2,2,190,4,1>": "*CENTER",
|
||||||
"<2,2,190,4,2>": "@WINDOW"
|
"<2,2,190,4,2>": "@WINDOW"
|
||||||
@ -11092,9 +11143,9 @@
|
|||||||
"<2,2,191>": {
|
"<2,2,191>": {
|
||||||
"<2,2,191,1>": "R",
|
"<2,2,191,1>": "R",
|
||||||
"<2,2,191,2>": "EXECUTE",
|
"<2,2,191,2>": "EXECUTE",
|
||||||
"<2,2,191,3>": "LSL2*OIWINEXE**CUST_TW_PART",
|
"<2,2,191,3>": "LSL2*OIWINEXE**RUN_NIGHTLY_PROCESS",
|
||||||
"<2,2,191,4>": {
|
"<2,2,191,4>": {
|
||||||
"<2,2,191,4,1>": "CreateParam",
|
"<2,2,191,4,1>": "*CENTER",
|
||||||
"<2,2,191,4,2>": "@WINDOW"
|
"<2,2,191,4,2>": "@WINDOW"
|
||||||
},
|
},
|
||||||
"<2,2,191,5>": "",
|
"<2,2,191,5>": "",
|
||||||
@ -11103,7 +11154,7 @@
|
|||||||
"<2,2,192>": {
|
"<2,2,192>": {
|
||||||
"<2,2,192,1>": "R",
|
"<2,2,192,1>": "R",
|
||||||
"<2,2,192,2>": "EXECUTE",
|
"<2,2,192,2>": "EXECUTE",
|
||||||
"<2,2,192,3>": "LSL2*OIWINEXE**FISCAL_YR",
|
"<2,2,192,3>": "LSL2*OIWINEXE**CUST_TW_PART",
|
||||||
"<2,2,192,4>": {
|
"<2,2,192,4>": {
|
||||||
"<2,2,192,4,1>": "CreateParam",
|
"<2,2,192,4,1>": "CreateParam",
|
||||||
"<2,2,192,4,2>": "@WINDOW"
|
"<2,2,192,4,2>": "@WINDOW"
|
||||||
@ -11114,7 +11165,7 @@
|
|||||||
"<2,2,193>": {
|
"<2,2,193>": {
|
||||||
"<2,2,193,1>": "R",
|
"<2,2,193,1>": "R",
|
||||||
"<2,2,193,2>": "EXECUTE",
|
"<2,2,193,2>": "EXECUTE",
|
||||||
"<2,2,193,3>": "LSL2*OIWINEXE**FISCAL_QTR",
|
"<2,2,193,3>": "LSL2*OIWINEXE**FISCAL_YR",
|
||||||
"<2,2,193,4>": {
|
"<2,2,193,4>": {
|
||||||
"<2,2,193,4,1>": "CreateParam",
|
"<2,2,193,4,1>": "CreateParam",
|
||||||
"<2,2,193,4,2>": "@WINDOW"
|
"<2,2,193,4,2>": "@WINDOW"
|
||||||
@ -11125,9 +11176,9 @@
|
|||||||
"<2,2,194>": {
|
"<2,2,194>": {
|
||||||
"<2,2,194,1>": "R",
|
"<2,2,194,1>": "R",
|
||||||
"<2,2,194,2>": "EXECUTE",
|
"<2,2,194,2>": "EXECUTE",
|
||||||
"<2,2,194,3>": "LSL2*OIWINEXE**ASSIGN_CAUSE",
|
"<2,2,194,3>": "LSL2*OIWINEXE**FISCAL_QTR",
|
||||||
"<2,2,194,4>": {
|
"<2,2,194,4>": {
|
||||||
"<2,2,194,4,1>": "*CENTER",
|
"<2,2,194,4,1>": "CreateParam",
|
||||||
"<2,2,194,4,2>": "@WINDOW"
|
"<2,2,194,4,2>": "@WINDOW"
|
||||||
},
|
},
|
||||||
"<2,2,194,5>": "",
|
"<2,2,194,5>": "",
|
||||||
@ -11136,7 +11187,7 @@
|
|||||||
"<2,2,195>": {
|
"<2,2,195>": {
|
||||||
"<2,2,195,1>": "R",
|
"<2,2,195,1>": "R",
|
||||||
"<2,2,195,2>": "EXECUTE",
|
"<2,2,195,2>": "EXECUTE",
|
||||||
"<2,2,195,3>": "LSL2*OIWINEXE**DESIG_ERR_GRP",
|
"<2,2,195,3>": "LSL2*OIWINEXE**ASSIGN_CAUSE",
|
||||||
"<2,2,195,4>": {
|
"<2,2,195,4>": {
|
||||||
"<2,2,195,4,1>": "*CENTER",
|
"<2,2,195,4,1>": "*CENTER",
|
||||||
"<2,2,195,4,2>": "@WINDOW"
|
"<2,2,195,4,2>": "@WINDOW"
|
||||||
@ -11147,7 +11198,7 @@
|
|||||||
"<2,2,196>": {
|
"<2,2,196>": {
|
||||||
"<2,2,196,1>": "R",
|
"<2,2,196,1>": "R",
|
||||||
"<2,2,196,2>": "EXECUTE",
|
"<2,2,196,2>": "EXECUTE",
|
||||||
"<2,2,196,3>": "LSL2*OIWINEXE**LOSS_CODES",
|
"<2,2,196,3>": "LSL2*OIWINEXE**DESIG_ERR_GRP",
|
||||||
"<2,2,196,4>": {
|
"<2,2,196,4>": {
|
||||||
"<2,2,196,4,1>": "*CENTER",
|
"<2,2,196,4,1>": "*CENTER",
|
||||||
"<2,2,196,4,2>": "@WINDOW"
|
"<2,2,196,4,2>": "@WINDOW"
|
||||||
@ -11158,7 +11209,7 @@
|
|||||||
"<2,2,197>": {
|
"<2,2,197>": {
|
||||||
"<2,2,197,1>": "R",
|
"<2,2,197,1>": "R",
|
||||||
"<2,2,197,2>": "EXECUTE",
|
"<2,2,197,2>": "EXECUTE",
|
||||||
"<2,2,197,3>": "LSL2*OIWINEXE**TW_CODES",
|
"<2,2,197,3>": "LSL2*OIWINEXE**LOSS_CODES",
|
||||||
"<2,2,197,4>": {
|
"<2,2,197,4>": {
|
||||||
"<2,2,197,4,1>": "*CENTER",
|
"<2,2,197,4,1>": "*CENTER",
|
||||||
"<2,2,197,4,2>": "@WINDOW"
|
"<2,2,197,4,2>": "@WINDOW"
|
||||||
@ -11169,81 +11220,85 @@
|
|||||||
"<2,2,198>": {
|
"<2,2,198>": {
|
||||||
"<2,2,198,1>": "R",
|
"<2,2,198,1>": "R",
|
||||||
"<2,2,198,2>": "EXECUTE",
|
"<2,2,198,2>": "EXECUTE",
|
||||||
"<2,2,198,3>": "LSL2*POPUP**KEEP_ALIVES",
|
"<2,2,198,3>": "LSL2*OIWINEXE**TW_CODES",
|
||||||
"<2,2,198,4>": "@WINDOW",
|
"<2,2,198,4>": {
|
||||||
|
"<2,2,198,4,1>": "*CENTER",
|
||||||
|
"<2,2,198,4,2>": "@WINDOW"
|
||||||
|
},
|
||||||
"<2,2,198,5>": "",
|
"<2,2,198,5>": "",
|
||||||
"<2,2,198,6>": ""
|
"<2,2,198,6>": ""
|
||||||
},
|
},
|
||||||
"<2,2,199>": {
|
"<2,2,199>": {
|
||||||
"<2,2,199,1>": "R",
|
"<2,2,199,1>": "R",
|
||||||
"<2,2,199,2>": "EXECUTE",
|
"<2,2,199,2>": "EXECUTE",
|
||||||
"<2,2,199,3>": "LSL2*OIWINEXE**MES_TASK",
|
"<2,2,199,3>": "LSL2*POPUP**KEEP_ALIVES",
|
||||||
"<2,2,199,4>": {
|
"<2,2,199,4>": "@WINDOW",
|
||||||
"<2,2,199,4,1>": "CreateParam",
|
|
||||||
"<2,2,199,4,2>": "@WINDOW"
|
|
||||||
},
|
|
||||||
"<2,2,199,5>": "",
|
"<2,2,199,5>": "",
|
||||||
"<2,2,199,6>": ""
|
"<2,2,199,6>": ""
|
||||||
},
|
},
|
||||||
"<2,2,200>": {
|
"<2,2,200>": {
|
||||||
"<2,2,200,1>": "R",
|
"<2,2,200,1>": "R",
|
||||||
"<2,2,200,2>": "EXECUTE",
|
"<2,2,200,2>": "EXECUTE",
|
||||||
"<2,2,200,3>": "LSL2*STPROCEXE**SRP_UTILITY",
|
"<2,2,200,3>": "LSL2*OIWINEXE**MES_TASK",
|
||||||
"<2,2,200,4>": "",
|
"<2,2,200,4>": {
|
||||||
|
"<2,2,200,4,1>": "CreateParam",
|
||||||
|
"<2,2,200,4,2>": "@WINDOW"
|
||||||
|
},
|
||||||
"<2,2,200,5>": "",
|
"<2,2,200,5>": "",
|
||||||
"<2,2,200,6>": ""
|
"<2,2,200,6>": ""
|
||||||
},
|
},
|
||||||
"<2,2,201>": {
|
"<2,2,201>": {
|
||||||
"<2,2,201,1>": "R",
|
"<2,2,201,1>": "R",
|
||||||
"<2,2,201,2>": "EXECUTE",
|
"<2,2,201,2>": "EXECUTE",
|
||||||
"<2,2,201,3>": "SYSPROG*OIWINEXE**JCH_INDEX",
|
"<2,2,201,3>": "LSL2*STPROCEXE**SRP_UTILITY",
|
||||||
"<2,2,201,4>": {
|
"<2,2,201,4>": "",
|
||||||
"<2,2,201,4,1>": "CreateParam",
|
|
||||||
"<2,2,201,4,2>": "@WINDOW"
|
|
||||||
},
|
|
||||||
"<2,2,201,5>": "",
|
"<2,2,201,5>": "",
|
||||||
"<2,2,201,6>": ""
|
"<2,2,201,6>": ""
|
||||||
},
|
},
|
||||||
"<2,2,202>": {
|
"<2,2,202>": {
|
||||||
"<2,2,202,1>": "R",
|
"<2,2,202,1>": "R",
|
||||||
"<2,2,202,2>": "EXECUTE",
|
"<2,2,202,2>": "EXECUTE",
|
||||||
"<2,2,202,3>": "LSL2*STPROCEXE**EXPORT_INTERFACE_DICTS",
|
"<2,2,202,3>": "SYSPROG*OIWINEXE**JCH_INDEX",
|
||||||
"<2,2,202,4>": "",
|
"<2,2,202,4>": {
|
||||||
|
"<2,2,202,4,1>": "CreateParam",
|
||||||
|
"<2,2,202,4,2>": "@WINDOW"
|
||||||
|
},
|
||||||
"<2,2,202,5>": "",
|
"<2,2,202,5>": "",
|
||||||
"<2,2,202,6>": ""
|
"<2,2,202,6>": ""
|
||||||
},
|
},
|
||||||
"<2,2,203>": {
|
"<2,2,203>": {
|
||||||
"<2,2,203,1>": "R",
|
"<2,2,203,1>": "R",
|
||||||
"<2,2,203,2>": "EXECUTE",
|
"<2,2,203,2>": "EXECUTE",
|
||||||
"<2,2,203,3>": "LSL2*STPROCEXE**THRUPUT_REPORT_NEW",
|
"<2,2,203,3>": "LSL2*STPROCEXE**EXPORT_INTERFACE_DICTS",
|
||||||
"<2,2,203,4>": "",
|
"<2,2,203,4>": "",
|
||||||
"<2,2,203,5>": "",
|
"<2,2,203,5>": "",
|
||||||
"<2,2,203,6>": ""
|
"<2,2,203,6>": "",
|
||||||
|
"<2,2,203,7>": "",
|
||||||
|
"<2,2,203,8>": "",
|
||||||
|
"<2,2,203,9>": "",
|
||||||
|
"<2,2,203,10>": "",
|
||||||
|
"<2,2,203,11>": "",
|
||||||
|
"<2,2,203,12>": "",
|
||||||
|
"<2,2,203,13>": "",
|
||||||
|
"<2,2,203,14>": "",
|
||||||
|
"<2,2,203,15>": "STPROC",
|
||||||
|
"<2,2,203,16>": "0"
|
||||||
},
|
},
|
||||||
"<2,2,204>": {
|
"<2,2,204>": {
|
||||||
"<2,2,204,1>": "R",
|
"<2,2,204,1>": "R",
|
||||||
"<2,2,204,2>": "EXECUTE",
|
"<2,2,204,2>": "EXECUTE",
|
||||||
"<2,2,204,3>": "LSL2*OIWINEXE**AD_TEST",
|
"<2,2,204,3>": "LSL2*STPROCEXE**THRUPUT_REPORT_NEW",
|
||||||
"<2,2,204,4>": {
|
"<2,2,204,4>": "",
|
||||||
"<2,2,204,4,1>": "CreateParam",
|
|
||||||
"<2,2,204,4,2>": "@WINDOW"
|
|
||||||
},
|
|
||||||
"<2,2,204,5>": "",
|
"<2,2,204,5>": "",
|
||||||
"<2,2,204,6>": ""
|
"<2,2,204,6>": ""
|
||||||
},
|
},
|
||||||
"<2,2,205>": {
|
"<2,2,205>": {
|
||||||
"<2,2,205,1>": "R",
|
"<2,2,205,1>": "R",
|
||||||
"<2,2,205,2>": "EXECUTE",
|
"<2,2,205,2>": "EXECUTE",
|
||||||
"<2,2,205,3>": "SYSPROG*STPROCEXE**OBJ_CALL_EVENT",
|
"<2,2,205,3>": "LSL2*OIWINEXE**AD_TEST",
|
||||||
"<2,2,205,4>": {
|
"<2,2,205,4>": {
|
||||||
"<2,2,205,4,1>": "@SELF",
|
"<2,2,205,4,1>": "CreateParam",
|
||||||
"<2,2,205,4,2>": "@EVENT",
|
"<2,2,205,4,2>": "@WINDOW"
|
||||||
"<2,2,205,4,3>": "@PARAM1",
|
|
||||||
"<2,2,205,4,4>": "@PARAM2",
|
|
||||||
"<2,2,205,4,5>": "@PARAM3",
|
|
||||||
"<2,2,205,4,6>": "@PARAM4",
|
|
||||||
"<2,2,205,4,7>": "@PARAM5",
|
|
||||||
"<2,2,205,4,8>": "@PARAM6"
|
|
||||||
},
|
},
|
||||||
"<2,2,205,5>": "",
|
"<2,2,205,5>": "",
|
||||||
"<2,2,205,6>": ""
|
"<2,2,205,6>": ""
|
||||||
@ -11251,34 +11306,40 @@
|
|||||||
"<2,2,206>": {
|
"<2,2,206>": {
|
||||||
"<2,2,206,1>": "R",
|
"<2,2,206,1>": "R",
|
||||||
"<2,2,206,2>": "EXECUTE",
|
"<2,2,206,2>": "EXECUTE",
|
||||||
"<2,2,206,3>": "LSL2*STPROCEXE**JONATHAN_TEST",
|
"<2,2,206,3>": "SYSPROG*STPROCEXE**OBJ_CALL_EVENT",
|
||||||
"<2,2,206,4>": "",
|
"<2,2,206,4>": {
|
||||||
|
"<2,2,206,4,1>": "@SELF",
|
||||||
|
"<2,2,206,4,2>": "@EVENT",
|
||||||
|
"<2,2,206,4,3>": "@PARAM1",
|
||||||
|
"<2,2,206,4,4>": "@PARAM2",
|
||||||
|
"<2,2,206,4,5>": "@PARAM3",
|
||||||
|
"<2,2,206,4,6>": "@PARAM4",
|
||||||
|
"<2,2,206,4,7>": "@PARAM5",
|
||||||
|
"<2,2,206,4,8>": "@PARAM6"
|
||||||
|
},
|
||||||
"<2,2,206,5>": "",
|
"<2,2,206,5>": "",
|
||||||
"<2,2,206,6>": ""
|
"<2,2,206,6>": ""
|
||||||
},
|
},
|
||||||
"<2,2,207>": {
|
"<2,2,207>": {
|
||||||
"<2,2,207,1>": "R",
|
"<2,2,207,1>": "R",
|
||||||
"<2,2,207,2>": "EXECUTE",
|
"<2,2,207,2>": "EXECUTE",
|
||||||
"<2,2,207,3>": "LSL2*STPROCEXE**PRINT_REACT_MODE_LOG_SERVICES",
|
"<2,2,207,3>": "LSL2*STPROCEXE**JONATHAN_TEST",
|
||||||
"<2,2,207,4>": "RunAllReport",
|
"<2,2,207,4>": "",
|
||||||
"<2,2,207,5>": "",
|
"<2,2,207,5>": "",
|
||||||
"<2,2,207,6>": ""
|
"<2,2,207,6>": ""
|
||||||
},
|
},
|
||||||
"<2,2,208>": {
|
"<2,2,208>": {
|
||||||
"<2,2,208,1>": "R",
|
"<2,2,208,1>": "R",
|
||||||
"<2,2,208,2>": "EXECUTE",
|
"<2,2,208,2>": "EXECUTE",
|
||||||
"<2,2,208,3>": "LSL2*OIWINEXE**NDW_AUDIT_TRAIL",
|
"<2,2,208,3>": "LSL2*STPROCEXE**PRINT_REACT_MODE_LOG_SERVICES",
|
||||||
"<2,2,208,4>": {
|
"<2,2,208,4>": "RunAllReport",
|
||||||
"<2,2,208,4,1>": "CreateParam",
|
|
||||||
"<2,2,208,4,2>": "@WINDOW"
|
|
||||||
},
|
|
||||||
"<2,2,208,5>": "",
|
"<2,2,208,5>": "",
|
||||||
"<2,2,208,6>": ""
|
"<2,2,208,6>": ""
|
||||||
},
|
},
|
||||||
"<2,2,209>": {
|
"<2,2,209>": {
|
||||||
"<2,2,209,1>": "R",
|
"<2,2,209,1>": "R",
|
||||||
"<2,2,209,2>": "EXECUTE",
|
"<2,2,209,2>": "EXECUTE",
|
||||||
"<2,2,209,3>": "LSL2*OIWINEXE**DBW_AUDIT_MANAGER",
|
"<2,2,209,3>": "LSL2*OIWINEXE**NDW_AUDIT_TRAIL",
|
||||||
"<2,2,209,4>": {
|
"<2,2,209,4>": {
|
||||||
"<2,2,209,4,1>": "CreateParam",
|
"<2,2,209,4,1>": "CreateParam",
|
||||||
"<2,2,209,4,2>": "@WINDOW"
|
"<2,2,209,4,2>": "@WINDOW"
|
||||||
@ -11289,7 +11350,7 @@
|
|||||||
"<2,2,210>": {
|
"<2,2,210>": {
|
||||||
"<2,2,210,1>": "R",
|
"<2,2,210,1>": "R",
|
||||||
"<2,2,210,2>": "EXECUTE",
|
"<2,2,210,2>": "EXECUTE",
|
||||||
"<2,2,210,3>": "LSL2*OIWINEXE**NDW_TOOLS_MODE_CHG",
|
"<2,2,210,3>": "LSL2*OIWINEXE**DBW_AUDIT_MANAGER",
|
||||||
"<2,2,210,4>": {
|
"<2,2,210,4>": {
|
||||||
"<2,2,210,4,1>": "CreateParam",
|
"<2,2,210,4,1>": "CreateParam",
|
||||||
"<2,2,210,4,2>": "@WINDOW"
|
"<2,2,210,4,2>": "@WINDOW"
|
||||||
@ -11300,7 +11361,7 @@
|
|||||||
"<2,2,211>": {
|
"<2,2,211>": {
|
||||||
"<2,2,211,1>": "R",
|
"<2,2,211,1>": "R",
|
||||||
"<2,2,211,2>": "EXECUTE",
|
"<2,2,211,2>": "EXECUTE",
|
||||||
"<2,2,211,3>": "LSL2*OIWINEXE**NDW_REACTORS_MODE_CHG",
|
"<2,2,211,3>": "LSL2*OIWINEXE**NDW_TOOLS_MODE_CHG",
|
||||||
"<2,2,211,4>": {
|
"<2,2,211,4>": {
|
||||||
"<2,2,211,4,1>": "CreateParam",
|
"<2,2,211,4,1>": "CreateParam",
|
||||||
"<2,2,211,4,2>": "@WINDOW"
|
"<2,2,211,4,2>": "@WINDOW"
|
||||||
@ -11318,6 +11379,17 @@
|
|||||||
},
|
},
|
||||||
"<2,2,212,5>": "",
|
"<2,2,212,5>": "",
|
||||||
"<2,2,212,6>": ""
|
"<2,2,212,6>": ""
|
||||||
|
},
|
||||||
|
"<2,2,213>": {
|
||||||
|
"<2,2,213,1>": "R",
|
||||||
|
"<2,2,213,2>": "EXECUTE",
|
||||||
|
"<2,2,213,3>": "LSL2*OIWINEXE**NDW_REACTORS_MODE_CHG",
|
||||||
|
"<2,2,213,4>": {
|
||||||
|
"<2,2,213,4,1>": "CreateParam",
|
||||||
|
"<2,2,213,4,2>": "@WINDOW"
|
||||||
|
},
|
||||||
|
"<2,2,213,5>": "",
|
||||||
|
"<2,2,213,6>": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"<2,3>": {
|
"<2,3>": {
|
||||||
@ -11506,33 +11578,34 @@
|
|||||||
"<2,3,183>": "ADM.EPI_SUSCEPTOR",
|
"<2,3,183>": "ADM.EPI_SUSCEPTOR",
|
||||||
"<2,3,184>": "ADM.TEST_POINT_MAP",
|
"<2,3,184>": "ADM.TEST_POINT_MAP",
|
||||||
"<2,3,185>": "ADM.PRINT_AKRION_TEST",
|
"<2,3,185>": "ADM.PRINT_AKRION_TEST",
|
||||||
"<2,3,186>": "ADM.WH.LOCATION",
|
"<2,3,186>": "ADM.TOOLS.PRS_STAGE_DEFAULTS",
|
||||||
"<2,3,187>": "ADM.WH.WAREHOUSE",
|
"<2,3,187>": "ADM.WH.LOCATION",
|
||||||
"<2,3,188>": "ADM.WH.GENERIC_BAR_CODE_LABEL",
|
"<2,3,188>": "ADM.WH.WAREHOUSE",
|
||||||
"<2,3,189>": "ADM.NIGHTLY_PROCESS_SETUP",
|
"<2,3,189>": "ADM.WH.GENERIC_BAR_CODE_LABEL",
|
||||||
"<2,3,190>": "ADM.RUN_NIGHTLY_PROCESS",
|
"<2,3,190>": "ADM.NIGHTLY_PROCESS_SETUP",
|
||||||
"<2,3,191>": "ADMI.CUST_PROD_TEST_WAFER",
|
"<2,3,191>": "ADM.RUN_NIGHTLY_PROCESS",
|
||||||
"<2,3,192>": "ADM.THRUPUT_TARGETS.FISCAL_YEAR",
|
"<2,3,192>": "ADMI.CUST_PROD_TEST_WAFER",
|
||||||
"<2,3,193>": "ADM.THRUPUT_TARGETS.FISCAL_QUARTER",
|
"<2,3,193>": "ADM.THRUPUT_TARGETS.FISCAL_YEAR",
|
||||||
"<2,3,194>": "ADM.RAS.AC",
|
"<2,3,194>": "ADM.THRUPUT_TARGETS.FISCAL_QUARTER",
|
||||||
"<2,3,195>": "ADM.RAS.DE_GROUPS",
|
"<2,3,195>": "ADM.RAS.AC",
|
||||||
"<2,3,196>": "ADM.RAS.LOSS_CODES",
|
"<2,3,196>": "ADM.RAS.DE_GROUPS",
|
||||||
"<2,3,197>": "ADM.TEST_WFR_USE_CD",
|
"<2,3,197>": "ADM.RAS.LOSS_CODES",
|
||||||
"<2,3,198>": "ADM.DEV.KEEP_ALIVES",
|
"<2,3,198>": "ADM.TEST_WFR_USE_CD",
|
||||||
"<2,3,199>": "ADMIN.DEVELOPER.MES_TASK",
|
"<2,3,199>": "ADM.DEV.KEEP_ALIVES",
|
||||||
"<2,3,200>": "ADMIN.DEVELOPER.SRP_UTILITY",
|
"<2,3,200>": "ADMIN.DEVELOPER.MES_TASK",
|
||||||
"<2,3,201>": "ADMIN.DEVELOPER.DICTIONARY_LISTINGS",
|
"<2,3,201>": "ADMIN.DEVELOPER.SRP_UTILITY",
|
||||||
"<2,3,202>": "ADM.DEVELOPER.INTERFACE_DICT_EXPORT",
|
"<2,3,202>": "ADMIN.DEVELOPER.DICTIONARY_LISTINGS",
|
||||||
"<2,3,203>": "ADMIN.DEVELOPER.THRUPUT_TEST",
|
"<2,3,203>": "ADM.DEVELOPER.INTERFACE_DICT_EXPORT",
|
||||||
"<2,3,204>": "ADMIN.DEVELOPER.AD_TEST",
|
"<2,3,204>": "ADMIN.DEVELOPER.THRUPUT_TEST",
|
||||||
"<2,3,205>": "ADMIN.DEVELOPER.SESSION_MANAGER",
|
"<2,3,205>": "ADMIN.DEVELOPER.AD_TEST",
|
||||||
"<2,3,206>": "ADMIN.DEVELOPER.WEBTEST",
|
"<2,3,206>": "ADMIN.DEVELOPER.SESSION_MANAGER",
|
||||||
"<2,3,207>": "ADMIN.DEVELOPER.ALL_REACTOR_MODES",
|
"<2,3,207>": "ADMIN.DEVELOPER.WEBTEST",
|
||||||
"<2,3,208>": "ADM.DEV.ARCHIVE.AUDIT_TRAIL",
|
"<2,3,208>": "ADMIN.DEVELOPER.ALL_REACTOR_MODES",
|
||||||
"<2,3,209>": "ADM.DEV.ARCHIVE.AUDIT_MANAGER",
|
"<2,3,209>": "ADM.DEV.ARCHIVE.AUDIT_TRAIL",
|
||||||
"<2,3,210>": "ADMIN.MASS_TOOL_MODE_CHANGE",
|
"<2,3,210>": "ADM.DEV.ARCHIVE.AUDIT_MANAGER",
|
||||||
"<2,3,211>": "ADMIN.MASS_REACTOR_MODE_CHANGE",
|
"<2,3,211>": "ADMIN.MASS_TOOL_MODE_CHANGE",
|
||||||
"<2,3,212>": "ADMIN.TOOLS_EVAC"
|
"<2,3,212>": "ADMIN.MASS_REACTOR_MODE_CHANGE",
|
||||||
|
"<2,3,213>": "ADMIN.TOOLS_EVAC"
|
||||||
},
|
},
|
||||||
"<2,4>": "0"
|
"<2,4>": "0"
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
5207
LSL2/OIWIN/PRS_STAGE_DEFECT_DEFAULTS.json
Normal file
5207
LSL2/OIWIN/PRS_STAGE_DEFECT_DEFAULTS.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -423,7 +423,7 @@
|
|||||||
"<1,31>": "",
|
"<1,31>": "",
|
||||||
"<1,32>": "",
|
"<1,32>": "",
|
||||||
"<1,33>": "",
|
"<1,33>": "",
|
||||||
"<1,34>": "",
|
"<1,34>": "LSL2*IMAGE*ICO*INFINEON",
|
||||||
"<1,35>": "",
|
"<1,35>": "",
|
||||||
"<1,36>": "",
|
"<1,36>": "",
|
||||||
"<1,37>": {
|
"<1,37>": {
|
||||||
|
@ -6655,13 +6655,6 @@
|
|||||||
"<41,35,3,3>": "",
|
"<41,35,3,3>": "",
|
||||||
"<41,35,3,4>": "",
|
"<41,35,3,4>": "",
|
||||||
"<41,35,3,5>": ""
|
"<41,35,3,5>": ""
|
||||||
},
|
|
||||||
"<41,35,4>": {
|
|
||||||
"<41,35,4,1>": "",
|
|
||||||
"<41,35,4,2>": "",
|
|
||||||
"<41,35,4,3>": "",
|
|
||||||
"<41,35,4,4>": "",
|
|
||||||
"<41,35,4,5>": ""
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"<41,36>": "",
|
"<41,36>": "",
|
||||||
@ -7886,7 +7879,7 @@
|
|||||||
"<45,10,2>": "0x200"
|
"<45,10,2>": "0x200"
|
||||||
},
|
},
|
||||||
"<45,11>": {
|
"<45,11>": {
|
||||||
"<45,11,1>": "0x0",
|
"<45,11,1>": "0x80000",
|
||||||
"<45,11,2>": "0x80000000"
|
"<45,11,2>": "0x80000000"
|
||||||
},
|
},
|
||||||
"<45,12>": "45",
|
"<45,12>": "45",
|
||||||
@ -7922,7 +7915,7 @@
|
|||||||
"<45,21>": "",
|
"<45,21>": "",
|
||||||
"<45,22>": "",
|
"<45,22>": "",
|
||||||
"<45,23>": "WM_OUT",
|
"<45,23>": "WM_OUT",
|
||||||
"<45,24>": "SPECIAL_INST",
|
"<45,24>": "SPEC_INST",
|
||||||
"<45,25>": "",
|
"<45,25>": "",
|
||||||
"<45,26>": "",
|
"<45,26>": "",
|
||||||
"<45,27>": "",
|
"<45,27>": "",
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
"<8,2>": {
|
"<8,2>": {
|
||||||
"<8,2,1>": "MET",
|
"<8,2,1>": "MET",
|
||||||
"<8,2,2>": "Metrology",
|
"<8,2,2>": "Metrology",
|
||||||
"<8,2,3>": "TODD_C, JEANNE_M"
|
"<8,2,3>": "TODD_C, JEANNE_M, JFUENTE1, JUSTIN_H, JONATHON_S, MARROQUINBRA, TIFFANY_M"
|
||||||
},
|
},
|
||||||
"<8,3>": {
|
"<8,3>": {
|
||||||
"<8,3,1>": "MTC",
|
"<8,3,1>": "MTC",
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
"<2>": "-1",
|
"<2>": "-1",
|
||||||
"<3>": "-1",
|
"<3>": "-1",
|
||||||
"<4>": "-1",
|
"<4>": "-1",
|
||||||
"<5>": "16777215",
|
"<5>": "-2",
|
||||||
"<6>": {
|
"<6>": {
|
||||||
"<6,1>": {
|
"<6,1>": {
|
||||||
"<6,1,1>": "Tahoma",
|
"<6,1,1>": "Tahoma",
|
||||||
@ -31,7 +31,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"<7>": "REACT_ITEM",
|
"<7>": "REACT_ITEM",
|
||||||
"<8>": "BY @ID",
|
"<8>": "BY-DSND ENTER_DTM",
|
||||||
"<9>": {
|
"<9>": {
|
||||||
"<9,1>": {
|
"<9,1>": {
|
||||||
"<9,1,1>": "RI_NO",
|
"<9,1,1>": "RI_NO",
|
||||||
@ -120,6 +120,22 @@
|
|||||||
"<9,11,4>": "C",
|
"<9,11,4>": "C",
|
||||||
"<9,11,5>": "D4/",
|
"<9,11,5>": "D4/",
|
||||||
"<9,11,6>": "Retire Dt"
|
"<9,11,6>": "Retire Dt"
|
||||||
|
},
|
||||||
|
"<9,12>": {
|
||||||
|
"<9,12,1>": "ENTER_DTM",
|
||||||
|
"<9,12,2>": "14",
|
||||||
|
"<9,12,3>": "L",
|
||||||
|
"<9,12,4>": "C",
|
||||||
|
"<9,12,5>": "DT2/^H",
|
||||||
|
"<9,12,6>": "Enter Dtm"
|
||||||
|
},
|
||||||
|
"<9,13>": {
|
||||||
|
"<9,13,1>": "CURR_STATUS",
|
||||||
|
"<9,13,2>": "5",
|
||||||
|
"<9,13,3>": "L",
|
||||||
|
"<9,13,4>": "C",
|
||||||
|
"<9,13,5>": "[CONV_ITEM_CURR_STATUS]",
|
||||||
|
"<9,13,6>": "Curr Status"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"<10>": "T",
|
"<10>": "T",
|
||||||
@ -147,7 +163,17 @@
|
|||||||
"<32>": "0",
|
"<32>": "0",
|
||||||
"<33>": "1",
|
"<33>": "1",
|
||||||
"<34>": "16777215",
|
"<34>": "16777215",
|
||||||
"<35>": "16777215"
|
"<35>": "16766894",
|
||||||
|
"<36>": "",
|
||||||
|
"<37>": "",
|
||||||
|
"<38>": "",
|
||||||
|
"<39>": "",
|
||||||
|
"<40>": "-2",
|
||||||
|
"<41>": "1000",
|
||||||
|
"<42>": "",
|
||||||
|
"<43>": "",
|
||||||
|
"<44>": "",
|
||||||
|
"<45>": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,7 +9,7 @@
|
|||||||
"<2>": "-1",
|
"<2>": "-1",
|
||||||
"<3>": "-1",
|
"<3>": "-1",
|
||||||
"<4>": "-1",
|
"<4>": "-1",
|
||||||
"<5>": "16777215",
|
"<5>": "-2",
|
||||||
"<6>": {
|
"<6>": {
|
||||||
"<6,1>": {
|
"<6,1>": {
|
||||||
"<6,1,1>": "MS Sans Serif",
|
"<6,1,1>": "MS Sans Serif",
|
||||||
@ -91,7 +91,17 @@
|
|||||||
"<32>": "0",
|
"<32>": "0",
|
||||||
"<33>": "1",
|
"<33>": "1",
|
||||||
"<34>": "16777215",
|
"<34>": "16777215",
|
||||||
"<35>": "16777215"
|
"<35>": "16777215",
|
||||||
|
"<36>": "",
|
||||||
|
"<37>": "",
|
||||||
|
"<38>": "",
|
||||||
|
"<39>": "",
|
||||||
|
"<40>": "-2",
|
||||||
|
"<41>": "1000",
|
||||||
|
"<42>": "",
|
||||||
|
"<43>": "",
|
||||||
|
"<44>": "",
|
||||||
|
"<45>": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -235,7 +235,7 @@ Service SendReminders()
|
|||||||
IF CLType = 'E' THEN
|
IF CLType = 'E' THEN
|
||||||
Desc = CLRec<CALIB_LIST_EQ_DESC$>
|
Desc = CLRec<CALIB_LIST_EQ_DESC$>
|
||||||
SN = CLRec<CALIB_LIST_EQ_SN$>
|
SN = CLRec<CALIB_LIST_EQ_SN$>
|
||||||
Loc = CLRec<CALIB_LIST_EQ_LOC$
|
Loc = CLRec<CALIB_LIST_EQ_LOC$>
|
||||||
NewLine = Desc:' (S/N: ':SN:') located in the ':Loc:' is due for calibration on ':NextCalDt:CRLF$
|
NewLine = Desc:' (S/N: ':SN:') located in the ':Loc:' is due for calibration on ':NextCalDt:CRLF$
|
||||||
END
|
END
|
||||||
IF CLType = 'S' THEN
|
IF CLType = 'S' THEN
|
||||||
|
@ -50,109 +50,112 @@ RETURN Result
|
|||||||
* * * * * * *
|
* * * * * * *
|
||||||
Create:
|
Create:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
obj_AppWindow('Create')
|
obj_AppWindow('Create')
|
||||||
|
|
||||||
Set_Property(@WINDOW,'STATUSLINE',@WINDOW:'.STATUSLINE_FIX')
|
Set_Property(@WINDOW,'STATUSLINE',@WINDOW:'.STATUSLINE_FIX')
|
||||||
|
|
||||||
GOSUB Refresh
|
GOSUB Refresh
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Refresh:
|
Refresh:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
ReactNoGF:
|
ReactNoGF:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
* Don't add a return here
|
* Don't add a return here
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
LUReactor:
|
LUReactor:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
IF NOT(ASSIGNED(Parm1)) THEN FocusControl = '' ELSE FocusControl = Parm1
|
IF NOT(ASSIGNED(Parm1)) THEN FocusControl = '' ELSE FocusControl = Parm1
|
||||||
IF NOT(ASSIGNED(Parm2)) THEN FocusPos = '' ELSE FocusPos = Parm2
|
IF NOT(ASSIGNED(Parm2)) THEN FocusPos = '' ELSE FocusPos = Parm2
|
||||||
|
|
||||||
Set_Status(0)
|
Set_Status(0)
|
||||||
|
|
||||||
TypeOver = ''
|
TypeOver = ''
|
||||||
TypeOver<PSELECT$> = '2' ;* Multiple Select
|
TypeOver<PSELECT$> = '2' ;* Multiple Select
|
||||||
TypeOver<PTYPE$> = 'E' ;* Return entire row
|
TypeOver<PTYPE$> = 'E' ;* Return entire row
|
||||||
|
|
||||||
ReactData = Popup(@WINDOW,TypeOver,'REACTORS')
|
ReactData = Popup(@WINDOW,TypeOver,'REACTORS')
|
||||||
|
|
||||||
IF ReactData = '' THEN RETURN
|
IF ReactData = '' THEN RETURN
|
||||||
|
|
||||||
Set_Property(@WINDOW:'.REACT_NO','LIST',ReactData)
|
Set_Property(@WINDOW:'.REACT_NO','LIST',ReactData)
|
||||||
|
|
||||||
LineCnt = COUNT(ReactData,@FM) + (ReactData NE '')
|
LineCnt = COUNT(ReactData,@FM) + (ReactData NE '')
|
||||||
ColCnt = 7
|
ColCnt = 7
|
||||||
|
|
||||||
FOR Line = 1 TO LineCnt
|
FOR Line = 1 TO LineCnt
|
||||||
FOR Column = 2 TO ColCnt
|
FOR Column = 2 TO ColCnt
|
||||||
stat = Send_Message(@WINDOW:'.REACT_NO','COLOR_BY_POS',Column,Line,GREEN$)
|
stat = Send_Message(@WINDOW:'.REACT_NO','COLOR_BY_POS',Column,Line,GREEN$)
|
||||||
NEXT Column
|
NEXT Column
|
||||||
NEXT Line
|
NEXT Line
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
Cancel:
|
Cancel:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
End_Dialog(@WINDOW,'')
|
End_Dialog(@WINDOW,'')
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
PostEntries:
|
PostEntries:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
ReactNos = Get_Property(@WINDOW:'.REACT_NO','ARRAY')<COL$REACT_NO>
|
|
||||||
Comment = Get_Property(@WINDOW:'.COMMENT','DEFPROP')
|
|
||||||
|
|
||||||
LOOP
|
|
||||||
TestChar = ReactNos[-1,1]
|
|
||||||
UNTIL TestChar NE @VM OR ReactNos = ''
|
|
||||||
ReactNos[-1,1] = ''
|
|
||||||
REPEAT
|
|
||||||
|
|
||||||
EventKeys = '' ;* Keys to return to the REACT_EVENT window for a browse of the newly created records
|
|
||||||
|
|
||||||
IF ReactNos NE '' AND Comment NE '' THEN
|
|
||||||
|
|
||||||
EventDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS') ;* Same DTM for all new records
|
|
||||||
EventType = 'PD' ;* Passdown
|
|
||||||
LoggedBy = @USER4
|
|
||||||
|
|
||||||
ReactCnt = COUNT(ReactNos,@VM) + (ReactNos NE '')
|
ReactNos = Get_Property(@WINDOW:'.REACT_NO','ARRAY')<COL$REACT_NO>
|
||||||
|
Comment = Get_Property(@WINDOW:'.COMMENT','DEFPROP')
|
||||||
|
|
||||||
FOR I = 1 TO ReactCnt
|
LOOP
|
||||||
ReactNo = ReactNos<1,I>
|
TestChar = ReactNos[-1,1]
|
||||||
CurrMode = XLATE('REACTOR',ReactNo,'CURR_MODE','X')
|
UNTIL TestChar NE @VM OR ReactNos = ''
|
||||||
|
ReactNos[-1,1] = ''
|
||||||
|
REPEAT
|
||||||
|
|
||||||
|
EventKeys = '' ;* Keys to return to the REACT_EVENT window for a browse of the newly created records
|
||||||
|
|
||||||
|
IF ReactNos NE '' AND Comment NE '' THEN
|
||||||
|
|
||||||
obj_React_Event('Create',ReactNo:@RM:EventDTM:@RM:EventType:@RM:LoggedBy:@RM:Comment:@RM:@RM:CurrMode)
|
EventDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS') ;* Same DTM for all new records
|
||||||
EventKeys<I> = ReactNo:'*':ICONV(EventDTM,'DT')
|
EventType = 'PD' ;* Passdown
|
||||||
NEXT I
|
LoggedBy = @USER4
|
||||||
|
|
||||||
END
|
ReactCnt = COUNT(ReactNos,@VM) + (ReactNos NE '')
|
||||||
|
|
||||||
End_Dialog(@WINDOW,EventKeys)
|
FOR I = 1 TO ReactCnt
|
||||||
|
ReactNo = ReactNos<1,I>
|
||||||
|
CurrMode = XLATE('REACTOR',ReactNo,'CURR_MODE','X')
|
||||||
|
|
||||||
|
obj_React_Event('Create',ReactNo:@RM:EventDTM:@RM:EventType:@RM:LoggedBy:@RM:Comment:@RM:@RM:CurrMode)
|
||||||
|
|
||||||
|
ErrCode = ''
|
||||||
|
If Get_Status(ErrCode) then
|
||||||
|
Msg(@Window, '', 'OK', '', 'Process Error':@FM:'Error posting entries. ':ErrCode)
|
||||||
|
end else
|
||||||
|
Set_Property(@Window:'.REACT_NO', 'LIST', '')
|
||||||
|
Set_Property(@Window:'.COMMENT', 'TEXT', '')
|
||||||
|
end
|
||||||
|
|
||||||
|
EventKeys<I> = ReactNo:'*':ICONV(EventDTM,'DT')
|
||||||
|
NEXT I
|
||||||
|
|
||||||
|
END else
|
||||||
|
Msg(@Window, '', 'OK', '', 'Process Error':@FM:'React No(s) and Comment must not be null!')
|
||||||
|
end
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ $INSERT TOOL_CLASS_EQUATES
|
|||||||
$INSERT SECURITY_RIGHTS_EQU
|
$INSERT SECURITY_RIGHTS_EQU
|
||||||
$INSERT RTI_STYLE_EQUATES
|
$INSERT RTI_STYLE_EQUATES
|
||||||
$INSERT PROD_SPEC_EQUATES
|
$INSERT PROD_SPEC_EQUATES
|
||||||
|
$Insert PRS_STAGE_DEFECT_DEFAULTS_EQUATES
|
||||||
|
|
||||||
EQU CRLF$ TO \0D0A\
|
EQU CRLF$ TO \0D0A\
|
||||||
|
|
||||||
@ -54,6 +55,11 @@ EQU COL$SPOTS TO 8
|
|||||||
EQU COL$FOV TO 9
|
EQU COL$FOV TO 9
|
||||||
EQU COL$BL_DEFECTS TO 10
|
EQU COL$BL_DEFECTS TO 10
|
||||||
|
|
||||||
|
EQU COL$BACK_SCRATCHES TO 1
|
||||||
|
EQU COL$BACK_SCRATCH_LEN TO 2
|
||||||
|
EQU COL$BACK_NODULES TO 3
|
||||||
|
EQU COL$BACK_SPIKES TO 4
|
||||||
|
|
||||||
|
|
||||||
EQU COL$MET_TEST TO 1
|
EQU COL$MET_TEST TO 1
|
||||||
EQU COL$MET_PROP TO 2
|
EQU COL$MET_PROP TO 2
|
||||||
@ -511,67 +517,29 @@ SurfscanDefaults:
|
|||||||
|
|
||||||
Stage = Get_Property(@WINDOW:'.STAGE','DEFPROP')
|
Stage = Get_Property(@WINDOW:'.STAGE','DEFPROP')
|
||||||
|
|
||||||
IF Stage = 'FWI' OR Stage = 'LWI' THEN Stage = 'WFR'
|
|
||||||
|
|
||||||
BEGIN CASE
|
BEGIN CASE
|
||||||
CASE Stage = 'PRE' AND EntID = @WINDOW:'.VIRGIN_DEFAULTS'
|
CASE Stage = 'PRE' AND EntID = @WINDOW:'.VIRGIN_DEFAULTS'
|
||||||
Vals = ''
|
DefValRec = Xlate('PRS_STAGE_DEFECT_DEFAULTS', 'PRE-VIRGIN', '', 'X')
|
||||||
Vals<COL$LPD> = '10'
|
|
||||||
Vals<COL$SCRATCHES> = '1'
|
|
||||||
Vals<COL$SCRATCH_LEN> = '1'
|
|
||||||
Vals<COL$PITS> = '1'
|
|
||||||
Vals<COL$MOUNDS> = '1'
|
|
||||||
Vals<COL$STACK_FAULTS> = ''
|
|
||||||
Vals<COL$SPIKES> = ''
|
|
||||||
Vals<COL$SPOTS> = '1'
|
|
||||||
Vals<COL$FOV> = '1'
|
|
||||||
Vals<COL$BL_DEFECTS > = '1'
|
|
||||||
|
|
||||||
CheckVals = '0':@RM:'1'
|
CheckVals = '0':@RM:'1'
|
||||||
|
|
||||||
CASE Stage = 'PRE' AND EntID = @WINDOW:'.BL_DEFAULTS'
|
CASE Stage = 'PRE' AND EntID = @WINDOW:'.BL_DEFAULTS'
|
||||||
Vals = ''
|
DefValRec = Xlate('PRS_STAGE_DEFECT_DEFAULTS', 'PRE-BURIED', '', 'X')
|
||||||
Vals<COL$LPD> = '10'
|
|
||||||
Vals<COL$SCRATCHES> = '1'
|
|
||||||
Vals<COL$SCRATCH_LEN> = '1'
|
|
||||||
Vals<COL$PITS> = '10'
|
|
||||||
Vals<COL$MOUNDS> = '10'
|
|
||||||
Vals<COL$STACK_FAULTS> = ''
|
|
||||||
Vals<COL$SPIKES> = ''
|
|
||||||
Vals<COL$SPOTS> = '5'
|
|
||||||
Vals<COL$FOV> = '2'
|
|
||||||
Vals<COL$BL_DEFECTS > = '10'
|
|
||||||
|
|
||||||
CheckVals = '1':@RM:'1'
|
CheckVals = '1':@RM:'1'
|
||||||
|
|
||||||
CASE Stage = 'WFR' AND EntID = @WINDOW:'.VIRGIN_DEFAULTS'
|
CASE Stage = 'FWI' AND EntID = @WINDOW:'.VIRGIN_DEFAULTS'
|
||||||
Vals = ''
|
DefValRec = Xlate('PRS_STAGE_DEFECT_DEFAULTS', 'FWI-VIRGIN', '', 'X')
|
||||||
Vals<COL$LPD> = '20'
|
|
||||||
Vals<COL$SCRATCHES> = '1'
|
|
||||||
Vals<COL$SCRATCH_LEN> = '1'
|
|
||||||
Vals<COL$PITS> = '1'
|
|
||||||
Vals<COL$MOUNDS> = '1'
|
|
||||||
Vals<COL$STACK_FAULTS> = '10'
|
|
||||||
Vals<COL$SPIKES> = '5'
|
|
||||||
Vals<COL$SPOTS> = '1'
|
|
||||||
Vals<COL$FOV> = '1'
|
|
||||||
Vals<COL$BL_DEFECTS > = '1'
|
|
||||||
|
|
||||||
CheckVals = '1':@RM:'1'
|
CheckVals = '1':@RM:'1'
|
||||||
|
|
||||||
CASE Stage = 'WFR' AND EntID = @WINDOW:'.BL_DEFAULTS'
|
CASE Stage = 'FWI' AND EntID = @WINDOW:'.BL_DEFAULTS'
|
||||||
Vals = ''
|
DefValRec = Xlate('PRS_STAGE_DEFECT_DEFAULTS', 'FWI-BURIED', '', 'X')
|
||||||
Vals<COL$LPD> = '20'
|
CheckVals = '1':@RM:'1'
|
||||||
Vals<COL$SCRATCHES> = '1'
|
|
||||||
Vals<COL$SCRATCH_LEN> = '10'
|
|
||||||
Vals<COL$PITS> = '20'
|
|
||||||
Vals<COL$MOUNDS> = '20'
|
|
||||||
Vals<COL$STACK_FAULTS> = '20'
|
|
||||||
Vals<COL$SPIKES> = '5'
|
|
||||||
Vals<COL$SPOTS> = '1'
|
|
||||||
Vals<COL$FOV> = '1'
|
|
||||||
Vals<COL$BL_DEFECTS > = '20'
|
|
||||||
|
|
||||||
|
CASE Stage = 'LWI' AND EntID = @WINDOW:'.VIRGIN_DEFAULTS'
|
||||||
|
DefValRec = Xlate('PRS_STAGE_DEFECT_DEFAULTS', 'LWI-VIRGIN', '', 'X')
|
||||||
|
CheckVals = '1':@RM:'1'
|
||||||
|
|
||||||
|
CASE Stage = 'LWI' AND EntID = @WINDOW:'.BL_DEFAULTS'
|
||||||
|
DefValRec = Xlate('PRS_STAGE_DEFECT_DEFAULTS', 'LWI-BURIED', '', 'X')
|
||||||
CheckVals = '1':@RM:'1'
|
CheckVals = '1':@RM:'1'
|
||||||
|
|
||||||
CASE 1
|
CASE 1
|
||||||
@ -579,6 +547,23 @@ BEGIN CASE
|
|||||||
|
|
||||||
END CASE
|
END CASE
|
||||||
|
|
||||||
|
Vals = ''
|
||||||
|
Vals<COL$LPD> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_FRONT_LPD$>
|
||||||
|
Vals<COL$SCRATCHES> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_FRONT_SCRATCHES$>
|
||||||
|
Vals<COL$SCRATCH_LEN> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_FRONT_SCRATCH_LEN$>
|
||||||
|
Vals<COL$PITS> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_FRONT_PITS$>
|
||||||
|
Vals<COL$MOUNDS> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_FRONT_MOUNDS$>
|
||||||
|
Vals<COL$STACK_FAULTS> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_FRONT_STACK_FAULTS$>
|
||||||
|
Vals<COL$SPIKES> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_FRONT_SPIKES$>
|
||||||
|
Vals<COL$SPOTS> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_FRONT_SPOTS$>
|
||||||
|
Vals<COL$FOV> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_FRONT_FOV$>
|
||||||
|
Vals<COL$BL_DEFECTS> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_FRONT_BL_DEFECTS$>
|
||||||
|
BackVals = ''
|
||||||
|
BackVals<COL$BACK_SCRATCHES> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_BACK_SCRATCHES$>
|
||||||
|
BackVals<COL$BACK_SCRATCH_LEN> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_BACK_SCRATCH_LEN$>
|
||||||
|
BackVals<COL$BACK_NODULES> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_BACK_NODULES$>
|
||||||
|
BackVals<COL$BACK_SPIKES> = DefValRec<PRS_STAGE_DEFECT_DEFAULTS_BACK_SPIKES$>
|
||||||
|
|
||||||
CurrVals = Get_Property(@WINDOW:'.VISUAL_PARMS','LIST')<1>
|
CurrVals = Get_Property(@WINDOW:'.VISUAL_PARMS','LIST')<1>
|
||||||
|
|
||||||
CONVERT @VM TO '' IN CurrVals
|
CONVERT @VM TO '' IN CurrVals
|
||||||
@ -608,6 +593,13 @@ IF Response THEN
|
|||||||
|
|
||||||
Set_Property(@WINDOW:'.VISUAL_PARMS','LIST',vpList)
|
Set_Property(@WINDOW:'.VISUAL_PARMS','LIST',vpList)
|
||||||
|
|
||||||
|
vpList = ''
|
||||||
|
FOR I = 1 TO 4
|
||||||
|
vpList<1,I> = BackVals<I>
|
||||||
|
NEXT I
|
||||||
|
|
||||||
|
Set_Property(@WINDOW:'.BSIDE_PARMS','LIST',vpList)
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
@ -1235,3 +1227,5 @@ return
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ Declare Function Get_Property, Get_Status, Dialog_Box, Utility, Popup, Collect.I
|
|||||||
Declare Function Send_Message, Msg, Security_Check, obj_React_Item, Select_Into, MemberOf, Create_Dialog, obj_Calendar
|
Declare Function Send_Message, Msg, Security_Check, obj_React_Item, Select_Into, MemberOf, Create_Dialog, obj_Calendar
|
||||||
Declare Function GetAsyncKeyState, obj_Tables, MemberOf, Environment_Services, Database_Services, Rds_Services
|
Declare Function GetAsyncKeyState, obj_Tables, MemberOf, Environment_Services, Database_Services, Rds_Services
|
||||||
Declare Function Reactor_Services, Error_Services, React_Servs_Services, Reactor_Log_Services, Send_Event, SRP_List
|
Declare Function Reactor_Services, Error_Services, React_Servs_Services, Reactor_Log_Services, Send_Event, SRP_List
|
||||||
Declare Function Nica_Orders_Services
|
Declare Function Nica_Orders_Services, SRP_Date, React_Item_Services, SRP_Datetime, Datetime
|
||||||
|
|
||||||
$Insert MSG_EQUATES
|
$Insert MSG_EQUATES
|
||||||
$Insert APPCOLORS
|
$Insert APPCOLORS
|
||||||
@ -1229,64 +1229,51 @@ SvcsOptions:
|
|||||||
If ItemType NE '' then
|
If ItemType NE '' then
|
||||||
|
|
||||||
RetVal = ''
|
RetVal = ''
|
||||||
|
ItemType = ICONV(ItemType,'[CONV_CODE_DESC,REACT_ITEM_TYPE]')
|
||||||
|
|
||||||
ItemType = ICONV(ItemType,'[CONV_CODE_DESC,REACT_ITEM_TYPE]')
|
RIKeys = React_Item_Services('GetReactItems', ItemType, 'N,U')
|
||||||
|
|
||||||
OPEN 'DICT.REACT_ITEM' to DictReactItem else
|
If Error_Services('NoError') then
|
||||||
ErrMsg('Unable to open DICT.REACT_ITEM')
|
|
||||||
return
|
TypeOver = ''
|
||||||
end
|
TypeOVer<PMODE$> = 'K'
|
||||||
|
TypeOver<PDISPLAY$> = RIKeys
|
||||||
SearchString = 'RI_TYPE':@VM:ItemType:@FM
|
RetVal = Popup(@Window,TypeOver,'REACT_ITEM')
|
||||||
SearchString := 'CURR_STATUS':@VM:'N':@VM:'U':@FM
|
|
||||||
|
If RetVal NE '' then
|
||||||
RIKeys = ''
|
obj_AppWindow('LUValReturn',RetVal:@RM:@Window:'.SERV_INFO':@RM:SelPos)
|
||||||
Option = ''
|
|
||||||
Flag = ''
|
RIRec = XLATE('REACT_ITEM',RetVal,'','X')
|
||||||
|
|
||||||
Btree.Extract(SearchString,'REACT_ITEM',DictReactItem,RIKeys,Option,Flag)
|
If RIRec<REACT_ITEM_RI_TYPE$> = 'T' then
|
||||||
If Get_Status(errCode) then
|
CardWindow = 'REACT_ITEM'
|
||||||
ErrMsg(errCode)
|
CardKey = RetVal
|
||||||
return
|
DefaultRec = ''
|
||||||
end
|
NewCardCtrl = ''
|
||||||
|
RecalcCtrl = @Window:'.SERV_INFO'
|
||||||
TypeOver = ''
|
RecalcPos = SelPos
|
||||||
TypeOVer<PMODE$> = 'K'
|
RetCtrl = @Window:'.SERV_INFO'
|
||||||
TypeOver<PDISPLAY$> = RIKeys
|
RetPos = SelPos
|
||||||
RetVal = Popup(@Window,TypeOver,'REACT_ITEM')
|
|
||||||
|
oAParms = CardWindow:@RM:CardKey:@RM:DefaultRec:@RM:NewCardCtrl:@RM:RecalcCtrl:@RM:RecalcPos:@RM:RetCtrl:@RM:RetPos
|
||||||
If RetVal NE '' then
|
|
||||||
obj_AppWindow('LUValReturn',RetVal:@RM:@Window:'.SERV_INFO':@RM:SelPos)
|
obj_AppWindow('ViewNewCard',oAParms)
|
||||||
|
|
||||||
RIRec = XLATE('REACT_ITEM',RetVal,'','X')
|
Set_Property('REACT_ITEM.TUBE_GRADE','FOCUS',1)
|
||||||
|
|
||||||
If RIRec<REACT_ITEM_RI_TYPE$> = 'T' then
|
If Get_Status(errCode) then
|
||||||
CardWindow = 'REACT_ITEM'
|
ErrMsg(errCode)
|
||||||
CardKey = RetVal
|
end
|
||||||
DefaultRec = ''
|
end
|
||||||
NewCardCtrl = ''
|
|
||||||
RecalcCtrl = @Window:'.SERV_INFO'
|
GoSub Refresh
|
||||||
RecalcPos = SelPos
|
end
|
||||||
RetCtrl = @Window:'.SERV_INFO'
|
end else
|
||||||
RetPos = SelPos
|
Error_Services('DisplayError')
|
||||||
|
|
||||||
oAParms = CardWindow:@RM:CardKey:@RM:DefaultRec:@RM:NewCardCtrl:@RM:RecalcCtrl:@RM:RecalcPos:@RM:RetCtrl:@RM:RetPos
|
|
||||||
|
|
||||||
obj_AppWindow('ViewNewCard',oAParms)
|
|
||||||
|
|
||||||
Set_Property('REACT_ITEM.TUBE_GRADE','FOCUS',1)
|
|
||||||
|
|
||||||
If Get_Status(errCode) then
|
|
||||||
ErrMsg(errCode)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
GoSub Refresh
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end ;* End of check for null SNReq
|
end ;* End of check for null SNReq
|
||||||
|
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
GoSub Refresh
|
GoSub Refresh
|
||||||
@ -1877,4 +1864,3 @@ ColorRemRiTable:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -1099,7 +1099,7 @@ SignSupVer:
|
|||||||
************************************************************************
|
************************************************************************
|
||||||
WMOKey = Get_Property(@WINDOW,'ID')
|
WMOKey = Get_Property(@WINDOW,'ID')
|
||||||
PSNo = Get_Property(@WINDOW:'.PS_NO)','TEXT')
|
PSNo = Get_Property(@WINDOW:'.PS_NO)','TEXT')
|
||||||
VerInst = XLATE('PRS_STAGE',PSNo:'*QA',PRS_STAGE_INST$,'X')
|
VerInst = XLATE('PRS_STAGE',PSNo:'*MO_QA',PRS_STAGE_INST$,'X')
|
||||||
IF (VerInst NE '') THEN
|
IF (VerInst NE '') THEN
|
||||||
Yes = Dialog_Box( 'RDS_VER', @WINDOW, VerInst )
|
Yes = Dialog_Box( 'RDS_VER', @WINDOW, VerInst )
|
||||||
IF NOT(Yes) THEN
|
IF NOT(Yes) THEN
|
||||||
@ -1711,129 +1711,142 @@ AddMakeup:
|
|||||||
END
|
END
|
||||||
NEXT I
|
NEXT I
|
||||||
|
|
||||||
Response = Dialog_Box('NDW_MAKEUP_WAFERS', @Window, WOMatKey)
|
Continue = True$
|
||||||
|
ShowSpecInst = Xlate('PROD_SPEC', PSNo, PROD_SPEC_SHOW_SPEC_INST_ON_MU_ADD$, 'X')
|
||||||
|
If ShowSpecInst then
|
||||||
|
SpecInst = Xlate('PROD_SPEC', PSNo, PROD_SPEC_SPEC_INST$, 'X')
|
||||||
|
If SpecInst NE '' then
|
||||||
|
Continue = Dialog_Box('NDW_ACKNOWLEDGE_MESSAGE', @Window, SpecInst)
|
||||||
|
If Not(Continue) then
|
||||||
|
Msg(@Window, '', 'OK', '', 'Process Error':@FM:'This PSN requires you to acknowledge special instructions to add makeup wafers.')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
Begin Case
|
If Continue then
|
||||||
Case Response EQ True$
|
Response = Dialog_Box('NDW_MAKEUP_WAFERS', @Window, WOMatKey)
|
||||||
// User requested to convert the current cassette into a makeup box.
|
|
||||||
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
Begin Case
|
||||||
If Error_Services('NoError') then
|
Case Response EQ True$
|
||||||
SAPBatchNo = WOMatRec<WO_MAT_SAP_BATCH_NO$>
|
|
||||||
SAPTXDtm = WOMatRec<WO_MAT_SAP_TX_DTM$>
|
|
||||||
AwaitingBatchNo = ( (SAPTXDtm NE '') and (SAPBatchNo EQ '') )
|
|
||||||
HasBatchNo = (SAPBatchNo NE '')
|
|
||||||
FullBoxReject = (SAPBatchNo[-1, 1] = 'R')
|
|
||||||
Begin Case
|
|
||||||
Case AwaitingBatchNo
|
|
||||||
InvalidRequest = True$
|
|
||||||
ErrMsg('WARNING: Cassette ineligible to be converted as it is awaiting a batch number from SAP.')
|
|
||||||
Return
|
|
||||||
Case FullBoxReject
|
|
||||||
InvalidRequest = True$
|
|
||||||
ErrMsg('WARNING: Cassette is ineligible to be converted as it is a full box reject.')
|
|
||||||
Return
|
|
||||||
Case HasBatchNo
|
|
||||||
// Operation limited to LEAD and SUPERVISOR groups
|
|
||||||
OverrideMsg = "Cassette has a batch number. SUPERVISOR or LEAD must override."
|
|
||||||
Response = Msg(@Window, '', 'OVERRIDE', '', OverrideMsg)
|
|
||||||
|
|
||||||
Begin Case
|
|
||||||
Case Response EQ 1
|
|
||||||
Response = True$ ; // User Clicked Override
|
|
||||||
Case Response EQ 2
|
|
||||||
Response = False$ ; // User Clicked Cancel
|
|
||||||
Case Response EQ char(27)
|
|
||||||
Response = False$ ; // User Pressed Escape Key
|
|
||||||
End Case
|
|
||||||
|
|
||||||
If Response EQ True$ then
|
|
||||||
Response = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:'LEAD':@VM:'SUPERVISOR')
|
|
||||||
Authorized = Response<1>
|
|
||||||
end else
|
|
||||||
Authorized = False$
|
|
||||||
end
|
|
||||||
If Not(Authorized) then Return
|
|
||||||
Case Otherwise$
|
|
||||||
Null
|
|
||||||
End Case
|
|
||||||
|
|
||||||
AvailMU_WMOKeys = ''
|
|
||||||
UserResp = Response
|
|
||||||
MakeupBox = ''
|
|
||||||
|
|
||||||
// User requested to convert the current cassette into a makeup box.
|
// User requested to convert the current cassette into a makeup box.
|
||||||
// Verify the quantity before proceeding.
|
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
||||||
If WMOutKey NE '' then
|
If Error_Services('NoError') then
|
||||||
Parms = ''
|
SAPBatchNo = WOMatRec<WO_MAT_SAP_BATCH_NO$>
|
||||||
Parms<1> = WMOutKey ; // Cassette to verify wafer count of.
|
SAPTXDtm = WOMatRec<WO_MAT_SAP_TX_DTM$>
|
||||||
Parms<2> = 0 ; // Wafer count adjustment - 0 because converting box.
|
AwaitingBatchNo = ( (SAPTXDtm NE '') and (SAPBatchNo EQ '') )
|
||||||
Parms<3> = 'MU' ; // Wafer counter tool location
|
HasBatchNo = (SAPBatchNo NE '')
|
||||||
Proceed = Dialog_Box('NDW_WAFER_COUNTER', @Window, Parms)
|
FullBoxReject = (SAPBatchNo[-1, 1] = 'R')
|
||||||
If Proceed NE True$ then Return
|
Begin Case
|
||||||
|
Case AwaitingBatchNo
|
||||||
|
InvalidRequest = True$
|
||||||
|
ErrMsg('WARNING: Cassette ineligible to be converted as it is awaiting a batch number from SAP.')
|
||||||
|
Return
|
||||||
|
Case FullBoxReject
|
||||||
|
InvalidRequest = True$
|
||||||
|
ErrMsg('WARNING: Cassette is ineligible to be converted as it is a full box reject.')
|
||||||
|
Return
|
||||||
|
Case HasBatchNo
|
||||||
|
// Operation limited to LEAD and SUPERVISOR groups
|
||||||
|
OverrideMsg = "Cassette has a batch number. SUPERVISOR or LEAD must override."
|
||||||
|
Response = Msg(@Window, '', 'OVERRIDE', '', OverrideMsg)
|
||||||
|
|
||||||
|
Begin Case
|
||||||
|
Case Response EQ 1
|
||||||
|
Response = True$ ; // User Clicked Override
|
||||||
|
Case Response EQ 2
|
||||||
|
Response = False$ ; // User Clicked Cancel
|
||||||
|
Case Response EQ char(27)
|
||||||
|
Response = False$ ; // User Pressed Escape Key
|
||||||
|
End Case
|
||||||
|
|
||||||
|
If Response EQ True$ then
|
||||||
|
Response = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:'LEAD':@VM:'SUPERVISOR')
|
||||||
|
Authorized = Response<1>
|
||||||
|
end else
|
||||||
|
Authorized = False$
|
||||||
|
end
|
||||||
|
If Not(Authorized) then Return
|
||||||
|
Case Otherwise$
|
||||||
|
Null
|
||||||
|
End Case
|
||||||
|
|
||||||
|
AvailMU_WMOKeys = ''
|
||||||
|
UserResp = Response
|
||||||
|
MakeupBox = ''
|
||||||
|
|
||||||
|
// User requested to convert the current cassette into a makeup box.
|
||||||
|
// Verify the quantity before proceeding.
|
||||||
|
If WMOutKey NE '' then
|
||||||
|
Parms = ''
|
||||||
|
Parms<1> = WMOutKey ; // Cassette to verify wafer count of.
|
||||||
|
Parms<2> = 0 ; // Wafer count adjustment - 0 because converting box.
|
||||||
|
Parms<3> = 'MU' ; // Wafer counter tool location
|
||||||
|
Proceed = Dialog_Box('NDW_WAFER_COUNTER', @Window, Parms)
|
||||||
|
If Proceed NE True$ then Return
|
||||||
|
end else
|
||||||
|
ErrMsg('Error starting wafer counter check. WM_OUT key is missing.')
|
||||||
|
end
|
||||||
|
|
||||||
|
CheckValue = 1
|
||||||
|
|
||||||
|
FieldNo = WO_MAT_EPO_MAKEUP_BOX$
|
||||||
|
obj_WO_Mat('ChangeFlag',WOMatKey:@RM:FieldNo:@RM:CheckValue) ;* Set WMO_MAKEUP flag on WM_OUT
|
||||||
|
IF Get_Status(errCode) THEN ErrMsg(errCode)
|
||||||
|
|
||||||
|
Set_Property(@WINDOW:'.MAKEUP_BOX','DEFPROP',CheckValue) ;* Make this the makeup box
|
||||||
|
Send_Event(@WINDOW,'WRITE') ;* Write the record
|
||||||
|
|
||||||
|
WMOKey = WONo:'*':ProcStepNo:'*':CassNo
|
||||||
|
obj_AppWindow('LoadFormKeys',@WINDOW:@RM:WMOKey) ;* Reread the updated record
|
||||||
|
|
||||||
|
Return
|
||||||
end else
|
end else
|
||||||
ErrMsg('Error starting wafer counter check. WM_OUT key is missing.')
|
ErrMsg('WARNING: Error reading WO_MAT record.')
|
||||||
|
Return
|
||||||
|
end
|
||||||
|
Case Response EQ ''
|
||||||
|
// User has cancelled this process.
|
||||||
|
Return
|
||||||
|
Case Otherwise$
|
||||||
|
// User has selected a makeup box to use and backfill.
|
||||||
|
AvailMU_WMOKeys = Response
|
||||||
|
MakeupBox = Response
|
||||||
|
MuWfrsNeeded = SelCnt
|
||||||
|
If AvailMU_WMOKeys NE '' then
|
||||||
|
// Wafer counter check - Account for the possibility of selecting more than one makeup box.
|
||||||
|
For each MuWmoKey in AvailMU_WMOKeys using @FM
|
||||||
|
MuWoMatKey = Field(MuWmoKey, '*', 1):'*':Field(MuWmoKey, '*', 3)
|
||||||
|
QtyAdj = MuWfrsNeeded
|
||||||
|
CurrMuWfrCnt = obj_WO_Mat('CurrWaferCnt', MuWoMatKey)
|
||||||
|
If MuWfrsNeeded GT CurrMuWfrCnt then
|
||||||
|
QtyAdj = CurrMuWfrCnt
|
||||||
|
MuWfrsNeeded -= CurrMuWfrCnt
|
||||||
|
end
|
||||||
|
Parms = ''
|
||||||
|
Parms<1> = MuWmoKey ; // Cassette to verify wafer count of.
|
||||||
|
Parms<2> = QtyAdj ; // Wafer count adjustment - 0 because converting box.
|
||||||
|
Parms<3> = 'MU' ; // Wafer counter tool location
|
||||||
|
Proceed = Dialog_Box('NDW_WAFER_COUNTER', @Window, Parms)
|
||||||
|
If Proceed NE True$ then Return
|
||||||
|
Next MuWmoKey
|
||||||
end
|
end
|
||||||
|
|
||||||
CheckValue = 1
|
* Signature block added 10/6/2010 JCH *
|
||||||
|
Valid = Dialog_Box('NDW_VERIFY_USER', @Window, @User4)
|
||||||
|
|
||||||
FieldNo = WO_MAT_EPO_MAKEUP_BOX$
|
IF NOT(Valid) THEN RETURN ;* User is not worthy or can't type
|
||||||
obj_WO_Mat('ChangeFlag',WOMatKey:@RM:FieldNo:@RM:CheckValue) ;* Set WMO_MAKEUP flag on WM_OUT
|
|
||||||
IF Get_Status(errCode) THEN ErrMsg(errCode)
|
|
||||||
|
|
||||||
Set_Property(@WINDOW:'.MAKEUP_BOX','DEFPROP',CheckValue) ;* Make this the makeup box
|
Send_Event(@WINDOW,'WRITE')
|
||||||
Send_Event(@WINDOW,'WRITE') ;* Write the record
|
|
||||||
|
|
||||||
WMOKey = WONo:'*':ProcStepNo:'*':CassNo
|
obj_WM_Out('AddMakeupWafers',WMOutKey:@RM:EmptySlots:@RM:MakeupBox)
|
||||||
obj_AppWindow('LoadFormKeys',@WINDOW:@RM:WMOKey) ;* Reread the updated record
|
//Remove the signatures for the WO_MAT_QA record because they are changing its results.
|
||||||
|
WOMatQaKey = Field(WMOutKey, '*', 1) : '*' : Field(WMOutKey, '*', 3)
|
||||||
|
Wo_Mat_Qa_Services('ClearSignatureByStage', WOMatQaKey, 'MO_QA')
|
||||||
|
obj_Appwindow('LoadFormKeys',@WINDOW:@RM:WMOutKey)
|
||||||
|
|
||||||
Return
|
RETURN
|
||||||
end else
|
End Case
|
||||||
ErrMsg('WARNING: Error reading WO_MAT record.')
|
end
|
||||||
Return
|
|
||||||
end
|
|
||||||
Case Response EQ ''
|
|
||||||
// User has cancelled this process.
|
|
||||||
Return
|
|
||||||
Case Otherwise$
|
|
||||||
// User has selected a makeup box to use and backfill.
|
|
||||||
AvailMU_WMOKeys = Response
|
|
||||||
MakeupBox = Response
|
|
||||||
MuWfrsNeeded = SelCnt
|
|
||||||
If AvailMU_WMOKeys NE '' then
|
|
||||||
// Wafer counter check - Account for the possibility of selecting more than one makeup box.
|
|
||||||
For each MuWmoKey in AvailMU_WMOKeys using @FM
|
|
||||||
MuWoMatKey = Field(MuWmoKey, '*', 1):'*':Field(MuWmoKey, '*', 3)
|
|
||||||
QtyAdj = MuWfrsNeeded
|
|
||||||
CurrMuWfrCnt = obj_WO_Mat('CurrWaferCnt', MuWoMatKey)
|
|
||||||
If MuWfrsNeeded GT CurrMuWfrCnt then
|
|
||||||
QtyAdj = CurrMuWfrCnt
|
|
||||||
MuWfrsNeeded -= CurrMuWfrCnt
|
|
||||||
end
|
|
||||||
Parms = ''
|
|
||||||
Parms<1> = MuWmoKey ; // Cassette to verify wafer count of.
|
|
||||||
Parms<2> = QtyAdj ; // Wafer count adjustment - 0 because converting box.
|
|
||||||
Parms<3> = 'MU' ; // Wafer counter tool location
|
|
||||||
Proceed = Dialog_Box('NDW_WAFER_COUNTER', @Window, Parms)
|
|
||||||
If Proceed NE True$ then Return
|
|
||||||
Next MuWmoKey
|
|
||||||
end
|
|
||||||
|
|
||||||
* Signature block added 10/6/2010 JCH *
|
|
||||||
Valid = Dialog_Box('NDW_VERIFY_USER', @Window, @User4)
|
|
||||||
|
|
||||||
IF NOT(Valid) THEN RETURN ;* User is not worthy or can't type
|
|
||||||
|
|
||||||
Send_Event(@WINDOW,'WRITE')
|
|
||||||
|
|
||||||
obj_WM_Out('AddMakeupWafers',WMOutKey:@RM:EmptySlots:@RM:MakeupBox)
|
|
||||||
//Remove the signatures for the WO_MAT_QA record because they are changing its results.
|
|
||||||
WOMatQaKey = Field(WMOutKey, '*', 1) : '*' : Field(WMOutKey, '*', 3)
|
|
||||||
Wo_Mat_Qa_Services('ClearSignatureByStage', WOMatQaKey, 'MO_QA')
|
|
||||||
obj_Appwindow('LoadFormKeys',@WINDOW:@RM:WMOutKey)
|
|
||||||
|
|
||||||
RETURN
|
|
||||||
End Case
|
|
||||||
|
|
||||||
end else
|
end else
|
||||||
// Cassette is on hold so makeup wafers cannot be added.
|
// Cassette is on hold so makeup wafers cannot be added.
|
||||||
ErrorMessage = 'Add MU Wafer Denied!. The cassette must be taken off hold before adding makeup wafers.'
|
ErrorMessage = 'Add MU Wafer Denied!. The cassette must be taken off hold before adding makeup wafers.'
|
||||||
|
@ -440,7 +440,7 @@ END
|
|||||||
IF CurrStatus NE '' THEN
|
IF CurrStatus NE '' THEN
|
||||||
SWAP @VM WITH '" "' IN CurrStatus
|
SWAP @VM WITH '" "' IN CurrStatus
|
||||||
IF SelectSent NE '' THEN SelectSent := ' AND'
|
IF SelectSent NE '' THEN SelectSent := ' AND'
|
||||||
SelectSent := ' WITH CURR_STATUS ':QUOTE(CurrStatus)
|
SelectSent := ' WITH CURR_STATUS_STATIC ':QUOTE(CurrStatus)
|
||||||
END
|
END
|
||||||
|
|
||||||
IF PartTypes NE '' THEN
|
IF PartTypes NE '' THEN
|
||||||
@ -471,7 +471,7 @@ SelectSent = 'SELECT REACT_ITEM ':SelectSent
|
|||||||
|
|
||||||
|
|
||||||
Def = ""
|
Def = ""
|
||||||
Def<MTEXT$> = "Selecting Reactor Events..."
|
Def<MTEXT$> = "Selecting Reactor Items..."
|
||||||
Def<MTYPE$> = "U"
|
Def<MTYPE$> = "U"
|
||||||
|
|
||||||
* display the processing message and do the processing
|
* display the processing message and do the processing
|
||||||
@ -502,6 +502,3 @@ End_Dialog(@WINDOW,RINos)
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1177,3 +1177,4 @@ end service
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1059,6 +1059,10 @@ Service ImportBioRadData(RunData, FileName)
|
|||||||
objSPC = Logging_Services('NewLog', LogPath, OConv(Datetime(), 'DT_^1_HS_'):'_Thickness_9Points.txt', CRLF$, Comma$, '', '', False$, True$)
|
objSPC = Logging_Services('NewLog', LogPath, OConv(Datetime(), 'DT_^1_HS_'):'_Thickness_9Points.txt', CRLF$, Comma$, '', '', False$, True$)
|
||||||
NotesLog = Logging_Services('NewLog', LogPath2, 'Thickness_9Points.txt', CRLF$, Comma$, '', '', False$, False$)
|
NotesLog = Logging_Services('NewLog', LogPath2, 'Thickness_9Points.txt', CRLF$, Comma$, '', '', False$, False$)
|
||||||
SendToSPC = True$
|
SendToSPC = True$
|
||||||
|
Case NumDataPoints EQ 10
|
||||||
|
objSPC = Logging_Services('NewLog', LogPath, OConv(Datetime(), 'DT_^1_HS_'):'_Thickness_10Points.txt', CRLF$, Comma$, '', '', False$, True$)
|
||||||
|
NotesLog = Logging_Services('NewLog', LogPath2, 'Thickness_10Points.txt', CRLF$, Comma$, '', '', False$, False$)
|
||||||
|
SendToSPC = True$
|
||||||
Case NumDataPoints EQ 14
|
Case NumDataPoints EQ 14
|
||||||
objSPC = Logging_Services('NewLog', LogPath, OConv(Datetime(), 'DT_^1_HS_'):'_Thickness_14Points.txt', CRLF$, Comma$, '', '', False$, True$)
|
objSPC = Logging_Services('NewLog', LogPath, OConv(Datetime(), 'DT_^1_HS_'):'_Thickness_14Points.txt', CRLF$, Comma$, '', '', False$, True$)
|
||||||
NotesLog = Logging_Services('NewLog', LogPath2, 'Thickness_14Points.txt', CRLF$, Comma$, '', '', False$, False$)
|
NotesLog = Logging_Services('NewLog', LogPath2, 'Thickness_14Points.txt', CRLF$, Comma$, '', '', False$, False$)
|
||||||
|
99
LSL2/STPROC/NDW_ACKNOWLEDGE_MESSAGE_EVENTS.txt
Normal file
99
LSL2/STPROC/NDW_ACKNOWLEDGE_MESSAGE_EVENTS.txt
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
Compile function NDW_ACKNOWLEDGE_MESSAGE_EVENTS(CtrlEntId, Event, @PARAMS)
|
||||||
|
/***********************************************************************************************************************
|
||||||
|
|
||||||
|
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_ACKNOWLEDGE_MESSAGE_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)
|
||||||
|
05/23/25 djs Created initial commuter module.
|
||||||
|
|
||||||
|
***********************************************************************************************************************/
|
||||||
|
#pragma precomp SRP_PreCompiler
|
||||||
|
#window NDW_ACKNOWLEDGE_MESSAGE
|
||||||
|
|
||||||
|
$Insert APP_INSERTS
|
||||||
|
$Insert EVENT_SETUP
|
||||||
|
|
||||||
|
Declare subroutine PlaceDialog
|
||||||
|
|
||||||
|
SubclassInfo = Form_Services('FindSubclassControl')
|
||||||
|
Subclass = SubclassInfo<1>
|
||||||
|
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
TextToAcknowledge = CreateParam
|
||||||
|
If TextToAcknowledge NE '' then
|
||||||
|
Swap @TM with CRLF$ in TextToAcknowledge
|
||||||
|
Set_Property(@Window:'.EDB_DATA', 'TEXT', TextToAcknowledge)
|
||||||
|
PlaceDialog(-2, -2)
|
||||||
|
end else
|
||||||
|
Post_Event(@Window, 'CLOSE')
|
||||||
|
end
|
||||||
|
|
||||||
|
End Event
|
||||||
|
|
||||||
|
|
||||||
|
Event WINDOW.CLOSE(CancelFlag, CloseFlags)
|
||||||
|
|
||||||
|
End_Dialog(@Window, False$)
|
||||||
|
|
||||||
|
end event
|
||||||
|
|
||||||
|
|
||||||
|
Event PUB_OK.CLICK()
|
||||||
|
|
||||||
|
End_Dialog(@Window, True$)
|
||||||
|
|
||||||
|
end event
|
||||||
|
|
||||||
|
|
||||||
|
Event PUB_CANCEL.CLICK()
|
||||||
|
|
||||||
|
End_Dialog(@Window, False$)
|
||||||
|
|
||||||
|
end event
|
||||||
|
|
@ -3,7 +3,7 @@ Compile function NDW_ADJUST_LOT_QTY_EVENTS(CtrlEntId, Event, @PARAMS)
|
|||||||
#window NDW_ADJUST_LOT_QTY
|
#window NDW_ADJUST_LOT_QTY
|
||||||
|
|
||||||
Declare function MemberOf, Database_Services, Error_Services, Datetime
|
Declare function MemberOf, Database_Services, Error_Services, Datetime
|
||||||
Declare subroutine PlaceDialog, Database_Services, Lot_Services
|
Declare subroutine PlaceDialog, Database_Services, Lot_Services, Lot_Event_Services
|
||||||
$Insert App_Inserts
|
$Insert App_Inserts
|
||||||
$Insert Lot_Equates
|
$Insert Lot_Equates
|
||||||
|
|
||||||
@ -125,10 +125,16 @@ Event PUB_SUBMIT.CLICK()
|
|||||||
Begin Case
|
Begin Case
|
||||||
Case NewWfrQty LT CurrWfrQty
|
Case NewWfrQty LT CurrWfrQty
|
||||||
AmountToDecrease = CurrWfrQty - NewWfrQty
|
AmountToDecrease = CurrWfrQty - NewWfrQty
|
||||||
Lot_Services('ReduceLotWaferCount', LotId, AmountToDecrease, @User4)
|
Lot_Services('ReduceLotWaferCount', LotId, AmountToDecrease, @User4)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
Lot_Event_Services('CreateLotEvent', LotId, Datetime(), 'COMMENT', 'Manual Lot Qty decrease performed.', '', @User4, '' , '')
|
||||||
|
end
|
||||||
Case NewWfrQty GT CurrWfrQty
|
Case NewWfrQty GT CurrWfrQty
|
||||||
AmountToIncrease = NewWfrQty - CurrWfrQty
|
AmountToIncrease = NewWfrQty - CurrWfrQty
|
||||||
Lot_Services('IncreaseLotWaferCount', LotId, AmountToIncrease, @User4)
|
Lot_Services('IncreaseLotWaferCount', LotId, AmountToIncrease, @User4)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
Lot_Event_Services('CreateLotEvent', LotId, Datetime(), 'COMMENT', 'Manual Lot Qty increase performed.', '', @User4, '' , '')
|
||||||
|
end
|
||||||
End Case
|
End Case
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
msg(@Window, 'Wafer quantity adjusted successfully!')
|
msg(@Window, 'Wafer quantity adjusted successfully!')
|
||||||
@ -176,3 +182,4 @@ return
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -244,8 +244,10 @@ Event WINDOW.CREATE(CreateParam)
|
|||||||
|
|
||||||
IF MemberOf(@USER4, 'SPEC_CHANGE') OR MemberOf(@USER4, 'OI_ADMIN') THEN
|
IF MemberOf(@USER4, 'SPEC_CHANGE') OR MemberOf(@USER4, 'OI_ADMIN') THEN
|
||||||
Set_Property(@WINDOW:'.MENU.ENGINEERING.TOOL_CLASS_-_RECIPES__PATTERNS','VISIBLE',1)
|
Set_Property(@WINDOW:'.MENU.ENGINEERING.TOOL_CLASS_-_RECIPES__PATTERNS','VISIBLE',1)
|
||||||
|
Set_Property(@WINDOW:'.MENU.ADM.TOOLS.PRS_STAGE_DEFAULTS','VISIBLE',1)
|
||||||
END ELSE
|
END ELSE
|
||||||
Set_Property(@WINDOW:'.MENU.ENGINEERING.TOOL_CLASS_-_RECIPES__PATTERNS','VISIBLE',0)
|
Set_Property(@WINDOW:'.MENU.ENGINEERING.TOOL_CLASS_-_RECIPES__PATTERNS','VISIBLE',0)
|
||||||
|
Set_Property(@WINDOW:'.MENU.ADM.TOOLS.PRS_STAGE_DEFAULTS','VISIBLE',0)
|
||||||
END
|
END
|
||||||
|
|
||||||
Ctrls = @WINDOW:'.MENU.ADMIN.FABTIME_SUPPORT':@RM ; Props = 'ENABLED':@RM
|
Ctrls = @WINDOW:'.MENU.ADMIN.FABTIME_SUPPORT':@RM ; Props = 'ENABLED':@RM
|
||||||
@ -850,3 +852,4 @@ FixFont:
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,25 +3,27 @@ Compile function NDW_WAFER_COUNTS_EVENTS(CtrlEntId, Event, @PARAMS)
|
|||||||
#window NDW_WAFER_COUNTS
|
#window NDW_WAFER_COUNTS
|
||||||
Declare function Reactor_Services, Database_Services, Get_Property, Error_Services, Environment_Services
|
Declare function Reactor_Services, Database_Services, Get_Property, Error_Services, Environment_Services
|
||||||
Declare function SRP_Array, Logging_Services
|
Declare function SRP_Array, Logging_Services
|
||||||
Declare subroutine Set_Property, Logging_Services
|
Declare subroutine Set_Property, Logging_Services, PlaceDialog
|
||||||
|
|
||||||
$Insert EVENT_SETUP
|
$Insert EVENT_SETUP
|
||||||
$Insert APP_INSERTS
|
$Insert APP_INSERTS
|
||||||
$Insert REACTOR_EQUATES
|
$Insert REACTOR_EQUATES
|
||||||
|
|
||||||
EQU DATA_ASM_REACT_ID$ to 1
|
EQU DATA_ASM_REACT_ID$ to 1
|
||||||
EQU DATA_ASM_SUSC_CNT$ to 2
|
EQU DATA_ASM_SUSC_CNT$ to 2
|
||||||
EQU DATA_ASM_SUSC_THK$ to 3
|
EQU DATA_ASM_SUSC_THK$ to 3
|
||||||
EQU DATA_ASM_TUBE_CNT$ to 4
|
EQU DATA_ASM_TUBE_CNT$ to 4
|
||||||
EQU DATA_ASM_TUBE_THK$ to 5
|
EQU DATA_ASM_TUBE_THK$ to 5
|
||||||
EQU DATA_ASM_ARM_CNT$ to 6
|
EQU DATA_ASM_ARM_CNT$ to 6
|
||||||
|
EQU DATA_ASM_EXHAUST_THK$ to 7
|
||||||
|
|
||||||
EQU DATA_HTR_REACT_ID$ to 1
|
EQU DATA_HTR_REACT_ID$ to 1
|
||||||
EQU DATA_HTR_SUSC_CNT$ TO 2
|
EQU DATA_HTR_SUSC_CNT$ TO 2
|
||||||
EQU DATA_HTR_SUSC_THK$ TO 3
|
EQU DATA_HTR_SUSC_THK$ TO 3
|
||||||
EQU DATA_HTR_TUBE_CNT$ TO 4
|
EQU DATA_HTR_TUBE_CNT$ TO 4
|
||||||
EQU DATA_HTR_TUBE_THK$ TO 5
|
EQU DATA_HTR_TUBE_THK$ TO 5
|
||||||
EQU DATA_HTR_ARM_CNT$ TO 6
|
EQU DATA_HTR_ARM_CNT$ TO 6
|
||||||
|
EQU DATA_HTR_EXHAUST_THK$ TO 7
|
||||||
|
|
||||||
EQU DATA_EPP_REACT_ID$ to 1
|
EQU DATA_EPP_REACT_ID$ to 1
|
||||||
EQU DATA_EPP_SUSC_CNT$ TO 2
|
EQU DATA_EPP_SUSC_CNT$ TO 2
|
||||||
@ -30,6 +32,7 @@ EQU DATA_EPP_BELL_JAR_CNT$ TO 4
|
|||||||
EQU DATA_EPP_BELL_JAR_THK$ TO 5
|
EQU DATA_EPP_BELL_JAR_THK$ TO 5
|
||||||
EQU DATA_EPP_LOWER_QUARTZ_CNT$ TO 6
|
EQU DATA_EPP_LOWER_QUARTZ_CNT$ TO 6
|
||||||
EQU DATA_EPP_LOWER_QUARTZ_THK$ TO 7
|
EQU DATA_EPP_LOWER_QUARTZ_THK$ TO 7
|
||||||
|
EQU DATA_EPP_EXHAUST_THK$ TO 8
|
||||||
|
|
||||||
ASMDataTable = @Window : '.OLE_DATA_ASM'
|
ASMDataTable = @Window : '.OLE_DATA_ASM'
|
||||||
HTRDataTable = @Window : '.OLE_DATA_HTR'
|
HTRDataTable = @Window : '.OLE_DATA_HTR'
|
||||||
@ -49,11 +52,11 @@ If Event EQ 'OLE' then
|
|||||||
Transfer Param1 to Event
|
Transfer Param1 to Event
|
||||||
Transfer Param2 to Param1
|
Transfer Param2 to Param1
|
||||||
Transfer Param3 to Param2
|
Transfer Param3 to Param2
|
||||||
* Transfer Param4 to Param3
|
Transfer Param4 to Param3
|
||||||
* Transfer Param5 to Param4
|
Transfer Param5 to Param4
|
||||||
* Transfer Param6 to Param5
|
Transfer Param6 to Param5
|
||||||
* Transfer Param7 to Param6
|
Transfer Param7 to Param6
|
||||||
* Transfer Param8 to Param7
|
Transfer Param8 to Param7
|
||||||
end
|
end
|
||||||
|
|
||||||
GoToEvent Event for CtrlEntId else
|
GoToEvent Event for CtrlEntId else
|
||||||
@ -67,17 +70,25 @@ Return EventFlow or 1
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
Event WINDOW.CREATE(CreateParam)
|
Event WINDOW.CREATE(CreateParam)
|
||||||
|
|
||||||
GoSub SetupOLEControls
|
GoSub SetupOLEControls
|
||||||
GoSub GetReactorMetrics
|
GoSub GetReactorMetrics
|
||||||
|
|
||||||
End Event
|
End Event
|
||||||
|
|
||||||
|
|
||||||
Event TABCONTROL_1.CLICK()
|
Event TABCONTROL_1.CLICK()
|
||||||
|
|
||||||
Page = Get_Property(@Window : '.TABCONTROL_1', 'VALUE')
|
Page = Get_Property(@Window : '.TABCONTROL_1', 'VALUE')
|
||||||
Set_Property(@WINDOW,'VPOSITION', Page)
|
Set_Property(@WINDOW,'VPOSITION', Page)
|
||||||
|
|
||||||
end event
|
end event
|
||||||
|
|
||||||
|
|
||||||
Event PUB_REFRESH_DATA.CLICK()
|
Event PUB_REFRESH_DATA.CLICK()
|
||||||
|
|
||||||
GoSub GetReactorMetrics
|
GoSub GetReactorMetrics
|
||||||
|
|
||||||
end event
|
end event
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@ -85,6 +96,7 @@ end event
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
GetReactorMetrics:
|
GetReactorMetrics:
|
||||||
|
|
||||||
ReactorRec = ''
|
ReactorRec = ''
|
||||||
ASMData = ''
|
ASMData = ''
|
||||||
HTRData = ''
|
HTRData = ''
|
||||||
@ -105,12 +117,13 @@ GetReactorMetrics:
|
|||||||
for each Reactor in ASMList using @FM setting rPos
|
for each Reactor in ASMList using @FM setting rPos
|
||||||
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
|
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
|
||||||
if Error_Services('NoError') then
|
if Error_Services('NoError') then
|
||||||
ASMData<rPos, DATA_ASM_REACT_ID$> = MetricData<1, DATA_ASM_REACT_ID$>
|
ASMData<rPos, DATA_ASM_REACT_ID$> = MetricData<1, DATA_ASM_REACT_ID$>
|
||||||
ASMData<rPos, DATA_ASM_SUSC_CNT$> = MetricData<1, DATA_ASM_SUSC_CNT$>
|
ASMData<rPos, DATA_ASM_SUSC_CNT$> = MetricData<1, DATA_ASM_SUSC_CNT$>
|
||||||
ASMData<rPos, DATA_ASM_SUSC_THK$> = MetricData<1, DATA_ASM_SUSC_THK$>
|
ASMData<rPos, DATA_ASM_SUSC_THK$> = MetricData<1, DATA_ASM_SUSC_THK$>
|
||||||
ASMData<rPos, DATA_ASM_TUBE_CNT$> = MetricData<1, DATA_ASM_TUBE_CNT$>
|
ASMData<rPos, DATA_ASM_TUBE_CNT$> = MetricData<1, DATA_ASM_TUBE_CNT$>
|
||||||
ASMData<rPos, DATA_ASM_TUBE_THK$> = MetricData<1, DATA_ASM_TUBE_THK$>
|
ASMData<rPos, DATA_ASM_TUBE_THK$> = MetricData<1, DATA_ASM_TUBE_THK$>
|
||||||
ASMData<rPos, DATA_ASM_ARM_CNT$> = MetricData<1, DATA_ASM_ARM_CNT$>
|
ASMData<rPos, DATA_ASM_ARM_CNT$> = MetricData<1, DATA_ASM_ARM_CNT$>
|
||||||
|
ASMData<rPos, DATA_ASM_EXHAUST_THK$> = MetricData<1, DATA_ASM_EXHAUST_THK$>
|
||||||
end else
|
end else
|
||||||
ErrorMessage = Error_Services('GetMessage')
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
LogData = LoggingDTM : @FM : ErrorMessage
|
LogData = LoggingDTM : @FM : ErrorMessage
|
||||||
@ -123,12 +136,13 @@ GetReactorMetrics:
|
|||||||
for each Reactor in HTRList using @FM setting rPos
|
for each Reactor in HTRList using @FM setting rPos
|
||||||
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
|
MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor)
|
||||||
if Error_Services('NoError') then
|
if Error_Services('NoError') then
|
||||||
HTRData<rPos, DATA_HTR_REACT_ID$> = MetricData <1, DATA_HTR_REACT_ID$>
|
HTRData<rPos, DATA_HTR_REACT_ID$> = MetricData <1, DATA_HTR_REACT_ID$>
|
||||||
HTRData<rPos, DATA_HTR_SUSC_CNT$> = MetricData<1, DATA_HTR_SUSC_CNT$>
|
HTRData<rPos, DATA_HTR_SUSC_CNT$> = MetricData<1, DATA_HTR_SUSC_CNT$>
|
||||||
HTRData<rPos, DATA_HTR_SUSC_THK$> = MetricData<1, DATA_HTR_SUSC_THK$>
|
HTRData<rPos, DATA_HTR_SUSC_THK$> = MetricData<1, DATA_HTR_SUSC_THK$>
|
||||||
HTRData<rPos, DATA_HTR_TUBE_CNT$> = MetricData<1, DATA_HTR_TUBE_CNT$>
|
HTRData<rPos, DATA_HTR_TUBE_CNT$> = MetricData<1, DATA_HTR_TUBE_CNT$>
|
||||||
HTRData<rPos, DATA_HTR_TUBE_THK$> = MetricData<1, DATA_HTR_TUBE_THK$>
|
HTRData<rPos, DATA_HTR_TUBE_THK$> = MetricData<1, DATA_HTR_TUBE_THK$>
|
||||||
HTRData<rPos, DATA_HTR_ARM_CNT$> = MetricData<1, DATA_HTR_ARM_CNT$>
|
HTRData<rPos, DATA_HTR_ARM_CNT$> = MetricData<1, DATA_HTR_ARM_CNT$>
|
||||||
|
HTRData<rPos, DATA_HTR_EXHAUST_THK$> = MetricData<1, DATA_HTR_EXHAUST_THK$>
|
||||||
end else
|
end else
|
||||||
ErrorMessage = Error_Services('GetMessage')
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
LogData = LoggingDTM : @FM : ErrorMessage
|
LogData = LoggingDTM : @FM : ErrorMessage
|
||||||
@ -149,6 +163,7 @@ GetReactorMetrics:
|
|||||||
EPPData<rPos, DATA_EPP_BELL_JAR_THK$> = MetricData<1, DATA_EPP_BELL_JAR_THK$>
|
EPPData<rPos, DATA_EPP_BELL_JAR_THK$> = MetricData<1, DATA_EPP_BELL_JAR_THK$>
|
||||||
EPPData<rPos, DATA_EPP_LOWER_QUARTZ_CNT$> = MetricData<1, DATA_EPP_LOWER_QUARTZ_CNT$>
|
EPPData<rPos, DATA_EPP_LOWER_QUARTZ_CNT$> = MetricData<1, DATA_EPP_LOWER_QUARTZ_CNT$>
|
||||||
EPPData<rPos, DATA_EPP_LOWER_QUARTZ_THK$> = MetricData<1, DATA_EPP_LOWER_QUARTZ_THK$>
|
EPPData<rPos, DATA_EPP_LOWER_QUARTZ_THK$> = MetricData<1, DATA_EPP_LOWER_QUARTZ_THK$>
|
||||||
|
EPPData<rPos, DATA_EPP_EXHAUST_THK$> = MetricData<1, DATA_EPP_EXHAUST_THK$>
|
||||||
end else
|
end else
|
||||||
ErrorMessage = Error_Services('GetMessage')
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
LogData = LoggingDTM : @FM : ErrorMessage
|
LogData = LoggingDTM : @FM : ErrorMessage
|
||||||
@ -159,36 +174,55 @@ GetReactorMetrics:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
SetupOLEControls:
|
SetupOLEControls:
|
||||||
|
|
||||||
//Set Row Headers to invisible
|
// Set Row Headers to invisible
|
||||||
Set_Property(ASMDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
Set_Property(ASMDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
||||||
Set_Property(HTRDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
Set_Property(HTRDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
||||||
Set_Property(EPPDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
Set_Property(EPPDataTable, "OLE.HeaderColumn[1]", '':@FM:False$)
|
||||||
|
|
||||||
//Set Number of columns for each table
|
// Set Number of columns for each table
|
||||||
Set_Property(ASMDataTable, "OLE.Dimension", 6);*6 columns for ASM Data Table
|
Set_Property(ASMDataTable, "OLE.Dimension", 7);*6 columns for ASM Data Table
|
||||||
Set_Property(HTRDataTable, "OLE.Dimension", 6);*6 columns for HTR Data Table
|
Set_Property(HTRDataTable, "OLE.Dimension", 7);*6 columns for HTR Data Table
|
||||||
Set_Property(EPPDataTable, "OLE.Dimension", 7);*7 columns for EPP Data Table
|
Set_Property(EPPDataTable, "OLE.Dimension", 8);*7 columns for EPP Data Table
|
||||||
|
|
||||||
//Set size of columns
|
// Set size of all columns
|
||||||
ColSizeArray = ''
|
ColSizeArray = ''
|
||||||
ColSizeArray<1> = 100
|
ColSizeArray<1> = 115
|
||||||
Set_Property(ASMDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
Set_Property(ASMDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
||||||
Set_Property(HTRDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
Set_Property(HTRDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
||||||
Set_Property(EPPDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
Set_Property(EPPDataTable, "OLE.DataColumn[All]", ColSizeArray)
|
||||||
|
|
||||||
|
// Shrink size of column 1
|
||||||
|
ColSizeArray<1> = 60
|
||||||
|
Set_Property(ASMDataTable, "OLE.DataColumn[1]", ColSizeArray)
|
||||||
|
Set_Property(HTRDataTable, "OLE.DataColumn[1]", ColSizeArray)
|
||||||
|
Set_Property(EPPDataTable, "OLE.DataColumn[1]", ColSizeArray)
|
||||||
|
|
||||||
|
// Set size of all columns
|
||||||
|
ColSizeArray = ''
|
||||||
|
ColSizeArray<1> = 125
|
||||||
|
Set_Property(EPPDataTable, "OLE.DataColumn[6]", ColSizeArray)
|
||||||
|
|
||||||
|
// Set autosize last column to true to fill out table width
|
||||||
|
ColSizeArray<1> = 125
|
||||||
|
ColSizeArray<4> = True$
|
||||||
|
Set_Property(ASMDataTable, "OLE.DataColumn[7]", ColSizeArray)
|
||||||
|
Set_Property(HTRDataTable, "OLE.DataColumn[7]", ColSizeArray)
|
||||||
|
Set_Property(EPPDataTable, "OLE.DataColumn[8]", ColSizeArray)
|
||||||
|
|
||||||
//Set ASM Table Col. Headers
|
//Set ASM Table Col. Headers
|
||||||
HeaderTitles = 'Reactor#':@VM:'Susc. Wfr. Cnt.':@VM:'Susc. Thk':@VM:'Tube Wfr. Cnt.':@VM:'Tube Wfr. Thk':@VM:'Arm Wfr. Cnt.'
|
HeaderTitles = 'Reactor#':@VM:'Susc. Wfr. Cnt.':@VM:'Susc. Thk':@VM:'Tube Wfr. Cnt.':@VM:'Tube Wfr. Thk':@VM:'Arm Wfr. Cnt.':@VM:'Exhaust Chamber Thk.'
|
||||||
Set_Property(ASMDataTable, "OLE.TitleList", HeaderTitles)
|
Set_Property(ASMDataTable, "OLE.TitleList", HeaderTitles)
|
||||||
|
|
||||||
//Set HTR Table Col. Headers
|
//Set HTR Table Col. Headers
|
||||||
HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Tube Run Cnt.':@VM:'Tube Thk':@VM:'Arm Wfr. Cnt.'
|
HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Tube Run Cnt.':@VM:'Tube Thk':@VM:'Arm Wfr. Cnt.':@VM:'Exhaust Chamber Thk.'
|
||||||
Set_Property(HTRDataTable, "OLE.TitleList", HeaderTitles)
|
Set_Property(HTRDataTable, "OLE.TitleList", HeaderTitles)
|
||||||
|
|
||||||
//Set EPP Table Col. Headers
|
//Set EPP Table Col. Headers
|
||||||
HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Bell Jar Run Cnt.':@VM:'Bell Jar Thk':@VM:'Lower Quartz Run Cnt.':@VM:'Lower Quartz thk.'
|
HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Bell Jar Run Cnt.':@VM:'Bell Jar Thk':@VM:'Lower Quartz Run Cnt.':@VM:'Lower Quartz thk.':@VM:'Exhaust Chamber Thk.'
|
||||||
Set_Property(EPPDataTable, "OLE.TitleList", HeaderTitles)
|
Set_Property(EPPDataTable, "OLE.TitleList", HeaderTitles)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -535,9 +535,9 @@ Service CancelOrder(OrderId)
|
|||||||
If HttpResponseJson NE '' then
|
If HttpResponseJson NE '' then
|
||||||
ObjResponseJson = ''
|
ObjResponseJson = ''
|
||||||
If SRP_JSON(ObjResponseJson, 'Parse', HttpResponseJson) EQ '' then
|
If SRP_JSON(ObjResponseJson, 'Parse', HttpResponseJson) EQ '' then
|
||||||
IsComplete = SRP_JSON(ObjResponseJson, 'GetValue', 'pendingUpdate')
|
IsComplete = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete')
|
||||||
NicaOrderRec<NICA_ORDERS.ORDER_STATUS$> = SRP_JSON(ObjResponseJson, 'GetValue', 'state')
|
NicaOrderRec<NICA_ORDERS.ORDER_STATUS$> = 'cancelled'
|
||||||
NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete')
|
NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> = IsComplete
|
||||||
CloseDtm = Datetime()
|
CloseDtm = Datetime()
|
||||||
NicaOrderRec<NICA_ORDERS.CLOSED_DTM$> = CloseDtm
|
NicaOrderRec<NICA_ORDERS.CLOSED_DTM$> = CloseDtm
|
||||||
If IsComplete EQ False$ then
|
If IsComplete EQ False$ then
|
||||||
@ -904,4 +904,3 @@ end service
|
|||||||
// Internal GoSubs
|
// Internal GoSubs
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ COMPILE FUNCTION obj_Reactor_Log(Method,Parms)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Btree.Extract, obj_React_Item_Hist, Update_Index, obj_Post_Log
|
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Btree.Extract, obj_React_Item_Hist, Update_Index, obj_Post_Log
|
||||||
Declare subroutine Error_Services, Database_Services
|
Declare subroutine Error_Services, Database_Services, React_Item_Services
|
||||||
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, obj_React_Item, obj_Calendar, Database_Services
|
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, obj_React_Item, obj_Calendar, Database_Services
|
||||||
|
|
||||||
|
|
||||||
@ -195,18 +195,16 @@ PostReactItems:
|
|||||||
ReactorLogRec<REACTOR_LOG_RI_POST_DTM$> = PostDTM
|
ReactorLogRec<REACTOR_LOG_RI_POST_DTM$> = PostDTM
|
||||||
|
|
||||||
otParms = FIELDSTORE(otParms,@RM,4,0,ReactorLogRec)
|
otParms = FIELDSTORE(otParms,@RM,4,0,ReactorLogRec)
|
||||||
//obj_Tables('WriteRec',otParms)
|
|
||||||
Database_Services('WriteDataRow', 'REACTOR_LOG', RLNo, ReactorLogRec, 1, 0, 1)
|
Database_Services('WriteDataRow', 'REACTOR_LOG', RLNo, ReactorLogRec, 1, 0, 1)
|
||||||
|
|
||||||
Update_Index('REACT_ITEM_HIST', 'INST_RL_ID', False$, True$) ;* Don't wait for indexer - flush pending indexes now
|
Update_Index('REACT_ITEM_HIST', 'INST_RL_ID', False$, True$) ;* Don't wait for indexer - flush pending indexes now
|
||||||
Update_Index('REACT_ITEM_HIST', 'REM_RL_ID', False$, True$)
|
Update_Index('REACT_ITEM_HIST', 'REM_RL_ID', False$, True$)
|
||||||
|
|
||||||
end else
|
end else
|
||||||
Error_Services('Add', ValidationFailureReason)
|
Error_Services('Add', ValidationFailureReason)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
@ -386,10 +384,3 @@ RemHistKeys:
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,11 +18,12 @@ COMPILE FUNCTION obj_React_Item_Hist(Method,Parms)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Send_Dyn, obj_Popup
|
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Send_Dyn, obj_Popup
|
||||||
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn
|
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Btree.Extract, React_Item_Services
|
||||||
DECLARE SUBROUTINE ErrMsg, Btree.Extract
|
|
||||||
|
|
||||||
|
$Insert LOGICAL
|
||||||
$INSERT REACT_ITEM_HIST_EQUATES
|
$INSERT REACT_ITEM_HIST_EQUATES
|
||||||
|
$INSERT RLIST_EQUATES
|
||||||
|
|
||||||
EQU CRLF$ TO \0D0A\
|
EQU CRLF$ TO \0D0A\
|
||||||
EQU TAB$ TO CHAR(9)
|
EQU TAB$ TO CHAR(9)
|
||||||
@ -62,26 +63,26 @@ RETURN Result
|
|||||||
Install:
|
Install:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
RIHKey = Parms[1,@RM]
|
RIHKey = Parms[1,@RM]
|
||||||
RL_Id = Parms[COL2()+1,@RM]
|
RL_Id = Parms[COL2()+1,@RM]
|
||||||
ReactWfrCnt = Parms[COL2()+1,@RM]
|
ReactWfrCnt = Parms[COL2()+1,@RM]
|
||||||
ReactHrs = Parms[COL2()+1,@RM]
|
ReactHrs = Parms[COL2()+1,@RM]
|
||||||
|
|
||||||
IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')'
|
IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')'
|
||||||
IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')'
|
IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')'
|
||||||
*IF ReactWfrCnt = '' THEN ErrorMsg = 'Null Parameter "ReactWfrCnt" passed to routine. (':Method:')' ;* Optional
|
|
||||||
*IF ReactHrs = '' THEN ErrorMsg = 'Null Parameter "ReactHrs" passed to routine. (':Method:')' ;* Optional
|
|
||||||
|
|
||||||
IF ErrorMsg NE '' THEN RETURN
|
IF ErrorMsg NE '' THEN RETURN
|
||||||
|
|
||||||
RIHRec = ''
|
RIHRec = ''
|
||||||
RIHRec<REACT_ITEM_HIST_INST_RL_ID$> = RL_ID
|
RIHRec<REACT_ITEM_HIST_INST_RL_ID$> = RL_ID
|
||||||
RIHRec<REACT_ITEM_HIST_INST_REACT_WFR_CNT$> = ReactWfrCnt
|
RIHRec<REACT_ITEM_HIST_INST_REACT_WFR_CNT$> = ReactWfrCnt
|
||||||
RIHRec<REACT_ITEM_HIST_INST_REACT_HRS$> = ReactHrs
|
RIHRec<REACT_ITEM_HIST_INST_REACT_HRS$> = ReactHrs
|
||||||
|
|
||||||
otParms = 'REACT_ITEM_HIST':@RM:RIHKey:@RM:@RM:RIHRec
|
otParms = 'REACT_ITEM_HIST':@RM:RIHKey:@RM:@RM:RIHRec
|
||||||
|
|
||||||
obj_Tables('WriteRec',otParms)
|
obj_Tables('WriteRec',otParms)
|
||||||
|
RINo = Field(RIHKey, '*', 2, 1)
|
||||||
|
React_Item_Services('UpdateReactItemStatus', RINo)
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
@ -90,38 +91,36 @@ RETURN
|
|||||||
Remove:
|
Remove:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
RIHKey = Parms[1,@RM]
|
RIHKey = Parms[1,@RM]
|
||||||
RemoveDTM = Parms[COL2()+1,@RM] ;* Internal format *
|
RemoveDTM = Parms[COL2()+1,@RM] ;* Internal format *
|
||||||
RL_Id = Parms[COL2()+1,@RM]
|
RL_Id = Parms[COL2()+1,@RM]
|
||||||
ReactWfrCnt = Parms[COL2()+1,@RM]
|
ReactWfrCnt = Parms[COL2()+1,@RM]
|
||||||
ReactHrs = Parms[COL2()+1,@RM]
|
ReactHrs = Parms[COL2()+1,@RM]
|
||||||
|
|
||||||
IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')'
|
IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')'
|
||||||
IF RemoveDTM = '' THEN ErrorMsg = 'Null Parameter "RemoveDTM" passed to routine. (':Method:')'
|
IF RemoveDTM = '' THEN ErrorMsg = 'Null Parameter "RemoveDTM" passed to routine. (':Method:')'
|
||||||
IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')'
|
IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')'
|
||||||
*IF ReactWfrCnt = '' THEN ErrorMsg = 'Null Parameter "ReactWfrCnt" passed to routine. (':Method:')' ;* Optional
|
|
||||||
*IF ReactHrs = '' THEN ErrorMsg = 'Null Parameter "ReactHrs" passed to routine. (':Method:')' ;* Optional
|
|
||||||
|
|
||||||
IF ErrorMsg NE '' THEN RETURN
|
IF ErrorMsg NE '' THEN RETURN
|
||||||
|
|
||||||
* Read and update record *
|
otParms = 'REACT_ITEM_HIST':@RM:RIHKey
|
||||||
|
|
||||||
otParms = 'REACT_ITEM_HIST':@RM:RIHKey
|
RIHRec = obj_Tables('ReadRec',otParms)
|
||||||
|
|
||||||
RIHRec = obj_Tables('ReadRec',otParms)
|
IF Get_Status(errCode) THEN
|
||||||
|
Set_Status(0)
|
||||||
|
RIHRec = ''
|
||||||
|
END
|
||||||
|
|
||||||
IF Get_Status(errCode) THEN
|
RIHRec<REACT_ITEM_HIST_REM_DTM$> = RemoveDTM
|
||||||
Set_Status(0)
|
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = RL_Id
|
||||||
RIHRec = ''
|
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ReactWfrCnt
|
||||||
END
|
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ReactHrs
|
||||||
|
|
||||||
RIHRec<REACT_ITEM_HIST_REM_DTM$> = RemoveDTM
|
otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
|
||||||
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = RL_Id
|
obj_Tables('WriteRec',otParms)
|
||||||
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ReactWfrCnt
|
RINo = Field(RIHKey, '*', 2, 1)
|
||||||
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ReactHrs
|
React_Item_Services('UpdateReactItemStatus', RINo)
|
||||||
|
|
||||||
otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
|
|
||||||
obj_Tables('WriteRec',otParms)
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
@ -130,24 +129,21 @@ RETURN
|
|||||||
ClearRemove:
|
ClearRemove:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
RIHKey = Parms[1,@RM]
|
RIHKey = Parms[1,@RM]
|
||||||
|
|
||||||
IF RIHKey = '' THEN RETURN
|
IF RIHKey = '' THEN RETURN
|
||||||
|
|
||||||
|
otParms = 'REACT_ITEM_HIST':@RM:RIHKey
|
||||||
|
|
||||||
* Read and update record *
|
RIHRec = obj_Tables('ReadRec',otParms)
|
||||||
|
|
||||||
otParms = 'REACT_ITEM_HIST':@RM:RIHKey
|
RIHRec<REACT_ITEM_HIST_REM_DTM$> = ''
|
||||||
|
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = ''
|
||||||
|
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ''
|
||||||
|
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ''
|
||||||
|
|
||||||
RIHRec = obj_Tables('ReadRec',otParms)
|
otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
|
||||||
|
obj_Tables('WriteRec',otParms)
|
||||||
RIHRec<REACT_ITEM_HIST_REM_DTM$> = ''
|
|
||||||
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = ''
|
|
||||||
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ''
|
|
||||||
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ''
|
|
||||||
|
|
||||||
otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
|
|
||||||
obj_Tables('WriteRec',otParms)
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
@ -156,49 +152,50 @@ RETURN
|
|||||||
GetHistory:
|
GetHistory:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
ReactNo = Parms[1,@RM]
|
ReactNo = Parms[1,@RM]
|
||||||
RINo = Parms[COL2()+1,@RM]
|
RINo = Parms[COL2()+1,@RM]
|
||||||
RIType = Parms[COL2()+1,@RM]
|
RIType = Parms[COL2()+1,@RM]
|
||||||
|
|
||||||
IF ReactNo = '' AND RINo = '' AND RIType = '' THEN RETURN
|
IF ReactNo = '' AND RINo = '' AND RIType = '' THEN RETURN
|
||||||
|
|
||||||
OPEN 'DICT.REACT_ITEM_HIST' TO DictVar ELSE
|
OPEN 'DICT.REACT_ITEM_HIST' TO DictVar ELSE
|
||||||
ErrorMsg = 'Unable to open DICT.REACT_ITEM_HIST for index lookup'
|
ErrorMsg = 'Unable to open DICT.REACT_ITEM_HIST for index lookup'
|
||||||
RETURN
|
RETURN
|
||||||
END
|
END
|
||||||
|
|
||||||
Search = ''
|
Search = ''
|
||||||
|
|
||||||
IF ReactNo NE '' THEN Search := 'REACT_NO':@VM:ReactNo:@FM
|
IF ReactNo NE '' THEN Search := 'REACT_NO':@VM:ReactNo:@FM
|
||||||
IF RINo NE '' THEN Search := 'RI_NO':@VM:RINo:@FM
|
IF RINo NE '' THEN Search := 'RI_NO':@VM:RINo:@FM
|
||||||
IF RIType NE '' THEN Search := 'RI_TYPE':@VM:RIType:@FM
|
IF RIType NE '' THEN Search := 'RI_TYPE':@VM:RIType:@FM
|
||||||
|
|
||||||
Option = ''
|
Option = ''
|
||||||
Flag = ''
|
Flag = ''
|
||||||
|
|
||||||
Btree.Extract(Search, 'REACT_ITEM_HIST', DictVar, RIKeys, Option, Flag) ;* Get unsorted keys based on Search parameters
|
Btree.Extract(Search, 'REACT_ITEM_HIST', DictVar, RIKeys, Option, Flag) ;* Get unsorted keys based on Search parameters
|
||||||
|
|
||||||
* Put sort data in first column (Install DTM)
|
// Put sort data in first column (Install DTM)
|
||||||
|
|
||||||
WorkList = ''
|
WorkList = ''
|
||||||
riCnt = COUNT(RIKeys,@VM) + (RIKeys NE '')
|
riCnt = COUNT(RIKeys,@VM) + (RIKeys NE '')
|
||||||
FOR I = 1 TO riCnt
|
FOR I = 1 TO riCnt
|
||||||
RIKey = RIKeys<1,I>
|
RIKey = RIKeys<1,I>
|
||||||
WorkList<I> = FIELD(RIKey,'*',3):@VM:RIKey
|
WorkList<I> = FIELD(RIKey,'*',3):@VM:RIKey
|
||||||
NEXT I
|
NEXT I
|
||||||
|
|
||||||
WorkList := @RM
|
WorkList := @RM
|
||||||
|
|
||||||
CONVERT @FM:@VM TO @RM:@FM IN WorkList ;* push delimiters higher for V119
|
CONVERT @FM:@VM TO @RM:@FM IN WorkList ;* push delimiters higher for V119
|
||||||
|
|
||||||
CALL V119('S','','D','L',WorkList,'') ;* Descending Left justified sort
|
CALL V119('S','','D','L',WorkList,'') ;* Descending Left justified sort
|
||||||
|
|
||||||
CONVERT @FM:@RM TO @VM:@FM IN WorkList ;* pull delimiters lower
|
CONVERT @FM:@RM TO @VM:@FM IN WorkList ;* pull delimiters lower
|
||||||
|
|
||||||
WorkList[-1,1] = '' ;* Trim trailing delimiter
|
WorkList[-1,1] = '' ;* Trim trailing delimiter
|
||||||
|
|
||||||
FOR I = 1 TO riCnt
|
FOR I = 1 TO riCnt
|
||||||
Result<1,I> = WorkList<I,2> ;* Strip Sort column(s)
|
Result<1,I> = WorkList<I,2> ;* Strip Sort column(s)
|
||||||
NEXT I
|
NEXT I
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
@ -84,6 +84,7 @@ $Insert NOTIFICATION_EQUATES
|
|||||||
$Insert DICT_EQUATES
|
$Insert DICT_EQUATES
|
||||||
$Insert COMPANY_EQUATES
|
$Insert COMPANY_EQUATES
|
||||||
$Insert RETURN_TO_FAB_LOTS_EQUATES
|
$Insert RETURN_TO_FAB_LOTS_EQUATES
|
||||||
|
$Insert TEST_RUN_EQUATES
|
||||||
|
|
||||||
EQU COL$LSID TO 1
|
EQU COL$LSID TO 1
|
||||||
EQU COL$RECIPE TO 2
|
EQU COL$RECIPE TO 2
|
||||||
@ -848,6 +849,27 @@ Service IsTWLoggingReqd(RDSNo)
|
|||||||
Response = IsTWReqd
|
Response = IsTWReqd
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
Service TestWaferRanAfterLoad(RDSNo)
|
||||||
|
TestWaferRanAfterLoad = False$
|
||||||
|
TestWaferKeys = Test_Run_Services('GetTestRunKeysByRDS', RDSNo)
|
||||||
|
for each Key in TestWaferKeys using @VM
|
||||||
|
TestWaferDtm = Xlate('TEST_RUN', Key, TEST_RUN_RUN_DTM$, 'X')
|
||||||
|
TestWaferDate = SRP_DateTime('Date', TestWaferDtm)
|
||||||
|
TestWaferTime = SRP_DateTime('Time', TestWaferDtm)
|
||||||
|
|
||||||
|
RdsDateIn = Xlate('RDS', RDSNo, RDS_DATE_IN$, 'X')
|
||||||
|
RdsTimeIn = Xlate('RDS', RDSNo, RDS_TIME_IN$, 'X')
|
||||||
|
|
||||||
|
TestWaferRanAfterLoad = TestWaferDate > RdsDateIn
|
||||||
|
If TestWaferRanAfterLoad EQ False$ then
|
||||||
|
TestWaferRanAfterLoad = (TestWaferDate EQ RdsDateIn) and TestWaferTime GT RdsTimeIn
|
||||||
|
end
|
||||||
|
Until TestWaferRanAfterLoad EQ True$
|
||||||
|
Next Key
|
||||||
|
|
||||||
|
Response = TestWaferRanAfterLoad
|
||||||
|
end service
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
// VerifyEPPMetrology
|
// VerifyEPPMetrology
|
||||||
//
|
//
|
||||||
@ -1805,3 +1827,4 @@ return
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -277,6 +277,7 @@ Event PUB_SIGN.CLICK()
|
|||||||
end
|
end
|
||||||
If (Valid EQ True$) then
|
If (Valid EQ True$) then
|
||||||
ReactorType = XLATE('RDS',RDSNo,'REACTOR_TYPE','X')
|
ReactorType = XLATE('RDS',RDSNo,'REACTOR_TYPE','X')
|
||||||
|
ErrMsg = ''
|
||||||
If Len(ReactorType) GE 3 and ReactorType[1, 3] _EQC 'HTR' then
|
If Len(ReactorType) GE 3 and ReactorType[1, 3] _EQC 'HTR' then
|
||||||
WoMatKey = WONo:'*':CassNo
|
WoMatKey = WONo:'*':CassNo
|
||||||
IsLastCassetteInWo = WO_MAT_Services('CassetteIsLastInWo', WoMatKey)
|
IsLastCassetteInWo = WO_MAT_Services('CassetteIsLastInWo', WoMatKey)
|
||||||
@ -298,26 +299,44 @@ Event PUB_SIGN.CLICK()
|
|||||||
WoMatRecord = Database_Services('ReadDataRow', 'WO_MAT', WoMatKey)
|
WoMatRecord = Database_Services('ReadDataRow', 'WO_MAT', WoMatKey)
|
||||||
WoMatRecord<WO_MAT_LAST_CASSETTE_TEST_WAFER_ACK_REQ$> = True$
|
WoMatRecord<WO_MAT_LAST_CASSETTE_TEST_WAFER_ACK_REQ$> = True$
|
||||||
|
|
||||||
Message = ''
|
TestWaferRanSinceLoad = WoMatRecord<WO_MAT_LAST_CASSETTE_TEST_WAFER_RAN$>
|
||||||
If NextEventScheduled EQ False$ or NextEventIsBlock EQ True$ then
|
|
||||||
Message = 'No material scheduled. Test wafer required.'
|
If TestWaferRanSinceLoad NE True$ then
|
||||||
end else if NextEventHasSamePsn EQ False$ then
|
TestWaferRanSinceLoad = Rds_Services('TestWaferRanAfterLoad', RDSNo)
|
||||||
Message = 'Next work order is a NEW PSN number. Test wafer required.'
|
WoMatRecord<WO_MAT_LAST_CASSETTE_TEST_WAFER_RAN$> = TestWaferRanSinceLoad
|
||||||
|
|
||||||
|
If TestWaferRanSinceLoad NE True$ then
|
||||||
|
Message = ''
|
||||||
|
If NextEventScheduled EQ False$ or NextEventIsBlock EQ True$ then
|
||||||
|
Message = 'No material scheduled. Test wafer required.'
|
||||||
|
end else if NextEventHasSamePsn EQ False$ then
|
||||||
|
Message = 'Next work order is a NEW PSN number. Test wafer required.'
|
||||||
|
end
|
||||||
|
|
||||||
|
Message_Box(@Window, Message, "Test Wafer Required", MSG_BTN_OK$ + MSG_ICON_EXCLAM$)
|
||||||
|
|
||||||
|
TWLogResult = Dialog_Box('NDW_LOG_TEST_WAFER_USAGE', @Window, RDSNo : @VM : '' : @VM : 'REACTOR' : @VM : Reactor)
|
||||||
|
|
||||||
|
WoMatRecord<WO_MAT_LAST_CASSETTE_TEST_WAFER_RAN$> = TWLogResult
|
||||||
|
|
||||||
|
If TWLogResult NE True$ then
|
||||||
|
ErrMsg = 'Unload blocked! You must run a test wafer before signing the unload'
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
MesageAcked = Message_Box(@Window, Message, "Test Wafer Required", MSG_BTN_OK$ + MSG_ICON_EXCLAM$)
|
|
||||||
|
|
||||||
WoMatRecord<WO_MAT_LAST_CASSETTE_TEST_WAFER_ACKED$> = True$
|
|
||||||
Database_Services('WriteDataRow', 'WO_MAT', WoMatKey, WoMatRecord, True$, False$, False$)
|
|
||||||
|
|
||||||
ConfirmNote = 'Test wafer requirement acknowledged. [RDS:' : RDSNo : '], [WO:' : WONo : '], [Cassette:' : CassNo : ']'
|
|
||||||
Reactor_Log_Services('AddComment', Reactor, ConfirmNote, @User4)
|
|
||||||
end
|
end
|
||||||
|
Database_Services('WriteDataRow', 'WO_MAT', WoMatKey, WoMatRecord, True$, False$, False$)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
QA_Services('SignUnloadStage', RDSNo, @User4)
|
If ErrMsg NE '' then
|
||||||
|
Error_Services('Add', ErrMsg)
|
||||||
|
end
|
||||||
|
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
QA_Services('SignUnloadStage', RDSNo, @User4)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
If Error_Services('HasError') then
|
If Error_Services('HasError') then
|
||||||
@ -446,3 +465,4 @@ return
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,24 +62,80 @@ API reactItems.HEAD
|
|||||||
API reactItems.GET
|
API reactItems.GET
|
||||||
|
|
||||||
QueryFields = HTTP_Services('GetHTTPGetString')
|
QueryFields = HTTP_Services('GetHTTPGetString')
|
||||||
If Index(QueryFields, 'riType', 1) then
|
If IndexC(QueryFields, 'includeNullRetireDt', 1) then
|
||||||
RIType = HTTP_Services('GetQueryField', 'riType')
|
IncludeNullRetireDt = HTTP_Services('GetQueryField', 'includeNullRetireDt')
|
||||||
|
Begin Case
|
||||||
|
Case ( (IncludeNullRetireDt EQ 1) or (IncludeNullRetireDt EQ 0) )
|
||||||
|
Null
|
||||||
|
Case ( (IncludeNullRetireDt _EQC 'true') or (IncludeNullRetireDt _EQC 'yes') )
|
||||||
|
IncludeNullRetireDt = True$
|
||||||
|
Case ( (IncludeNullRetireDt _EQC 'false') or (IncludeNullRetireDt _EQC 'no') )
|
||||||
|
IncludeNullRetireDt = False$
|
||||||
|
Case Otherwise$
|
||||||
|
Error_Services('Add', 'Error in ':CurrentAPI:' API. Invalid value "':IncludeNullRetireDt:'" passed in for includeNullRetireDt.')
|
||||||
|
End Case
|
||||||
end else
|
end else
|
||||||
RIType = ''
|
IncludeNullRetireDt = ''
|
||||||
|
end
|
||||||
|
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
If IndexC(QueryFields, 'showAllDetails', 1) then
|
||||||
|
ShowAllDetails = HTTP_Services('GetQueryField', 'showAllDetails')
|
||||||
|
Begin Case
|
||||||
|
Case ( (ShowAllDetails EQ 1) or (ShowAllDetails EQ 0) )
|
||||||
|
Null
|
||||||
|
Case ( (ShowAllDetails _EQC 'true') or (ShowAllDetails _EQC 'yes') )
|
||||||
|
ShowAllDetails = True$
|
||||||
|
Case ( (ShowAllDetails _EQC 'false') or (ShowAllDetails _EQC 'no') )
|
||||||
|
ShowAllDetails = False$
|
||||||
|
Case Otherwise$
|
||||||
|
Error_Services('Add', 'Error in ':CurrentAPI:' API. Invalid value "':ShowAllDetails:'" passed in for showAllDetails.')
|
||||||
|
End Case
|
||||||
|
end else
|
||||||
|
ShowAllDetails = False$
|
||||||
|
end
|
||||||
|
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
If IndexC(QueryFields, 'currStatus', 1) then
|
||||||
|
CurrStatus = HTTP_Services('GetQueryField', 'currStatus')
|
||||||
|
end else
|
||||||
|
CurrStatus = ''
|
||||||
|
end
|
||||||
|
If IndexC(QueryFields, 'riType', 1) then
|
||||||
|
RIType = HTTP_Services('GetQueryField', 'riType')
|
||||||
|
end else
|
||||||
|
RIType = ''
|
||||||
|
end
|
||||||
|
If IndexC(QueryFields, 'entryDtStart', 1) then
|
||||||
|
EntryDtStart = HTTP_Services('GetQueryField', 'entryDtStart')
|
||||||
|
end else
|
||||||
|
EntryDtStart = ''
|
||||||
|
end
|
||||||
|
If IndexC(QueryFields, 'entryDtEnd', 1) then
|
||||||
|
EntryDtEnd = HTTP_Services('GetQueryField', 'entryDtEnd')
|
||||||
|
end else
|
||||||
|
EntryDtEnd = ''
|
||||||
|
end
|
||||||
|
If IndexC(QueryFields, 'retireDtStart', 1) then
|
||||||
|
RetireDtStart = HTTP_Services('GetQueryField', 'retireDtStart')
|
||||||
|
end else
|
||||||
|
RetireDtStart = ''
|
||||||
|
end
|
||||||
|
If IndexC(QueryFields, 'retireDtEnd', 1) then
|
||||||
|
RetireDtEnd = HTTP_Services('GetQueryField', 'retireDtEnd')
|
||||||
|
end else
|
||||||
|
RetireDtEnd = ''
|
||||||
|
end
|
||||||
|
|
||||||
|
StatusCode = 200
|
||||||
|
GoSub CreateHALCollection
|
||||||
|
end else
|
||||||
|
HTTP_Services('SetResponseStatus', 400, Error_Services("GetMessage"))
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
HTTP_Services('SetResponseStatus', 400, Error_Services("GetMessage"))
|
||||||
end
|
end
|
||||||
If Index(QueryFields, 'currStatus', 1 ) then
|
|
||||||
CurrStatus = Http_Services('GetQueryField', 'currStatus')
|
|
||||||
end else
|
|
||||||
CurrStatus = ''
|
|
||||||
end
|
|
||||||
If Index(QueryFields, 'showAllDetails', 1 ) then
|
|
||||||
ShowAllDetails = Http_Services('GetQueryField', 'showAllDetails')
|
|
||||||
end else
|
|
||||||
ShowAllDetails = False$
|
|
||||||
end
|
|
||||||
StatusCode = 200
|
|
||||||
|
|
||||||
GoSub CreateHALCollection
|
|
||||||
end api
|
end api
|
||||||
|
|
||||||
|
|
||||||
@ -254,11 +310,7 @@ CreateHALCollection:
|
|||||||
|
|
||||||
JSONCollection = ''
|
JSONCollection = ''
|
||||||
Abort = False$
|
Abort = False$
|
||||||
If RIType NE '' OR CurrStatus NE '' then
|
ReactItems = React_Item_Services('GetReactItems', RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStart, RetireDtEnd, IncludeNullRetireDt)
|
||||||
ReactItems = React_Item_Services('GetReactItems', RIType, CurrStatus)
|
|
||||||
end else
|
|
||||||
ReactItems = React_Item_Services('GetAllReactItemKeys')
|
|
||||||
end
|
|
||||||
|
|
||||||
If ReactItems NE '' then
|
If ReactItems NE '' then
|
||||||
If SRP_JSON(hJSONCollection, 'New', 'Object') then
|
If SRP_JSON(hJSONCollection, 'New', 'Object') then
|
||||||
@ -304,3 +356,4 @@ CreateHALCollection:
|
|||||||
end
|
end
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -101,7 +101,7 @@ Return Response else ''
|
|||||||
// Service Parameter Options
|
// Service Parameter Options
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
Options BOOLEAN = True$, False$
|
Options BOOLEAN = True$, False$
|
||||||
Options REACTORMETRIC = 'TUBE_BELL_JAR_THK', 'TUBE_BELL_JAR_WFR_CNT', 'SUSC_THK', 'SUSC_WFR_CNT', 'LOWER_QUARTZ_THK', 'LOWER_QUARTZ_WFR', 'ARMS_WFR_CNT'
|
Options REACTORMETRIC = 'TUBE_BELL_JAR_THK', 'TUBE_BELL_JAR_WFR_CNT', 'SUSC_THK', 'SUSC_WFR_CNT', 'LOWER_QUARTZ_THK', 'LOWER_QUARTZ_WFR', 'ARMS_WFR_CNT', 'EXHAUST_CHAMBER_THK'
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Services
|
// Services
|
||||||
@ -136,6 +136,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
|
CurrExhaustThk = OldReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
|
|
||||||
// Arms are not used for EPP
|
// Arms are not used for EPP
|
||||||
If ReactorType NE 'EPP' then
|
If ReactorType NE 'EPP' then
|
||||||
@ -150,6 +151,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
||||||
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
||||||
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
||||||
|
If CurrExhaustThk = '' then CurrExhaustThk = 0
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
|
|
||||||
@ -161,6 +163,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + 1
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + 1
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + TargetThickness
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + TargetThickness
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + 1
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + 1
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + TargetThickness
|
||||||
|
|
||||||
Case ReactorType = 'HTR'
|
Case ReactorType = 'HTR'
|
||||||
|
|
||||||
@ -176,6 +179,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
Case SusceptorSize = 8
|
Case SusceptorSize = 8
|
||||||
// Round up
|
// Round up
|
||||||
@ -192,6 +196,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -206,6 +211,7 @@ Service IncrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + WaferCount
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + WaferCount
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -229,6 +235,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<1, 4> = ReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
ResponseData<1, 4> = ReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
||||||
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
||||||
ResponseData<1, 6> = ReactorRec<REACTOR_ARMS_WFR_CNT$>
|
ResponseData<1, 6> = ReactorRec<REACTOR_ARMS_WFR_CNT$>
|
||||||
|
ResponseData<1, 7> = ReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
//These are the column titles to help us with API Responses
|
//These are the column titles to help us with API Responses
|
||||||
ResponseData<2, 1> = 'ReactorID'
|
ResponseData<2, 1> = 'ReactorID'
|
||||||
ResponseData<2, 2> = 'SusceptorWaferCount'
|
ResponseData<2, 2> = 'SusceptorWaferCount'
|
||||||
@ -236,6 +243,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<2, 4> = 'TubeWaferCount'
|
ResponseData<2, 4> = 'TubeWaferCount'
|
||||||
ResponseData<2, 5> = 'TubeThickness'
|
ResponseData<2, 5> = 'TubeThickness'
|
||||||
ResponseData<2, 6> = 'ArmsWaferCount'
|
ResponseData<2, 6> = 'ArmsWaferCount'
|
||||||
|
ResponseData<2, 7> = 'ExhuastChamberThickness'
|
||||||
Case ReactorType EQ 'HTR'
|
Case ReactorType EQ 'HTR'
|
||||||
ResponseData<1, 1> = ReactorID
|
ResponseData<1, 1> = ReactorID
|
||||||
ResponseData<1, 2> = ReactorRec<REACTOR_SUSC_WFR_CNT$>
|
ResponseData<1, 2> = ReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
@ -243,6 +251,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<1, 4> = ReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
ResponseData<1, 4> = ReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
||||||
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
||||||
ResponseData<1, 6> = ReactorRec<REACTOR_ARMS_WFR_CNT$>
|
ResponseData<1, 6> = ReactorRec<REACTOR_ARMS_WFR_CNT$>
|
||||||
|
ResponseData<1, 7> = ReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
//These are the column titles to help us with API Responses
|
//These are the column titles to help us with API Responses
|
||||||
ResponseData<2, 1> = 'ReactorID'
|
ResponseData<2, 1> = 'ReactorID'
|
||||||
ResponseData<2, 2> = 'SusceptorWaferCount'
|
ResponseData<2, 2> = 'SusceptorWaferCount'
|
||||||
@ -250,6 +259,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<2, 4> = 'TubeWaferCount'
|
ResponseData<2, 4> = 'TubeWaferCount'
|
||||||
ResponseData<2, 5> = 'TubeThickness'
|
ResponseData<2, 5> = 'TubeThickness'
|
||||||
ResponseData<2, 6> = 'ArmsWaferCount'
|
ResponseData<2, 6> = 'ArmsWaferCount'
|
||||||
|
ResponseData<2, 7> = 'ExhuastChamberThickness'
|
||||||
Case ReactorType EQ 'EPP'
|
Case ReactorType EQ 'EPP'
|
||||||
ResponseData<1, 1> = ReactorID
|
ResponseData<1, 1> = ReactorID
|
||||||
ResponseData<1, 2> = ReactorRec<REACTOR_SUSC_WFR_CNT$>
|
ResponseData<1, 2> = ReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
@ -258,6 +268,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
ResponseData<1, 5> = ReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
||||||
ResponseData<1, 6> = ReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
ResponseData<1, 6> = ReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
ResponseData<1, 7> = ReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
ResponseData<1, 7> = ReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
|
ResponseData<1, 8> = ReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
//These are the column titles to help us with API Responses
|
//These are the column titles to help us with API Responses
|
||||||
ResponseData<2, 1> = 'ReactorID'
|
ResponseData<2, 1> = 'ReactorID'
|
||||||
ResponseData<2, 2> = 'SusceptorWaferCount'
|
ResponseData<2, 2> = 'SusceptorWaferCount'
|
||||||
@ -266,6 +277,7 @@ Service GetWaferCntMetricsByReactorID(ReactorID)
|
|||||||
ResponseData<2, 5> = 'BellJarThickness'
|
ResponseData<2, 5> = 'BellJarThickness'
|
||||||
ResponseData<2, 6> = 'LowerQuartzWaferCount'
|
ResponseData<2, 6> = 'LowerQuartzWaferCount'
|
||||||
ResponseData<2, 7> = 'LowerQuartzThickness'
|
ResponseData<2, 7> = 'LowerQuartzThickness'
|
||||||
|
ResponseData<2, 8> = 'ExhuastChamberThickness'
|
||||||
End Case
|
End Case
|
||||||
Response = ResponseData
|
Response = ResponseData
|
||||||
end else
|
end else
|
||||||
@ -307,6 +319,7 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
|
CurrExhaustThk = OldReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
|
|
||||||
// Arms are not used for EPP
|
// Arms are not used for EPP
|
||||||
If ReactorType NE 'EPP' then
|
If ReactorType NE 'EPP' then
|
||||||
@ -321,6 +334,7 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
||||||
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
||||||
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
||||||
|
If CurrExhaustThk = '' then CurrExhaustThk = 0
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
|
|
||||||
@ -332,6 +346,7 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - 1
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - 1
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - TargetThickness
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - TargetThickness
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - 1
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - 1
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - TargetThickness
|
||||||
|
|
||||||
Case ReactorType = 'HTR'
|
Case ReactorType = 'HTR'
|
||||||
|
|
||||||
@ -342,11 +357,12 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
ThkAddition = (WaferCount / 5) * TargetThickness
|
ThkAddition = (WaferCount / 5) * TargetThickness
|
||||||
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk - ThkAddition
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt - CntAddition
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt - CntAddition
|
||||||
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk + ThkAddition
|
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - CntAddition
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - CntAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
Case SusceptorSize = 8
|
Case SusceptorSize = 8
|
||||||
// Round up
|
// Round up
|
||||||
@ -363,6 +379,7 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -377,6 +394,7 @@ Service DecrementWfrMetrics(RDSNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - WaferCount
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - WaferCount
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -410,6 +428,7 @@ Service IncrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
|
CurrExhaustThk = OldReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
|
|
||||||
// Arms are not used for EPP
|
// Arms are not used for EPP
|
||||||
If ReactorType NE 'EPP' then
|
If ReactorType NE 'EPP' then
|
||||||
@ -435,6 +454,7 @@ Service IncrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + 1
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + 1
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + TargetThickness
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + TargetThickness
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + 1
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + 1
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + TargetThickness
|
||||||
|
|
||||||
Case ReactorType = 'HTR'
|
Case ReactorType = 'HTR'
|
||||||
|
|
||||||
@ -450,6 +470,7 @@ Service IncrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
Case SusceptorSize = 8
|
Case SusceptorSize = 8
|
||||||
// Round up
|
// Round up
|
||||||
@ -466,6 +487,7 @@ Service IncrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -480,6 +502,7 @@ Service IncrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + WaferCount
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr + WaferCount
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk + ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -513,6 +536,7 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
|
CurrExhaustThk = OldReactorRec<REACTOR_EXHAUST_CHAMBER_THK$>
|
||||||
|
|
||||||
// Arms are not used for EPP
|
// Arms are not used for EPP
|
||||||
If ReactorType NE 'EPP' then
|
If ReactorType NE 'EPP' then
|
||||||
@ -527,6 +551,7 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
||||||
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
||||||
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
||||||
|
If CurrExhaustThk = '' then CurrExhaustThk = 0
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
|
|
||||||
@ -538,6 +563,7 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - 1
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - 1
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - TargetThickness
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - TargetThickness
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - 1
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - 1
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - TargetThickness
|
||||||
|
|
||||||
Case ReactorType = 'HTR'
|
Case ReactorType = 'HTR'
|
||||||
|
|
||||||
@ -548,11 +574,12 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
ThkAddition = (WaferCount / 5) * TargetThickness
|
ThkAddition = (WaferCount / 5) * TargetThickness
|
||||||
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk - ThkAddition
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt - CntAddition
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt - CntAddition
|
||||||
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk + ThkAddition
|
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - CntAddition
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt - CntAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
Case SusceptorSize = 8
|
Case SusceptorSize = 8
|
||||||
// Round up
|
// Round up
|
||||||
@ -569,6 +596,7 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - CntAddition
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -583,6 +611,7 @@ Service DecrementTestWfrMetrics(TargetThickness, WaferCount, ReactorNo)
|
|||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk - ThkAddition
|
||||||
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - WaferCount
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzWfr - WaferCount
|
||||||
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt - WaferCount
|
||||||
|
NewReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = CurrExhaustThk - ThkAddition
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
@ -596,7 +625,7 @@ end service
|
|||||||
// ResetWfrMetric
|
// ResetWfrMetric
|
||||||
//
|
//
|
||||||
// RDSNo. - [Required]
|
// RDSNo. - [Required]
|
||||||
// MetricType - [Required]('TUBE_BELL_JAR_THK', 'TUBE_BELL_JAR_WFR_CNT', 'SUSC_THK', 'SUSC_WFR_CNT', 'LOWER_QUARTZ_THK', 'LOWER_QUARTZ_WFR', 'ARMS_WFR_CNT')
|
// MetricType - [Required]('TUBE_BELL_JAR_THK', 'TUBE_BELL_JAR_WFR_CNT', 'SUSC_THK', 'SUSC_WFR_CNT', 'LOWER_QUARTZ_THK', 'LOWER_QUARTZ_WFR', 'ARMS_WFR_CNT', EXHAUST_CHAMBER_THK)
|
||||||
//
|
//
|
||||||
// Reset a specified REACTOR metric to 0.
|
// Reset a specified REACTOR metric to 0.
|
||||||
//
|
//
|
||||||
@ -628,6 +657,9 @@ Service ResetWfrMetric(ReactorNo, MetricType = REACTORMETRIC)
|
|||||||
Case MetricType = 'ARMS_WFR_CNT'
|
Case MetricType = 'ARMS_WFR_CNT'
|
||||||
ReactorRec<REACTOR_ARMS_WFR_CNT$> = 0
|
ReactorRec<REACTOR_ARMS_WFR_CNT$> = 0
|
||||||
|
|
||||||
|
Case MetricType = 'EXHAUST_CHAMBER_THK'
|
||||||
|
ReactorRec<REACTOR_EXHAUST_CHAMBER_THK$> = 0
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, ReactorRec, 1, 0, 0)
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, ReactorRec, 1, 0, 0)
|
||||||
|
@ -1,254 +1,235 @@
|
|||||||
Function REACT_ITEM_Actions(Action, CalcColName, FSList, Handle, Name, FMC, Record, Status, OrigRecord, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)
|
Function REACT_ITEM_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
|
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.
|
permission from Infineon.
|
||||||
|
|
||||||
Name : RDS_Actions
|
Name : React_Item_Actions
|
||||||
|
|
||||||
Description : Handles calculated columns and MFS calls for the current table.
|
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.
|
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.
|
If called from outside of a calculated column these will need to be set and restored.
|
||||||
|
|
||||||
Parameters :
|
Parameters :
|
||||||
Action [in] -- Name of the action to be taken
|
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
|
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.
|
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
|
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
|
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.
|
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
|
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
|
entire handle structure that the Basic+ Open statement would provide. Normally set by a
|
||||||
calling MFS.
|
calling MFS.
|
||||||
Name [in] -- The name (key) of the record or file being accessed. 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.
|
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
|
Record [in] -- The entire record (for record-oriented functions) or a newly-created handle (for
|
||||||
"get handle" functions). Normally set by a calling MFS.
|
"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
|
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.
|
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
|
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
|
automatically being assigned by the WRITE_RECORD and DELETE_RECORD actions within
|
||||||
BASE_MFS.
|
BASE_MFS.
|
||||||
Param1-10 [in/out] -- Additional request parameter holders
|
Param1-10 [in/out] -- Additional request parameter holders
|
||||||
ActionFlow [out] -- Used to control the action chain (see the ACTION_SETUP insert for more information.)
|
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
|
Can also be used to return a special value, such as the results of the CalcField
|
||||||
method.
|
method.
|
||||||
|
|
||||||
History : (Date, Initials, Notes)
|
History : (Date, Initials, Notes)
|
||||||
04/10/18 dmb Original programmer.
|
05/12/25 djs Updated WRITE_PRE action to update the CURR_STATUS_STATIC field if the retire date changes.
|
||||||
10/04/18 djs Added a trigger within the WRITE_RECORD event, which fires when the reactor number has
|
|
||||||
changed. When this occurs the related RDS_LAYER records for this RDS record are populated
|
***********************************************************************************************************************/
|
||||||
with the most recent associated TOOL_PARMS record. (related by PSN and Reactor)
|
|
||||||
|
#pragma precomp SRP_PreCompiler
|
||||||
***********************************************************************************************************************/
|
|
||||||
|
$Insert ACTION_SETUP
|
||||||
#pragma precomp SRP_PreCompiler
|
$Insert APP_INSERTS
|
||||||
|
$Insert FILE.SYSTEM.EQUATES
|
||||||
$Insert FILE.SYSTEM.EQUATES
|
$Insert REACT_ITEM_EQUATES
|
||||||
$Insert ACTION_SETUP
|
|
||||||
$Insert RDS_EQUATES
|
Declare function obj_React_Item
|
||||||
$Insert CLEAN_INSP_EQUATES
|
Declare subroutine Error_Services
|
||||||
$Insert COMPANY_EQUATES
|
|
||||||
$Insert RDS_LAYER_EQUATES
|
If KeyID then GoSub Initialize_System_Variables
|
||||||
$Insert TOOL_PARMS_EQUATES
|
|
||||||
$Insert RLIST_EQUATES
|
Begin Case
|
||||||
$Insert APP_INSERTS
|
|
||||||
$Insert QA_MET_EQUATES
|
Case Action _EQC 'CalculateColumn' ; GoSub CalculateColumn
|
||||||
$Insert PRS_STAGE_EQUATES
|
Case Action _EQC 'READ_RECORD_PRE' ; GoSub READ_RECORD_PRE
|
||||||
$Insert WO_MAT_EQUATES
|
Case Action _EQC 'READ_RECORD' ; GoSub READ_RECORD
|
||||||
$Insert WO_MAT_QA_EQUATES
|
Case Action _EQC 'READONLY_RECORD_PRE' ; GoSub READONLY_RECORD_PRE
|
||||||
|
Case Action _EQC 'READONLY_RECORD' ; GoSub READONLY_RECORD
|
||||||
Equ COMMA$ to ','
|
Case Action _EQC 'WRITE_RECORD_PRE' ; GoSub WRITE_RECORD_PRE
|
||||||
|
Case Action _EQC 'WRITE_RECORD' ; GoSub WRITE_RECORD
|
||||||
Declare function Error_Services, Database_Services, obj_RDS_Test, Logging_Services, Environment_Services, SRP_Math
|
Case Action _EQC 'DELETE_RECORD_PRE' ; GoSub DELETE_RECORD_PRE
|
||||||
Declare function Tool_Parms_Services, Signature_Services, obj_WO_Mat_QA, Datetime, Override_Services, obj_WO_Mat
|
Case Action _EQC 'DELETE_RECORD' ; GoSub DELETE_RECORD
|
||||||
Declare subroutine Error_Services, Database_Services, Logging_Services, Set_Status, Schedule_Services_Dev
|
Case Otherwise$ ; Status = 'Invalid Action'
|
||||||
Declare subroutine Work_Order_Services, Material_Services, Set_FSError
|
|
||||||
|
End Case
|
||||||
|
|
||||||
|
If KeyID then GoSub Restore_System_Variables
|
||||||
|
|
||||||
|
If Assigned(ActionFlow) else ActionFlow = ACTION_CONTINUE$
|
||||||
If KeyID then GoSub Initialize_System_Variables
|
|
||||||
|
Return ActionFlow
|
||||||
Begin Case
|
|
||||||
|
|
||||||
Case Action _EQC 'CalculateColumn' ; GoSub CalculateColumn
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
Case Action _EQC 'READ_RECORD_PRE' ; GoSub READ_RECORD_PRE
|
// Calculated Columns
|
||||||
Case Action _EQC 'READ_RECORD' ; GoSub READ_RECORD
|
//
|
||||||
Case Action _EQC 'READONLY_RECORD_PRE' ; GoSub READONLY_RECORD_PRE
|
// The typical structure of a calculated column will look like this:
|
||||||
Case Action _EQC 'READONLY_RECORD' ; GoSub READONLY_RECORD
|
//
|
||||||
Case Action _EQC 'WRITE_RECORD_PRE' ; GoSub WRITE_RECORD_PRE
|
// Declare function Database_Services
|
||||||
Case Action _EQC 'WRITE_RECORD' ; GoSub WRITE_RECORD
|
//
|
||||||
Case Action _EQC 'DELETE_RECORD_PRE' ; GoSub DELETE_RECORD_PRE
|
// @ANS = Database_Services('CalculateColumn')
|
||||||
Case Action _EQC 'DELETE_RECORD' ; GoSub DELETE_RECORD
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
Case Otherwise$ ; Status = 'Invalid Action'
|
|
||||||
|
CalculateColumn:
|
||||||
End Case
|
|
||||||
|
// Make sure the ActionFlow return variable is cleared in case nothing is calculated.
|
||||||
If KeyID then GoSub Restore_System_Variables
|
ActionFlow = ''
|
||||||
|
|
||||||
If Assigned(ActionFlow) else ActionFlow = ACTION_CONTINUE$
|
return
|
||||||
|
|
||||||
Return ActionFlow
|
// ----- MFS calls -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
READ_RECORD_PRE:
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
// In order to stop a record from being read in this action these lines of code must be used:
|
||||||
// Calculated Columns
|
//
|
||||||
//
|
// OrigFileError = 100 : @FM : KeyID
|
||||||
// The typical structure of a calculated column will look like this:
|
// Status = 0
|
||||||
//
|
// Record = ''
|
||||||
// Declare function Database_Services
|
// ActionFlow = ACTION_STOP$
|
||||||
//
|
return
|
||||||
// @ANS = Database_Services('CalculateColumn')
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
READ_RECORD:
|
||||||
CalculateColumn:
|
|
||||||
|
// In order to stop a record from being read in this action these lines of code must be used:
|
||||||
// Make sure the ActionFlow return variable is cleared in case nothing is calculated.
|
//
|
||||||
ActionFlow = ''
|
// OrigFileError = 100 : @FM : KeyID
|
||||||
|
// Status = 0
|
||||||
|
// Record = ''
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
READONLY_RECORD_PRE:
|
||||||
// ----- MFS calls -----------------------------------------------------------------------------------------------------
|
// In order to stop a record from being read in this action these lines of code must be used:
|
||||||
|
//
|
||||||
READ_RECORD_PRE:
|
// OrigFileError = 100 : @FM : KeyID
|
||||||
// In order to stop a record from being read in this action these lines of code must be used:
|
// Status = 0
|
||||||
//
|
// Record = ''
|
||||||
// OrigFileError = 100 : @FM : KeyID
|
// ActionFlow = ACTION_STOP$
|
||||||
// Status = 0
|
return
|
||||||
// Record = ''
|
|
||||||
// ActionFlow = ACTION_STOP$
|
|
||||||
|
READONLY_RECORD:
|
||||||
|
// In order to stop a record from being read in this action these lines of code must be used:
|
||||||
return
|
//
|
||||||
|
// OrigFileError = 100 : @FM : KeyID
|
||||||
READ_RECORD:
|
// Status = 0
|
||||||
|
// Record = ''
|
||||||
// In order to stop a record from being read in this action these lines of code must be used:
|
return
|
||||||
//
|
|
||||||
// OrigFileError = 100 : @FM : KeyID
|
|
||||||
// Status = 0
|
WRITE_RECORD_PRE:
|
||||||
// Record = ''
|
|
||||||
|
ErrMsg = ''
|
||||||
return
|
|
||||||
|
// Req'd parameter checks
|
||||||
READONLY_RECORD_PRE:
|
ItemType = {RI_TYPE}
|
||||||
// In order to stop a record from being read in this action these lines of code must be used:
|
|
||||||
//
|
If ItemType EQ '' then ErrMsg := 'Item Type was not specified. '
|
||||||
// OrigFileError = 100 : @FM : KeyID
|
|
||||||
// Status = 0
|
If ErrMsg NE '' then
|
||||||
// Record = ''
|
Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
|
||||||
// ActionFlow = ACTION_STOP$
|
OrigFileError = 104:': Error Saving Reactor Item: ' : ErrMsg
|
||||||
return
|
Status = 0
|
||||||
|
Record = ''
|
||||||
READONLY_RECORD:
|
ActionFlow = ACTION_STOP$
|
||||||
// In order to stop a record from being read in this action these lines of code must be used:
|
end else
|
||||||
//
|
OrigRetireDt = OrigRecord<REACT_ITEM_RETIRE_DT$>
|
||||||
// OrigFileError = 100 : @FM : KeyID
|
NewRetireDt = Record<REACT_ITEM_RETIRE_DT$>
|
||||||
// Status = 0
|
OrigNotes = OrigRecord<REACT_ITEM_NOTES$>
|
||||||
// Record = ''
|
NewNotes = Record<REACT_ITEM_NOTES$>
|
||||||
return
|
If ( (OrigRetireDt NE NewRetireDt) or (OrigNotes NE NewNotes) ) then
|
||||||
|
CurrStatus = obj_React_Item('CurrStatus', Name:@RM:Record)
|
||||||
WRITE_RECORD_PRE:
|
Record<REACT_ITEM_CURR_STATUS_STATIC$> = CurrStatus
|
||||||
|
SaveRecord = Record
|
||||||
ErrMsg = ''
|
end
|
||||||
|
end
|
||||||
//Req'd parameter checks
|
|
||||||
ItemType = {RI_TYPE}
|
return
|
||||||
|
|
||||||
If ItemType EQ '' then
|
WRITE_RECORD:
|
||||||
ErrMsg := 'Item Type was not specified. '
|
return
|
||||||
end
|
|
||||||
|
DELETE_RECORD_PRE:
|
||||||
If ErrMsg NE '' then
|
return
|
||||||
Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
|
|
||||||
OrigFileError = 104:': Error Saving Reactor Item: ' : ErrMsg
|
DELETE_RECORD:
|
||||||
Status = 0
|
return
|
||||||
Record = ''
|
|
||||||
ActionFlow = ACTION_STOP$
|
|
||||||
end
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Internal GoSubs
|
||||||
return
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
WRITE_RECORD:
|
ClearCursors:
|
||||||
|
|
||||||
|
For counter = 0 to 8
|
||||||
|
ClearSelect counter
|
||||||
return
|
Next counter
|
||||||
|
|
||||||
DELETE_RECORD_PRE:
|
return
|
||||||
|
|
||||||
|
|
||||||
return
|
Initialize_System_Variables:
|
||||||
|
|
||||||
DELETE_RECORD:
|
// Save these for restoration later
|
||||||
return
|
SaveDict = @DICT
|
||||||
|
SaveID = @ID
|
||||||
|
SaveRecord = @RECORD
|
||||||
|
OrigFileError = @FILE.ERROR
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Internal GoSubs
|
// Now make sure @DICT, ID, and @RECORD are populated
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
CurrentDictName = ''
|
||||||
|
If @DICT then
|
||||||
ClearCursors:
|
DictHandle = @DICT<1, 2>
|
||||||
For counter = 0 to 8
|
Locate DictHandle in @TABLES(5) Using @FM Setting fPos then
|
||||||
ClearSelect counter
|
CurrentDictName = Field(@TABLES(0), @FM, fPos, 1)
|
||||||
Next counter
|
end
|
||||||
return
|
end
|
||||||
|
|
||||||
|
If CurrentDictName NE DictName then
|
||||||
Initialize_System_Variables:
|
Open DictName to @DICT else Status = 'Unable to initialize @DICT'
|
||||||
|
end
|
||||||
// Save these for restoration later
|
|
||||||
SaveDict = @DICT
|
@ID = KeyID
|
||||||
SaveID = @ID
|
If Record else
|
||||||
SaveRecord = @RECORD
|
// Record might not have been passed in. Read the record from the database table just to make sure.
|
||||||
OrigFileError = @FILE.ERROR
|
@FILE.ERROR = ''
|
||||||
|
Open TableName to hTable then
|
||||||
// Now make sure @DICT, ID, and @RECORD are populated
|
FullFSList = hTable[1, 'F' : @VM]
|
||||||
CurrentDictName = ''
|
BFS = FullFSList[-1, 'B' : @SVM]
|
||||||
If @DICT then
|
LastHandle = hTable[-1, 'B' : \0D\]
|
||||||
DictHandle = @DICT<1, 2>
|
FileHandle = \0D\ : LastHandle[1, @VM]
|
||||||
Locate DictHandle in @TABLES(5) Using @FM Setting fPos then
|
|
||||||
CurrentDictName = Field(@TABLES(0), @FM, fPos, 1)
|
Call @BFS(READO.RECORD, BFS, FileHandle, KeyID, FMC, Record, ReadOStatus)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@RECORD = Record
|
||||||
If CurrentDictName NE DictName then
|
|
||||||
Open DictName to @DICT else Status = 'Unable to initialize @DICT'
|
return
|
||||||
end
|
|
||||||
|
|
||||||
@ID = KeyID
|
Restore_System_Variables:
|
||||||
If Record else
|
|
||||||
// Record might not have been passed in. Read the record from the database table just to make sure.
|
Transfer SaveDict to @DICT
|
||||||
@FILE.ERROR = ''
|
Transfer SaveID to @ID
|
||||||
Open TableName to hTable then
|
Transfer SaveRecord to @RECORD
|
||||||
FullFSList = hTable[1, 'F' : @VM]
|
@FILE.ERROR = OrigFileError
|
||||||
BFS = FullFSList[-1, 'B' : @SVM]
|
|
||||||
LastHandle = hTable[-1, 'B' : \0D\]
|
return
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,62 +20,110 @@ Compile function React_Item_Services(@Service, @Params)
|
|||||||
08/02/22 djs Original programmer.
|
08/02/22 djs Original programmer.
|
||||||
|
|
||||||
***********************************************************************************************************************/
|
***********************************************************************************************************************/
|
||||||
|
|
||||||
#pragma precomp SRP_PreCompiler
|
#pragma precomp SRP_PreCompiler
|
||||||
|
|
||||||
$Insert LOGICAL
|
|
||||||
$Insert APP_INSERTS
|
$Insert APP_INSERTS
|
||||||
|
$Insert SERVICE_SETUP
|
||||||
$Insert RLIST_EQUATES
|
$Insert RLIST_EQUATES
|
||||||
$Insert REACT_ITEM_EQUATES
|
$Insert REACT_ITEM_EQUATES
|
||||||
|
|
||||||
Declare function Database_Services, Error_Services, SRP_JSON, NextKey
|
Declare function Database_Services, Error_Services, SRP_JSON, NextKey, SRP_Date, obj_React_Item, SRP_Array
|
||||||
Declare subroutine SRP_JSON, Error_Services, Btree.Extract, Database_Services
|
Declare subroutine SRP_JSON, Error_Services, Btree.Extract, Database_Services, Update_Index
|
||||||
GoToService
|
|
||||||
|
|
||||||
Return Response or ""
|
GoToService else
|
||||||
|
Error_Services('Set', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
|
||||||
|
end
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
Return Response else ''
|
||||||
// SERVICES
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Service GetAllReactItemKeys()
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
AllKeys = ''
|
// Service Parameter Options
|
||||||
RList('SELECT REACT_ITEM', TARGET_ACTIVELIST$, '', '', '')
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
Done = False$
|
Options BOOLEAN = True$, False$
|
||||||
Reactors = ''
|
|
||||||
Loop
|
|
||||||
Readnext keyId else Done = True$
|
|
||||||
Until Done
|
|
||||||
AllKeys<1,-1> = keyId
|
|
||||||
Repeat
|
|
||||||
Response = AllKeys
|
|
||||||
end service
|
|
||||||
|
|
||||||
Service GetReactItems(RIType, CurrStatus)
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Services
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
Service GetReactItems(RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStart, RetireDtEnd, IncludeNullRetireDt=BOOLEAN)
|
||||||
|
|
||||||
ErrorMsg = ''
|
ErrorMsg = ''
|
||||||
Response = ''
|
Response = ''
|
||||||
Swap ',' with @VM in RIType
|
If ( (RIType NE '') or (CurrStatus NE '') or (EntryDtStart NE '') or (EntryDtEnd NE '') or (RetireDtStart NE '') or (RetireDtEnd NE '') or (IncludeNullRetireDt NE '') ) then
|
||||||
Swap ',' with @VM in CurrStatus
|
If EntryDtStart NE '' and Not(Num(EntryDtStart)) then EntryDtStart = IConv(EntryDtStart, 'D')
|
||||||
|
If EntryDtEnd NE '' and Not(Num(EntryDtEnd)) then EntryDtEnd = IConv(EntryDtEnd, 'D')
|
||||||
Open 'DICT.REACT_ITEM' to DictReactItem then
|
If RetireDtStart NE '' and Not(Num(RetireDtStart)) then RetireDtStart = IConv(RetireDtStart, 'D')
|
||||||
|
If RetireDtEnd NE '' and Not(Num(RetireDtEnd)) then RetireDtEnd = IConv(RetireDtEnd, 'D')
|
||||||
SearchString = ''
|
Open 'DICT.REACT_ITEM' to DictReactItem then
|
||||||
If RIType NE '' then SearchString := 'RI_TYPE':@VM:RIType:@FM
|
SearchString = ''
|
||||||
If CurrStatus NE '' then SearchString := 'CURR_STATUS':@VM:CurrStatus:@FM
|
If RIType NE '' then
|
||||||
RIKeys = ''
|
Swap ',' with @VM in RIType
|
||||||
Btree.Extract(SearchString, 'REACT_ITEM', DictReactItem, RIKeys, '', '')
|
SearchString := 'RI_TYPE':@VM:RIType:@FM
|
||||||
ErrCode = ''
|
end
|
||||||
IF Get_Status(ErrCode) then
|
Begin Case
|
||||||
ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract. Error code ':ErrCode:'.'
|
Case ( (EntryDtStart NE '') and (EntryDtEnd NE '') )
|
||||||
|
EntryDtStart = OConv(EntryDtStart - 1, 'D4/')
|
||||||
|
EntryDtEnd = OConv(EntryDtEnd + 1, 'D4/')
|
||||||
|
SearchString := 'ENTER_DT':@VM:EntryDtStart:'~':EntryDtEnd:@FM
|
||||||
|
Case (EntryDtStart NE '')
|
||||||
|
EntryDtStart = OConv(EntryDtStart, 'D4/')
|
||||||
|
SearchString := 'ENTER_DT':@VM:'>=':EntryDtStart:@FM
|
||||||
|
Case (EntryDtEnd NE '')
|
||||||
|
SearchString := 'ENTER_DT':@VM:'<=':EntryDtEnd:@FM
|
||||||
|
Case Otherwise$
|
||||||
|
Null
|
||||||
|
End Case
|
||||||
|
Begin Case
|
||||||
|
Case ( (RetireDtStart NE '') and (RetireDtEnd NE '') )
|
||||||
|
RetireDtStart = OConv(RetireDtStart - 1, 'D4/')
|
||||||
|
RetireDtEnd = OConv(RetireDtEnd + 1, 'D4/')
|
||||||
|
SearchString := 'RETIRE_DT':@VM:RetireDtStart:'~':RetireDtEnd
|
||||||
|
If IncludeNullRetireDt then SearchString := @VM:''
|
||||||
|
SearchString := @FM
|
||||||
|
Case (RetireDtStart NE '')
|
||||||
|
RetireDtStart = OConv(RetireDtStart, 'D4/')
|
||||||
|
SearchString := 'RETIRE_DT':@VM:'>=':RetireDtStart
|
||||||
|
If IncludeNullRetireDt then SearchString := @VM:''
|
||||||
|
SearchString := @FM
|
||||||
|
Case (RetireDtEnd NE '')
|
||||||
|
SearchString := 'RETIRE_DT':@VM:'<=':RetireDtEnd
|
||||||
|
If IncludeNullRetireDt then SearchString := @VM:''
|
||||||
|
SearchString := @FM
|
||||||
|
Case IncludeNullRetireDt
|
||||||
|
SearchString := 'RETIRE_DT':@VM:'':@FM
|
||||||
|
Case Otherwise$
|
||||||
|
Null
|
||||||
|
End Case
|
||||||
|
If CurrStatus NE '' then
|
||||||
|
Swap ',' with @VM in CurrStatus
|
||||||
|
SearchString := 'CURR_STATUS_STATIC':@VM:CurrStatus:@FM
|
||||||
|
end
|
||||||
|
Flag = ''
|
||||||
|
RIKeys = ''
|
||||||
|
Btree.Extract(SearchString, 'REACT_ITEM', DictReactItem, RIKeys, 'E', Flag)
|
||||||
|
If Flag EQ 0 then
|
||||||
|
EnterDtms = Xlate('REACT_ITEM', RIKeys, 'ENTER_DTM', 'X')
|
||||||
|
Array = RIKeys:@FM:EnterDtms
|
||||||
|
Array = SRP_Array('SortRows', Array, 'DN2', 'ARRAY', @FM, @VM)
|
||||||
|
Response = Array<1>
|
||||||
|
end else
|
||||||
|
ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract.'
|
||||||
|
end
|
||||||
end else
|
end else
|
||||||
Response = RIKeys
|
ErrorMsg = 'Error in ':Service:' service. Error opening REACT_ITEM dictionary.'
|
||||||
end
|
end
|
||||||
|
|
||||||
end else
|
end else
|
||||||
ErrorMsg = 'Error in ':Service:' service. Error opening REACT_ITEM dictionary.'
|
AllKeys = ''
|
||||||
|
RList('SELECT REACT_ITEM', TARGET_ACTIVELIST$, '', '', '')
|
||||||
|
Done = False$
|
||||||
|
Loop
|
||||||
|
Readnext KeyId else Done = True$
|
||||||
|
Until Done
|
||||||
|
AllKeys<1, -1> = KeyId
|
||||||
|
Repeat
|
||||||
|
Response = AllKeys
|
||||||
end
|
end
|
||||||
|
|
||||||
If ErrorMsg NE '' then
|
If ErrorMsg NE '' then
|
||||||
Error_Services('Add', ErrorMsg)
|
Error_Services('Add', ErrorMsg)
|
||||||
end
|
end
|
||||||
@ -155,7 +203,6 @@ Service ConvertRecordToJSON(KeyID, Record, ItemURL)
|
|||||||
|
|
||||||
Response = jsonRecord
|
Response = jsonRecord
|
||||||
|
|
||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
@ -326,11 +373,11 @@ Service GetReactItemTemplateJSON()
|
|||||||
|
|
||||||
Response = jsonRecord
|
Response = jsonRecord
|
||||||
|
|
||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
Service CreateReactItem(Record)
|
Service CreateReactItem(Record)
|
||||||
|
|
||||||
ErrMsg = ''
|
ErrMsg = ''
|
||||||
KeyID = ''
|
KeyID = ''
|
||||||
If Record NE '' then
|
If Record NE '' then
|
||||||
@ -355,6 +402,7 @@ Service CreateReactItem(Record)
|
|||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL)
|
Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL)
|
||||||
|
|
||||||
jsonRecord = ''
|
jsonRecord = ''
|
||||||
@ -407,6 +455,32 @@ Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL)
|
|||||||
Response = jsonRecord
|
Response = jsonRecord
|
||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
|
Service UpdateReactItemStatus(RINo)
|
||||||
|
|
||||||
|
If RINo NE '' then
|
||||||
|
If RowExists('REACT_ITEM', RINo) then
|
||||||
|
RIRec = Database_Services('ReadDataRow', 'REACT_ITEM', RINo)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
Update_Index('REACT_ITEM_HIST', 'RI_NO', False$, True$)
|
||||||
|
ReactItemCurrStatus = obj_React_Item('CurrStatus', RINo:@RM:RIRec)
|
||||||
|
ReactItemCurrStatusStatic = RIRec<REACT_ITEM_CURR_STATUS_STATIC$>
|
||||||
|
If ReactItemCurrStatus NE ReactItemCurrStatusStatic then
|
||||||
|
Open 'REACT_ITEM' to hTable then
|
||||||
|
WriteV ReactItemCurrStatus on hTable, RINo, REACT_ITEM_CURR_STATUS_STATIC$ else
|
||||||
|
Error_Services('Add', 'Error in ':Service:' service. Error writing CURR_STATUS_STATIC, ':ReactItemCurrStatus:', for REACT_ITEM ':RINo:'.')
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
Error_Services('Add', 'Error in ':Service:' service. Error opening REACT_ITEM table for status update.')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Internal GoSubs
|
// Internal GoSubs
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -419,6 +493,3 @@ ClearCursors:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -79,6 +79,7 @@ Service CreateReturnToFabRecord(CassId, UserId)
|
|||||||
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
||||||
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_GENERAL',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = UserId
|
Recipients<1, -1> = UserId
|
||||||
SentFrom = 'OI_ADMIN'
|
SentFrom = 'OI_ADMIN'
|
||||||
Subject = 'Return To Fab Form Created'
|
Subject = 'Return To Fab Form Created'
|
||||||
@ -475,6 +476,7 @@ Service SetBinToBin(RTFId, MHUserId)
|
|||||||
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
||||||
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_GENERAL',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = RTFOrigUser
|
Recipients<1, -1> = RTFOrigUser
|
||||||
SentFrom = 'OI_ADMIN'
|
SentFrom = 'OI_ADMIN'
|
||||||
Subject = 'Return To Fab Form Updated'
|
Subject = 'Return To Fab Form Updated'
|
||||||
@ -549,6 +551,7 @@ Service SetRTFCompleted(RTFId, CompleteUserId)
|
|||||||
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
||||||
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_GENERAL',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = RTFRecord<RETURN_TO_FAB_LOTS_REQUESTOR_USER_ID$>
|
Recipients<1, -1> = RTFRecord<RETURN_TO_FAB_LOTS_REQUESTOR_USER_ID$>
|
||||||
SentFrom = 'OI_ADMIN'
|
SentFrom = 'OI_ADMIN'
|
||||||
Subject = 'Return To Fab Form Completed'
|
Subject = 'Return To Fab Form Completed'
|
||||||
@ -623,6 +626,7 @@ Service SetEvalInfo(RTFId, EvalUserId, ResultId)
|
|||||||
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
Recipients = XLATE('NOTIFICATION','SHIPPING',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_ENG',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_MANUF',NOTIFICATION_USER_ID$,'X')
|
||||||
|
Recipients<1, -1> = XLATE('NOTIFICATION','RETURN_TO_FAB_GENERAL',NOTIFICATION_USER_ID$,'X')
|
||||||
Recipients<1, -1> = RTFRecord<RETURN_TO_FAB_LOTS_REQUESTOR_USER_ID$>
|
Recipients<1, -1> = RTFRecord<RETURN_TO_FAB_LOTS_REQUESTOR_USER_ID$>
|
||||||
SentFrom = 'OI_ADMIN'
|
SentFrom = 'OI_ADMIN'
|
||||||
Subject = 'Return To Fab Form Updated'
|
Subject = 'Return To Fab Form Updated'
|
||||||
@ -822,3 +826,4 @@ end service
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -335,6 +335,18 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
Error_Services('Add', 'Inactive employee.')
|
Error_Services('Add', 'Inactive employee.')
|
||||||
Case Otherwise$
|
Case Otherwise$
|
||||||
ScansRow<SCANS.EMPLOYEE_ID$> = {EMPLOYEE_ID}
|
ScansRow<SCANS.EMPLOYEE_ID$> = {EMPLOYEE_ID}
|
||||||
|
|
||||||
|
Username = {EMPLOYEE_ID}
|
||||||
|
|
||||||
|
Member = False$
|
||||||
|
Groups = 'LEAD':@VM:'SUPERVISOR':@VM:'ENGINEER':@VM:'ENG_TECH':@VM:'ROTR_OVERRIDE'
|
||||||
|
|
||||||
|
For each Group in Groups using @VM
|
||||||
|
Member = MemberOf(Username, Group)
|
||||||
|
Until Member EQ True$
|
||||||
|
Next Group
|
||||||
|
|
||||||
|
ScansRow<SCANS.IS_AUTHORIZED_TO_OVERRIDE_ROTR$> = Member
|
||||||
End Case
|
End Case
|
||||||
|
|
||||||
Case ScanData[1, 3] EQ '10S'
|
Case ScanData[1, 3] EQ '10S'
|
||||||
@ -520,6 +532,9 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
Database_Services('WriteDataRow', 'REACTOR', Reactor, ReactorRec, True$, False$, True$)
|
Database_Services('WriteDataRow', 'REACTOR', Reactor, ReactorRec, True$, False$, True$)
|
||||||
Database_Services('WriteDataRow', 'RDS', RDSNo, RDSRec, True$, False$, True$)
|
Database_Services('WriteDataRow', 'RDS', RDSNo, RDSRec, True$, False$, True$)
|
||||||
|
|
||||||
|
ScansRow<SCANS.OVERRIDE_REQD$> = 0
|
||||||
|
ScansRow<SCANS.OVERRIDE_TYPE$> = ''
|
||||||
|
ScansRow<SCANS.OVERRIDE_REASON$> = ''
|
||||||
ScansRow<SCANS.EMPLOYEE_ID$>= ''
|
ScansRow<SCANS.EMPLOYEE_ID$>= ''
|
||||||
Result = 'Override Performed successfully'
|
Result = 'Override Performed successfully'
|
||||||
end
|
end
|
||||||
@ -652,6 +667,7 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
If (CassetteIDs NE '') then
|
If (CassetteIDs NE '') then
|
||||||
TestWaferLotData = ScansRow<SCANS.TW_LOT_ID$>
|
TestWaferLotData = ScansRow<SCANS.TW_LOT_ID$>
|
||||||
Abort = False$
|
Abort = False$
|
||||||
|
TestWaferLotIsValid = False$
|
||||||
If TestWaferLotData NE '' then
|
If TestWaferLotData NE '' then
|
||||||
ThisTestRunType = ScansRow<SCANS.TEST_RUN_TYPE_ID$>
|
ThisTestRunType = ScansRow<SCANS.TEST_RUN_TYPE_ID$>
|
||||||
If ThisTestRunType NE '' then
|
If ThisTestRunType NE '' then
|
||||||
@ -667,6 +683,8 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
If Not(TWLotCurrOpen) then
|
If Not(TWLotCurrOpen) then
|
||||||
Abort = True$
|
Abort = True$
|
||||||
Scan_Services('AddNotAcceptableReason', 'Lot ':TWLot:' is closed and cannot be used at this time.')
|
Scan_Services('AddNotAcceptableReason', 'Lot ':TWLot:' is closed and cannot be used at this time.')
|
||||||
|
end else
|
||||||
|
TestWaferLotIsValid = True$
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
Abort = True$
|
Abort = True$
|
||||||
@ -1090,6 +1108,60 @@ Service ProcessScanData(ScanID, ScanJSON)
|
|||||||
Case Otherwise$
|
Case Otherwise$
|
||||||
// Keep error on Error_Services stack and return 400 level error.
|
// Keep error on Error_Services stack and return 400 level error.
|
||||||
End Case
|
End Case
|
||||||
|
end else
|
||||||
|
ReactorNo = Xlate('RDS', RDSNo, RDS_REACTOR$, 'X')
|
||||||
|
ReactorType = Xlate('REACTOR', ReactorNo, REACTOR_REACT_TYPE$, 'X')
|
||||||
|
If Len(ReactorType) GE 3 and ReactorType[1, 3] _EQC 'HTR' then
|
||||||
|
WO = Xlate('RDS', RDSNo, RDS_WO$, 'X')
|
||||||
|
CassNo = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X')
|
||||||
|
WoMatKey = WO:'*':CassNo
|
||||||
|
WoMatRec = Database_Services('ReadDataRow', 'WO_MAT', WoMatKey)
|
||||||
|
LastCassInWoTestWaferAckReq = WoMatRec<WO_MAT_LAST_CASSETTE_TEST_WAFER_ACK_REQ$>
|
||||||
|
LastCassInWoTestWaferAcked = WoMatRec<WO_MAT_LAST_CASSETTE_TEST_WAFER_ACKED$>
|
||||||
|
LastCassInWoTestWaferReqMsg = ''
|
||||||
|
If LastCassInWoTestWaferAcked EQ False$ or LastCassInWoTestWaferAcked EQ '' then
|
||||||
|
LastCassInWo = WO_MAT_Services('CassetteIsLastInWo', WoMatKey)
|
||||||
|
|
||||||
|
If LastCassInWo then
|
||||||
|
NextEventScheduled = False$
|
||||||
|
NextEventHasSamePsn = True$
|
||||||
|
NextEventIsBlock = False$
|
||||||
|
|
||||||
|
NextScheduledEvent = Schedule_Services('GetNextEvent', ReactorNo)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
NextEventScheduled = True$
|
||||||
|
|
||||||
|
NextEventHasSamePsn = Schedule_Services('NextEventIsSamePsn', ReactorNo)
|
||||||
|
NextEventIsBlock = Schedule_Services('NextEventIsBlock', ReactorNo)
|
||||||
|
end
|
||||||
|
|
||||||
|
If NextEventScheduled EQ False$ or NextEventHasSamePsn EQ False$ or NextEventIsBlock EQ True$ then
|
||||||
|
LastCassInWoTestWaferAckReq = True$
|
||||||
|
WoMatRec<WO_MAT_LAST_CASSETTE_TEST_WAFER_ACK_REQ$> = LastCassInWoTestWaferAckReq
|
||||||
|
TestWaferRanSinceLoad = WoMatRec<WO_MAT_LAST_CASSETTE_TEST_WAFER_RAN$> or TestWaferLotIsValid EQ True$
|
||||||
|
|
||||||
|
If TestWaferLotIsValid NE True$ and TestWaferRanSinceLoad NE True$ then
|
||||||
|
TestWaferRanSinceLoad = Rds_Services('TestWaferRanAfterLoad', RDSNo)
|
||||||
|
|
||||||
|
If TestWaferRanSinceLoad NE True$ then
|
||||||
|
LastCassInWoTestWaferReqMsg = ''
|
||||||
|
If NextEventScheduled EQ False$ or NextEventIsBlock EQ True$ then
|
||||||
|
LastCassInWoTestWaferReqMsg = 'No material scheduled. Test wafer required.'
|
||||||
|
end else If NextEventHasSamePsn EQ False$ then
|
||||||
|
LastCassInWoTestWaferReqMsg = 'Next work order is a NEW PSN number. Test wafer required.'
|
||||||
|
end
|
||||||
|
|
||||||
|
Scan_Services('AddNotAcceptableReason', LastCassInWoTestWaferReqMsg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
WoMatRec<WO_MAT_LAST_CASSETTE_TEST_WAFER_RAN$> = TestWaferRanSinceLoad
|
||||||
|
|
||||||
|
Database_Services('WriteDataRow', 'WO_MAT', WoMatKey, WoMatRec, True$, False$, False$)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
ScanMsg = 'The POST stage engineering instructions must be acknowledged before the load operation can be signed.'
|
ScanMsg = 'The POST stage engineering instructions must be acknowledged before the load operation can be signed.'
|
||||||
@ -1403,6 +1475,7 @@ Service AcceptScan(ScanID, ScanJSON)
|
|||||||
LogData<3> = Username
|
LogData<3> = Username
|
||||||
LogData<4> = CurrStage
|
LogData<4> = CurrStage
|
||||||
LogData<5> = ScanID
|
LogData<5> = ScanID
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
Case CurrStage _EQC 'VER'
|
Case CurrStage _EQC 'VER'
|
||||||
Action = 'LOAD'
|
Action = 'LOAD'
|
||||||
@ -1493,14 +1566,32 @@ Service AcceptScan(ScanID, ScanJSON)
|
|||||||
|
|
||||||
Case CurrStage _EQC 'UNLOAD'
|
Case CurrStage _EQC 'UNLOAD'
|
||||||
Action = 'UNLOAD'
|
Action = 'UNLOAD'
|
||||||
// Check if UNLOAD stage is ready to sign
|
Continue = True$
|
||||||
UnloadStageSigned = QA_Services('SignUnloadStage', RDSNo, Username, 1)
|
If TestWaferLots NE '' then
|
||||||
If UnloadStageSigned EQ True$ then
|
ToolID = ScansRow<SCANS.TOOL_ID$>
|
||||||
Result = '(':CassetteID:') Unload stage signed.'
|
Reactor = ToolID[-1, 'BR']
|
||||||
|
Username = ScansRow<SCANS.EMPLOYEE_ID$>
|
||||||
|
TestWaferLotQtys = ScansRow<SCANS.TW_LOT_QTY$>
|
||||||
|
TestRunType = ScansRow<SCANS.TEST_RUN_TYPE_ID$>
|
||||||
|
PSNo = Xlate('RDS', RDSNo, RDS_PROD_SPEC_ID$, True$, 'X')
|
||||||
|
NewTestRunId = Test_Run_Services('CreateTestRunRecord', TestRunType, 'R', Reactor, PSNo, RDSNo,Username , TestWaferLots, TestWaferLotQtys)
|
||||||
|
If Error_Services('HasError') then
|
||||||
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
|
Error_Services('Set', ErrorMessage)
|
||||||
|
Continue = False$
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
If Continue EQ True$ then
|
||||||
|
// Check if UNLOAD stage is ready to sign
|
||||||
|
UnloadStageSigned = QA_Services('SignUnloadStage', RDSNo, Username, 1)
|
||||||
|
If UnloadStageSigned EQ True$ then
|
||||||
|
Result = '(':CassetteID:') Unload stage signed.'
|
||||||
|
end
|
||||||
|
LogData<6> = Action
|
||||||
|
LogData<7> = Result
|
||||||
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
||||||
end
|
end
|
||||||
LogData<6> = Action
|
|
||||||
LogData<7> = Result
|
|
||||||
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
|
||||||
Case CurrStage _EQC 'COMP'
|
Case CurrStage _EQC 'COMP'
|
||||||
Action = 'COMP'
|
Action = 'COMP'
|
||||||
Error_Services('Set', '(':CassetteID:") Cassette has already been FQA'd.")
|
Error_Services('Set', '(':CassetteID:") Cassette has already been FQA'd.")
|
||||||
@ -1674,6 +1765,7 @@ Service ConvertMVScanToJSON(ScanID, mvScan, itemURL)
|
|||||||
SRP_JSON(objEmployee, 'SetValue', 'authorized', {EMPLOYEE_AUTHORIZED}, 'Boolean')
|
SRP_JSON(objEmployee, 'SetValue', 'authorized', {EMPLOYEE_AUTHORIZED}, 'Boolean')
|
||||||
SRP_JSON(objEmployee, 'SetValue', 'notAuthorizedReason', {EMPLOYEE_NOT_AUTHORIZED_REASON}, 'String')
|
SRP_JSON(objEmployee, 'SetValue', 'notAuthorizedReason', {EMPLOYEE_NOT_AUTHORIZED_REASON}, 'String')
|
||||||
SRP_JSON(objEmployee, 'SetValue', 'authenticated' , @Record<SCANS.AUTHENTICATED$> , 'Boolean');//JRO Change
|
SRP_JSON(objEmployee, 'SetValue', 'authenticated' , @Record<SCANS.AUTHENTICATED$> , 'Boolean');//JRO Change
|
||||||
|
SRP_JSON(objEmployee, 'SetValue', 'isAuthorizedToOverrideROTR', @Record<SCANS.IS_AUTHORIZED_TO_OVERRIDE_ROTR$>, 'Boolean')
|
||||||
SRP_JSON(objJSONScan, 'Set', 'employee', objEmployee)
|
SRP_JSON(objJSONScan, 'Set', 'employee', objEmployee)
|
||||||
SRP_JSON(objEmployee, 'Release')
|
SRP_JSON(objEmployee, 'Release')
|
||||||
|
|
||||||
@ -1787,52 +1879,6 @@ Service ConvertMVScanToJSON(ScanID, mvScan, itemURL)
|
|||||||
end else
|
end else
|
||||||
SupplUnloadInstAckReq = False$
|
SupplUnloadInstAckReq = False$
|
||||||
end
|
end
|
||||||
|
|
||||||
ReactorNo = Xlate('RDS', RDSNo, RDS_REACTOR$, 'X')
|
|
||||||
ReactorType = Xlate('REACTOR', ReactorNo, REACTOR_REACT_TYPE$, 'X')
|
|
||||||
If Len(ReactorType) GE 3 and ReactorType[1, 3] _EQC 'HTR' then
|
|
||||||
WO = Xlate('RDS', RDSNo, RDS_WO$, 'X')
|
|
||||||
CassNo = Xlate('RDS', RDSNo, 'RUN_ORDER_NUM', 'X')
|
|
||||||
WoMatKey = WO:'*':CassNo
|
|
||||||
WoMatRec = Database_Services('ReadDataRow', 'WO_MAT', WoMatKey)
|
|
||||||
LastCassInWoTestWaferAckReq = WoMatRec<WO_MAT_LAST_CASSETTE_TEST_WAFER_ACK_REQ$>
|
|
||||||
LastCassInWoTestWaferAcked = WoMatRec<WO_MAT_LAST_CASSETTE_TEST_WAFER_ACKED$>
|
|
||||||
LastCassInWoTestWaferReqMsg = ''
|
|
||||||
If LastCassInWoTestWaferAcked EQ False$ or LastCassInWoTestWaferAcked EQ '' then
|
|
||||||
LastCassInWo = WO_MAT_Services('CassetteIsLastInWo', WoMatKey)
|
|
||||||
|
|
||||||
If LastCassInWo then
|
|
||||||
NextEventScheduled = False$
|
|
||||||
NextEventHasSamePsn = True$
|
|
||||||
NextEventIsBlock = False$
|
|
||||||
|
|
||||||
NextScheduledEvent = Schedule_Services('GetNextEvent', ReactorNo)
|
|
||||||
If Error_Services('NoError') then
|
|
||||||
NextEventScheduled = True$
|
|
||||||
|
|
||||||
NextEventHasSamePsn = Schedule_Services('NextEventIsSamePsn', ReactorNo)
|
|
||||||
NextEventIsBlock = Schedule_Services('NextEventIsBlock', ReactorNo)
|
|
||||||
end
|
|
||||||
|
|
||||||
If NextEventScheduled EQ False$ or NextEventHasSamePsn EQ False$ or NextEventIsBlock EQ True$ then
|
|
||||||
LastCassInWoTestWaferAckReq = True$
|
|
||||||
WoMatRec<WO_MAT_LAST_CASSETTE_TEST_WAFER_ACK_REQ$> = LastCassInWoTestWaferAckReq
|
|
||||||
WoMatRec<WO_MAT_LAST_CASSETTE_TEST_WAFER_ACKED$> = LastCassInWoTestWaferAcked
|
|
||||||
Database_Services('WriteDataRow', 'WO_MAT', WoMatKey, WoMatRec, True$, False$, False$)
|
|
||||||
|
|
||||||
LastCassInWoTestWaferReqMsg = ''
|
|
||||||
If NextEventScheduled EQ False$ or NextEventIsBlock EQ True$ then
|
|
||||||
LastCassInWoTestWaferReqMsg = 'No material scheduled. Test wafer required.'
|
|
||||||
end else If NextEventHasSamePsn EQ False$ then
|
|
||||||
LastCassInWoTestWaferReqMsg = 'Next work order is a NEW PSN number. Test wafer required.'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
SRP_JSON(objRDS, 'SetValue', 'lastCassInWoTestWaferAckReq', LastCassInWoTestWaferAckReq, 'Boolean')
|
|
||||||
SRP_JSON(objRDS, 'SetValue', 'lastCassInWoTestWaferAcked', LastCassInWoTestWaferAcked, 'Boolean')
|
|
||||||
SRP_JSON(objRDS, 'SetValue', 'lastCassInWoTestWaferAckReqMsg', LastCassInWoTestWaferReqMsg, 'String')
|
|
||||||
end
|
|
||||||
end else
|
end else
|
||||||
SupplUnloadInstAckReq = False$
|
SupplUnloadInstAckReq = False$
|
||||||
end
|
end
|
||||||
@ -2355,3 +2401,4 @@ return
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,8 @@ Subroutine Service_Manager_Debugger_Intercept(Void)
|
|||||||
Metadata :
|
Metadata :
|
||||||
|
|
||||||
History : (Date, Initials, Notes)
|
History : (Date, Initials, Notes)
|
||||||
07/25/23 djs Original programmer.
|
07/25/23 djs Original programmer.
|
||||||
|
06/04/25 djs Added LSL note creation (and email forwarding) to notify OI_ADMIN users when invoked.
|
||||||
|
|
||||||
***********************************************************************************************************************/
|
***********************************************************************************************************************/
|
||||||
|
|
||||||
@ -24,24 +25,58 @@ Subroutine Service_Manager_Debugger_Intercept(Void)
|
|||||||
|
|
||||||
$insert APP_INSERTS
|
$insert APP_INSERTS
|
||||||
$insert RTI_DEBUG_COMMON
|
$insert RTI_DEBUG_COMMON
|
||||||
|
$insert ENVIRON_CONSTANTS
|
||||||
|
|
||||||
Declare function Environment_Services, Logging_Services
|
Declare function Environment_Services, Logging_Services, Environment_Services, GetCommandLine, Datetime
|
||||||
Declare subroutine Logging_Services
|
Declare subroutine Logging_Services, obj_Notes, Set_Env
|
||||||
|
|
||||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\ServiceManager'
|
Main:
|
||||||
LogDate = Oconv(Date(), 'D4/')
|
|
||||||
LogTime = Oconv(Time(), 'MTS')
|
// Log event in .\LogFiles\ServiceManager\<Date> OEngine Log.csv
|
||||||
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' OEngine Log.csv'
|
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\ServiceManager'
|
||||||
Headers = 'Stored Proc Status' : @FM : 'Stored Proc Status Code' : @FM : 'Current Program' : @FM : 'Call Depth' : @FM : 'Line No' : @FM : 'Call Stack'
|
LogDate = Oconv(Date(), 'D4/')
|
||||||
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', Headers, '', False$, False$)
|
LogTime = Oconv(Time(), 'MTS')
|
||||||
LogData = ''
|
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' OEngine Log.csv'
|
||||||
LogData<1> = SPStatus@
|
Headers = 'Stored Proc Status' : @FM : 'Stored Proc Status Code' : @FM : 'Current Program' : @FM
|
||||||
LogData<2> = SPStatCode@
|
Headers := 'Call Depth' : @FM : 'Line No' : @FM : 'Call Stack'
|
||||||
LogData<3> = Curr_Program@
|
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', Headers, '', False$, False$)
|
||||||
LogData<4> = CallDepth@
|
LogData = ''
|
||||||
LogData<5> = LineNo@
|
LogData<1> = spStatus@
|
||||||
LogData<6> = CallStack@
|
LogData<2> = spStatCode@
|
||||||
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, '', '', '')
|
LogData<3> = curr_Program@
|
||||||
|
LogData<4> = callDepth@
|
||||||
|
LogData<5> = lineNo@
|
||||||
|
LogData<6> = callStack@
|
||||||
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, '', '', '')
|
||||||
|
|
||||||
|
// Send an LSL message to FI admins to alert them. This is forward to their email address if configured in
|
||||||
|
// their LSL_USERS record.
|
||||||
|
CmdLine = GetCommandLine()
|
||||||
|
EngIndex = Index(CmdLine, '/S=', 1)
|
||||||
|
EngNo = CmdLine[EngIndex + 3, 'F ']
|
||||||
|
Server = Environment_Services('GetServer')
|
||||||
|
Recipients = ''
|
||||||
|
SentFrom = 'SYSTEM'
|
||||||
|
Subject = 'Service Manager Debugger Intercept Invoked'
|
||||||
|
Message = OConv(Datetime(), 'DT2/^H')
|
||||||
|
Message<2> = 'RevEngineHost (OEngine) ':EngNo:' encountered a runtime error on server ':Server
|
||||||
|
Message<3> = 'Stored Procedure Status: ':spStatus@
|
||||||
|
StatCodes = spStatCode@
|
||||||
|
Swap Char(0) with ',' in StatCodes
|
||||||
|
Swap Char(23) with '' in StatCodes
|
||||||
|
Message<4> = 'Stored Procedure Status Code: ':StatCodes
|
||||||
|
Message<5> = 'Current Program: ':curr_Program@
|
||||||
|
Message<6> = 'Call Depth: ':callDepth@
|
||||||
|
Message<7> = 'Line No: ':lineNo@
|
||||||
|
Message<8> = 'Call Stack: ':\0D0A\:callStack@
|
||||||
|
Swap @FM with \0D0A\ in Message
|
||||||
|
Swap @VM with ',' in Message
|
||||||
|
AttachWindow = ''
|
||||||
|
AttachKey = ''
|
||||||
|
SendToGroup = 'OI_SYSADMIN'
|
||||||
|
|
||||||
|
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
|
||||||
|
obj_Notes('Create',Parms)
|
||||||
|
|
||||||
Return
|
Return
|
||||||
|
|
||||||
|
@ -27,19 +27,29 @@ Function Service_Services(@Service, @Params)
|
|||||||
|
|
||||||
#pragma precomp SRP_PreCompiler
|
#pragma precomp SRP_PreCompiler
|
||||||
|
|
||||||
$insert LOGICAL
|
$insert APP_INSERTS
|
||||||
$insert SERVICE_SETUP
|
$insert SERVICE_SETUP
|
||||||
$insert SERVICES_EQUATES
|
$insert SERVICES_EQUATES
|
||||||
$insert RLIST_EQUATES
|
$insert RLIST_EQUATES
|
||||||
$insert SQL_REQUESTS_EQUATES
|
$insert SQL_REQUESTS_EQUATES
|
||||||
$Insert PROC_QUEUE_EQUATES
|
$Insert PROC_QUEUE_EQUATES
|
||||||
|
|
||||||
|
Equ Comma$ to ','
|
||||||
|
|
||||||
Common /ServiceServices/ Unused1@, Unused2@, Unused3@, Unused4@, Unused5@, Unused6@, Unused7@, Unused8@, Unused9@, Unused10@
|
Common /ServiceServices/ Unused1@, Unused2@, Unused3@, Unused4@, Unused5@, Unused6@, Unused7@, Unused8@, Unused9@, Unused10@
|
||||||
|
|
||||||
Declare function Service_Services, Memory_Services, SRP_List, SRP_FastArray, SRP_Array, Database_Services, Datetime
|
Declare function Service_Services, Memory_Services, SRP_List, SRP_FastArray, SRP_Array, Database_Services, Datetime
|
||||||
Declare Function GetTickCount, SRP_Decode, RTI_CREATEGUID
|
Declare function GetTickCount, SRP_Decode, RTI_CreateGuid, UCase, Environment_services, Logging_Services
|
||||||
Declare subroutine Service_Services, Memory_Services, SRP_List, SRP_FastArray, RList, Set_Status, Database_Services
|
Declare subroutine Service_Services, Memory_Services, SRP_List, SRP_FastArray, RList, Set_Status, Database_Services
|
||||||
Declare Subroutine Yield, WinYield, Sleepery, Btree.Extract
|
Declare Subroutine Yield, WinYield, Sleepery, Btree.Extract, Logging_Services, obj_Notes
|
||||||
|
|
||||||
|
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\ProcQueue'
|
||||||
|
LogDate = Oconv(Date(), 'D4/')
|
||||||
|
LogTime = Oconv(Time(), 'MTS')
|
||||||
|
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Procedure Queue Log.csv'
|
||||||
|
Headers = 'Logging DTM' : @FM : 'Machine' : @FM : 'RequestKeyId' : @FM : 'Procedure' : @FM : 'Params' : @FM : 'Result' : @FM : 'Error Message'
|
||||||
|
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
|
||||||
|
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
|
||||||
|
|
||||||
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.')
|
||||||
@ -165,18 +175,21 @@ Service ProcessProcedureQueue()
|
|||||||
ReadNext RequestKeyID else EOF = True$
|
ReadNext RequestKeyID else EOF = True$
|
||||||
Until EOF or Done
|
Until EOF or Done
|
||||||
Lock hProcQueue, RequestKeyID then
|
Lock hProcQueue, RequestKeyID then
|
||||||
|
Server = Environment_Services('GetServer')
|
||||||
Done = True$
|
Done = True$
|
||||||
Database_Services('GetKeyIDLock', 'PROC_QUEUE', RequestKeyId)
|
Database_Services('GetKeyIDLock', 'PROC_QUEUE', RequestKeyId)
|
||||||
RequestRow = Database_Services('ReadDataRow', 'PROC_QUEUE', RequestKeyID)
|
RequestRow = Database_Services('ReadDataRow', 'PROC_QUEUE', RequestKeyID)
|
||||||
If RequestRow NE '' then
|
If RequestRow NE '' then
|
||||||
Procedure = RequestRow<PROC_QUEUE.PROC_NAME$>
|
Procedure = RequestRow<PROC_QUEUE.PROC_NAME$>
|
||||||
|
Procedure = UCase(Procedure)
|
||||||
Params = RequestRow<PROC_QUEUE.PARAMS$>
|
Params = RequestRow<PROC_QUEUE.PARAMS$>
|
||||||
If Procedure NE '' then
|
If Procedure NE '' then
|
||||||
Dim ProcParams(11)
|
Dim ProcParams(12)
|
||||||
For each Param in Params using @VM setting pPos
|
For each Param in Params using @VM setting pPos
|
||||||
ProcParams(pPos) = Param
|
ProcParams(pPos) = Param
|
||||||
Next Param
|
Next Param
|
||||||
NumArguments = DCount(Params, @VM)
|
NumArguments = DCount(Params, @VM)
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
Case NumArguments EQ 0 ; Call @Procedure()
|
Case NumArguments EQ 0 ; Call @Procedure()
|
||||||
Case NumArguments EQ 1 ; Call @Procedure(ProcParams(1))
|
Case NumArguments EQ 1 ; Call @Procedure(ProcParams(1))
|
||||||
@ -194,17 +207,40 @@ Service ProcessProcedureQueue()
|
|||||||
Error_Services('Add', 'Error in ':Service:' service. More than 11 arguments are not currently supported.')
|
Error_Services('Add', 'Error in ':Service:' service. More than 11 arguments are not currently supported.')
|
||||||
End Case
|
End Case
|
||||||
end
|
end
|
||||||
If Error_Services('NoError') then
|
|
||||||
Database_Services('DeleteDataRow', 'PROC_QUEUE', RequestKeyId, True$, False$) ; // This call will release the lock
|
Swap @VM with ',' in Params
|
||||||
|
LogData = LoggingDTM
|
||||||
|
LogData<2> = Server
|
||||||
|
LogData<3> = RequestKeyId
|
||||||
|
LogData<4> = Procedure
|
||||||
|
LogData<5> = Params
|
||||||
|
ErrCode = ''
|
||||||
|
If ( Get_Status(ErrCode) or Error_Services('HasError') ) then
|
||||||
|
ErrorMessage = Error_Services('GetMessage')
|
||||||
|
Recipients = ''
|
||||||
|
SentFrom = 'SYSTEM'
|
||||||
|
Subject = 'Background Procedure Queue Error'
|
||||||
|
Message = OConv(Datetime(), 'DT2/^H')
|
||||||
|
Message<2> = 'Error on server ':Server
|
||||||
|
Message<3> = 'Stored Procedure: ':Procedure
|
||||||
|
StatCodes = 'Parameters: ':Params
|
||||||
|
Message<4> = 'Error_Services error message: ':ErrorMessage
|
||||||
|
Message<5> = 'Get_Status error code: ':ErrCode
|
||||||
|
Swap @FM with \0D0A\ in Message
|
||||||
|
AttachWindow = ''
|
||||||
|
AttachKey = ''
|
||||||
|
SendToGroup = 'OI_SYSADMIN'
|
||||||
|
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
|
||||||
|
obj_Notes('Create',Parms)
|
||||||
|
LogData<6> = 'Failed'
|
||||||
|
LogData<7> = 'Error_Services error message: ':ErrorMessage:' Get_Status error code: ':ErrCode
|
||||||
end else
|
end else
|
||||||
RequestRow<PROC_QUEUE.LAST_ATTEMPT_DTM$> = DateTime()
|
LogData<6> = 'Success'
|
||||||
RequestRow<PROC_QUEUE.ERROR$> = Error_Services('GetMessage')
|
|
||||||
Database_Services('WriteDataRow', 'PROC_QUEUE', RequestKeyID, RequestRow, True$, False$, False$) ; // This call will release the lock
|
|
||||||
end
|
end
|
||||||
end else
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
||||||
// Empty request, so delete it from the queue
|
|
||||||
Database_Services('DeleteDataRow', 'PROC_QUEUE', RequestKeyId, True$, False$) ; // This call will release the lock
|
|
||||||
end
|
end
|
||||||
|
Database_Services('DeleteDataRow', 'PROC_QUEUE', RequestKeyId, True$, False$) ; // This call should release the lock
|
||||||
|
Unlock hProcQueue, RequestKeyID else Null
|
||||||
end
|
end
|
||||||
Repeat
|
Repeat
|
||||||
end
|
end
|
||||||
@ -258,4 +294,3 @@ return
|
|||||||
/// Internal GoSubs
|
/// Internal GoSubs
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
@ -1231,19 +1231,23 @@ Service SignVoidNonEpp(WOMatKey, Username)
|
|||||||
Service_Services('PostProcedure', 'RDS_SERVICES', 'DetachRDSFromWO':@vm:RDSNo)
|
Service_Services('PostProcedure', 'RDS_SERVICES', 'DetachRDSFromWO':@vm:RDSNo)
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
LotEventParams = ''
|
LotEventParams = ''
|
||||||
LotEventParams<1,1> = 'CreateLotEvent'
|
LotEventParams<1,1> = 'CreateLotEvent' ; //Service Module
|
||||||
LotEventParams<1,4> = DateTime()
|
LotEventParams<1,2> = ''; //Legacy Lot Id, set below
|
||||||
LotEventParams<1,5> = 'VOID'
|
LotEventParams<1,3> = DateTime(); //Datetime
|
||||||
LotEventParams<1,6> = 'Lot voided by ' : Username
|
LotEventParams<1,4> = 'VOID'; //Event Type
|
||||||
LotEventParams<1,11> = Username
|
LotEventParams<1,5> = 'Lot voided by ' : Username; //Event Note
|
||||||
|
LotEventParams<1,6> = ''; //Equipment id
|
||||||
|
LotEventParams<1,7> = Username ;//User Id
|
||||||
|
LotEventParams<1,8> = True$; //IsLegacyLotId
|
||||||
|
LotEventParams<1,9> = ''; //Legacy Lot Type, set below
|
||||||
If RDSNo NE '' then
|
If RDSNo NE '' then
|
||||||
LotEventParams<1,2> = RDSNo
|
LotEventParams<1,2> = RDSNo
|
||||||
LotEventParams<1,3> = 'RDS'
|
LotEventParams<1,9> = 'RDS'; //Legacy Lot Type
|
||||||
Service_Services('PostProcedure', 'LOT_SERVICES', LotEventParams)
|
Service_Services('PostProcedure', 'LOT_EVENT_SERVICES', LotEventParams)
|
||||||
end else
|
end else
|
||||||
LotEventParams<1,2> = WoMatKey
|
LotEventParams<1,2> = WoMatKey
|
||||||
LotEventParams<1,3> = 'WO_MAT'
|
LotEventParams<1,9> = 'WO_MAT'
|
||||||
Service_Services('PostProcedure', 'LOT_SERVICES', LotEventParams)
|
Service_Services('PostProcedure', 'LOT_EVENT_SERVICES', LotEventParams)
|
||||||
end
|
end
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
//Add inventory transaction
|
//Add inventory transaction
|
||||||
@ -1311,13 +1315,15 @@ Service SignVoidWMI(WMInKey, Username)
|
|||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
LotEventParams = ''
|
LotEventParams = ''
|
||||||
LotEventParams<1,1> = 'CreateLotEvent'
|
LotEventParams<1,1> = 'CreateLotEvent'
|
||||||
LotEventParams<1,4> = DateTime()
|
|
||||||
LotEventParams<1,5> = 'VOID'
|
|
||||||
LotEventParams<1,6> = 'Lot voided by ' : Username
|
|
||||||
LotEventParams<1,11> = Username
|
|
||||||
LotEventParams<1,2> = WMInKey
|
LotEventParams<1,2> = WMInKey
|
||||||
LotEventParams<1,3> = 'WM_IN'
|
LotEventParams<1,3> = DateTime()
|
||||||
Service_Services('PostProcedure', 'LOT_SERVICES', LotEventParams)
|
LotEventParams<1,4> = 'VOID'
|
||||||
|
LotEventParams<1,5> = 'Lot voided by ' : Username
|
||||||
|
LotEventParams<1,6> = ''
|
||||||
|
LotEventParams<1,7> = Username
|
||||||
|
LotEventParams<1,8> = True$
|
||||||
|
LotEventParams<1,9> = 'WM_IN'
|
||||||
|
Service_Services('PostProcedure', 'LOT_EVENT_SERVICES', LotEventParams)
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
//Check if WMO is also voided. If it is, remove it from the WO_MAT_KEY field in WO_LOG, and void the WO_MAT record
|
//Check if WMO is also voided. If it is, remove it from the WO_MAT_KEY field in WO_LOG, and void the WO_MAT record
|
||||||
WMOKey = WMInKey; //the paired WMO key is the same as the WMIKey
|
WMOKey = WMInKey; //the paired WMO key is the same as the WMIKey
|
||||||
@ -1386,13 +1392,15 @@ Service SignVoidWMO(WMOutKey, Username)
|
|||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
LotEventParams = ''
|
LotEventParams = ''
|
||||||
LotEventParams<1,1> = 'CreateLotEvent'
|
LotEventParams<1,1> = 'CreateLotEvent'
|
||||||
LotEventParams<1,4> = DateTime()
|
|
||||||
LotEventParams<1,5> = 'VOID'
|
|
||||||
LotEventParams<1,6> = 'Lot voided by ' : Username
|
|
||||||
LotEventParams<1,11> = Username
|
|
||||||
LotEventParams<1,2> = WMOutKey
|
LotEventParams<1,2> = WMOutKey
|
||||||
LotEventParams<1,3> = 'WM_OUT'
|
LotEventParams<1,3> = DateTime()
|
||||||
Service_Services('PostProcedure', 'LOT_SERVICES', LotEventParams)
|
LotEventParams<1,4> = 'VOID'
|
||||||
|
LotEventParams<1,5> = 'Lot voided by ' : Username
|
||||||
|
LotEventParams<1,6> = ''
|
||||||
|
LotEventParams<1,7> = Username
|
||||||
|
LotEventParams<1,8> = True$
|
||||||
|
LotEventParams<1,9> = 'WM_OUT'
|
||||||
|
Service_Services('PostProcedure', 'LOT_EVENT_SERVICES', LotEventParams)
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
//Check if WMI is also voided. If it is, remove it from the WO_MAT_KEY field in WO_LOG, and void the WO_MAT record
|
//Check if WMI is also voided. If it is, remove it from the WO_MAT_KEY field in WO_LOG, and void the WO_MAT record
|
||||||
WMIKey = WMOutKey; //the paired WMO key is the same as the WMIKey
|
WMIKey = WMOutKey; //the paired WMO key is the same as the WMIKey
|
||||||
@ -1558,3 +1566,4 @@ ClearCursors:
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -181,14 +181,7 @@ DoRead:
|
|||||||
|
|
||||||
Reactor = get_property( @window, '@Reactor' )
|
Reactor = get_property( @window, '@Reactor' )
|
||||||
LoadedRDS = Xlate('REACT_STATUS', Reactor, 'LOAD_RDS', 'X')
|
LoadedRDS = Xlate('REACT_STATUS', Reactor, 'LOAD_RDS', 'X')
|
||||||
LoadedRuns = ''
|
LoadedRuns = Xlate('RDS', LoadedRDS, 'RUN_ORDER_NUM', 'X')
|
||||||
If LoadedRDS NE '' then
|
|
||||||
For each RDS in LoadedRDS using @VM setting vPos
|
|
||||||
Locate RDS in AllRDS using @VM setting rPos then
|
|
||||||
LoadedRuns<0, -1> = rPos
|
|
||||||
end
|
|
||||||
Next RDS
|
|
||||||
end
|
|
||||||
|
|
||||||
LoadedData = ''
|
LoadedData = ''
|
||||||
For each RDSNo in LoadedRDS using @VM setting vPos
|
For each RDSNo in LoadedRDS using @VM setting vPos
|
||||||
@ -507,5 +500,3 @@ REACT_MODE:
|
|||||||
END
|
END
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -573,15 +573,16 @@ return
|
|||||||
|
|
||||||
|
|
||||||
WRITE_RECORD:
|
WRITE_RECORD:
|
||||||
|
|
||||||
WONo = Field(Name, '*', 1)
|
WONo = Field(Name, '*', 1)
|
||||||
CassNo = Field(Name, '*', 2)
|
CassNo = Field(Name, '*', 2)
|
||||||
WOMatKeyID = Name
|
WOMatKeyID = Name
|
||||||
|
|
||||||
If {REACTOR_TYPE} NE 'EPP' then
|
If {REACTOR_TYPE} NE 'EPP' then
|
||||||
If {MAKEUP_BOX} then
|
If {MAKEUP_BOX} then
|
||||||
CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKeyID)
|
CurrWaferCount = obj_WO_Mat('CurrWaferCnt', WOMatKeyID)
|
||||||
If CurrWaferCount GT 0 then
|
CurrStatus = {CURR_STATUS}
|
||||||
|
If ( (CurrWaferCount GT 0) and (CurrStatus NE 'VOID') ) then
|
||||||
// Populate MAKEUP_WAFERS table
|
// Populate MAKEUP_WAFERS table
|
||||||
// Add/update cassette data to the MAKEUP_WAFERS table
|
// Add/update cassette data to the MAKEUP_WAFERS table
|
||||||
If RowExists('MAKEUP_WAFERS', WOMatKeyID) then
|
If RowExists('MAKEUP_WAFERS', WOMatKeyID) then
|
||||||
@ -600,7 +601,7 @@ WRITE_RECORD:
|
|||||||
MUWfrRec<MAKEUP_WAFERS.PROD_VER_NO$> = {PROD_VER_NO}
|
MUWfrRec<MAKEUP_WAFERS.PROD_VER_NO$> = {PROD_VER_NO}
|
||||||
MUWfrRec<MAKEUP_WAFERS.CUST_PART_NO$> = {CUST_PART_NO}
|
MUWfrRec<MAKEUP_WAFERS.CUST_PART_NO$> = {CUST_PART_NO}
|
||||||
MUWfrRec<MAKEUP_WAFERS.REACT_TYPE$> = {REACTOR_TYPE}
|
MUWfrRec<MAKEUP_WAFERS.REACT_TYPE$> = {REACTOR_TYPE}
|
||||||
MUWfrRec<MAKEUP_WAFERS.CURR_STATUS_STATIC$> = {CURR_STATUS}
|
MUWfrRec<MAKEUP_WAFERS.CURR_STATUS_STATIC$> = CurrStatus
|
||||||
MUWfrRec<MAKEUP_WAFERS.WFR_QTY$> = CurrWaferCount
|
MUWfrRec<MAKEUP_WAFERS.WFR_QTY$> = CurrWaferCount
|
||||||
DateOut = Xlate('RDS', {RDS_NO}, 'DATE_OUT', 'X')
|
DateOut = Xlate('RDS', {RDS_NO}, 'DATE_OUT', 'X')
|
||||||
TimeOut = Xlate('RDS', {RDS_NO}, 'TIME_OUT', 'X') / 86400
|
TimeOut = Xlate('RDS', {RDS_NO}, 'TIME_OUT', 'X') / 86400
|
||||||
|
@ -179,3 +179,4 @@ Equ PROD_SPEC_ANKO_MET_POCKETS$ To 166
|
|||||||
Equ PROD_SPEC_ANKO_FULL_CHAR_POCKET$ To 167
|
Equ PROD_SPEC_ANKO_FULL_CHAR_POCKET$ To 167
|
||||||
Equ PROD_SPEC_ANKO_WAFER_SELECTION$ To 168
|
Equ PROD_SPEC_ANKO_WAFER_SELECTION$ To 168
|
||||||
Equ PROD_SPEC_LOCKED_BY$ To 169
|
Equ PROD_SPEC_LOCKED_BY$ To 169
|
||||||
|
Equ PROD_SPEC_SHOW_SPEC_INST_ON_MU_ADD$ To 170
|
||||||
|
25
LSL2/STPROCINS/PRS_STAGE_DEFECT_DEFAULTS_EQUATES.txt
Normal file
25
LSL2/STPROCINS/PRS_STAGE_DEFECT_DEFAULTS_EQUATES.txt
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
compile insert PRS_STAGE_DEFECT_DEFAULTS_EQUATES
|
||||||
|
/*----------------------------------------
|
||||||
|
Author : Table Create Insert Routine
|
||||||
|
Written : 08/05/2025
|
||||||
|
Description : Insert for Table PRS_STAGE_DEFECT_DEFAULTS
|
||||||
|
----------------------------------------*/
|
||||||
|
#ifndef __PRS_STAGE_DEFECT_DEFAULTS_EQUATES__
|
||||||
|
#define __PRS_STAGE_DEFECT_DEFAULTS_EQUATES__
|
||||||
|
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_FRONT_LPD$ to 1
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_FRONT_SCRATCHES$ to 2
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_FRONT_SCRATCH_LEN$ to 3
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_FRONT_PITS$ to 4
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_FRONT_MOUNDS$ to 5
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_FRONT_STACK_FAULTS$ to 6
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_FRONT_SPIKES$ to 7
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_FRONT_SPOTS$ to 8
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_FRONT_FOV$ to 9
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_FRONT_BL_DEFECTS$ to 10
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_BACK_SCRATCHES$ to 11
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_BACK_SCRATCH_LEN$ to 12
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_BACK_NODULES$ to 13
|
||||||
|
equ PRS_STAGE_DEFECT_DEFAULTS_BACK_SPIKES$ to 14
|
||||||
|
|
||||||
|
#endif
|
@ -83,4 +83,5 @@ Equ REACTOR_HGCV_CHECKLIST_ACTIVE$ To 71
|
|||||||
Equ REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$ To 72
|
Equ REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$ To 72
|
||||||
Equ REACTOR_ABORT_ALARM_CHECKLIST_ACTIVE$ To 73
|
Equ REACTOR_ABORT_ALARM_CHECKLIST_ACTIVE$ To 73
|
||||||
Equ REACTOR_ABORT_ALARM_COMPLETE$ To 74
|
Equ REACTOR_ABORT_ALARM_COMPLETE$ To 74
|
||||||
|
Equ REACTOR_EXHAUST_CHAMBER_THK$ To 75
|
||||||
|
|
||||||
|
@ -6,25 +6,27 @@ compile insert REACT_ITEM_EQUATES
|
|||||||
----------------------------------------*/
|
----------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
Equ REACT_ITEM_RI_NO$ To 0
|
Equ REACT_ITEM_RI_NO$ To 0
|
||||||
Equ REACT_ITEM_DESC$ To 1
|
Equ REACT_ITEM_DESC$ To 1
|
||||||
Equ REACT_ITEM_ENTER_BY$ To 2
|
Equ REACT_ITEM_ENTER_BY$ To 2
|
||||||
Equ REACT_ITEM_ENTER_DTM$ To 3
|
Equ REACT_ITEM_ENTER_DTM$ To 3
|
||||||
Equ REACT_ITEM_RETIRE_BY$ To 4
|
Equ REACT_ITEM_RETIRE_BY$ To 4
|
||||||
Equ REACT_ITEM_RETIRE_DT$ To 5
|
Equ REACT_ITEM_RETIRE_DT$ To 5
|
||||||
Equ REACT_ITEM_PART_TYPE$ To 6
|
Equ REACT_ITEM_PART_TYPE$ To 6
|
||||||
Equ REACT_ITEM_MFR_CD$ To 7
|
Equ REACT_ITEM_MFR_CD$ To 7
|
||||||
Equ REACT_ITEM_MFR_PART_NO$ To 8
|
Equ REACT_ITEM_MFR_PART_NO$ To 8
|
||||||
Equ REACT_ITEM_MFR_PART_NO_REV$ To 9
|
Equ REACT_ITEM_MFR_PART_NO_REV$ To 9
|
||||||
Equ REACT_ITEM_SERIAL_NO$ To 10
|
Equ REACT_ITEM_SERIAL_NO$ To 10
|
||||||
Equ REACT_ITEM_RI_TYPE$ To 11
|
Equ REACT_ITEM_RI_TYPE$ To 11
|
||||||
Equ REACT_ITEM_SUSC_SIZE$ To 12
|
Equ REACT_ITEM_SUSC_SIZE$ To 12
|
||||||
Equ REACT_ITEM_PKT_QTY$ To 13
|
Equ REACT_ITEM_PKT_QTY$ To 13
|
||||||
Equ REACT_ITEM_PKT_SIZE$ To 14
|
Equ REACT_ITEM_PKT_SIZE$ To 14
|
||||||
Equ REACT_ITEM_NOTES$ To 15
|
Equ REACT_ITEM_NOTES$ To 15
|
||||||
Equ REACT_ITEM_PPLUS_RDS_NO$ To 16
|
Equ REACT_ITEM_PPLUS_RDS_NO$ To 16
|
||||||
Equ REACT_ITEM_SERIAL$ To 17
|
Equ REACT_ITEM_SERIAL$ To 17
|
||||||
Equ REACT_ITEM_TUBE_GRADE$ To 18
|
Equ REACT_ITEM_TUBE_GRADE$ To 18
|
||||||
Equ REACT_ITEM_TUBE_PRESS$ To 19
|
Equ REACT_ITEM_TUBE_PRESS$ To 19
|
||||||
Equ REACT_ITEM_TUBE_STYLE$ To 20
|
Equ REACT_ITEM_TUBE_STYLE$ To 20
|
||||||
Equ REACT_ITEM_NEW_OR_REFURB$ To 21
|
Equ REACT_ITEM_NEW_OR_REFURB$ To 21
|
||||||
|
Equ REACT_ITEM_CURR_STATUS_STATIC$ To 22
|
||||||
|
|
||||||
|
@ -40,6 +40,9 @@ compile insert SCANS_EQUATES
|
|||||||
equ SCANS.TW_LOT_QTY$ to 31
|
equ SCANS.TW_LOT_QTY$ to 31
|
||||||
equ SCANS.TEST_RUN_TYPE_ID$ to 32
|
equ SCANS.TEST_RUN_TYPE_ID$ to 32
|
||||||
equ SCANS.TEST_RUN_TYPE_NAME$ to 33
|
equ SCANS.TEST_RUN_TYPE_NAME$ to 33
|
||||||
|
equ SCANS.IS_AUTHORIZED_TO_OVERRIDE_ROTR$ to 34
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -156,4 +156,5 @@ Equ WO_MAT_LAST_CASSETTE_TEST_WAFER_ACK_REQ$ To 147
|
|||||||
Equ WO_MAT_LAST_CASSETTE_TEST_WAFER_ACKED$ To 148
|
Equ WO_MAT_LAST_CASSETTE_TEST_WAFER_ACKED$ To 148
|
||||||
Equ WO_MAT_HOLD_STAGE$ To 149
|
Equ WO_MAT_HOLD_STAGE$ To 149
|
||||||
Equ WO_MAT_HOLD_INTERRUPTED$ To 150
|
Equ WO_MAT_HOLD_INTERRUPTED$ To 150
|
||||||
|
Equ WO_MAT_LAST_CASSETTE_TEST_WAFER_RAN$ To 151
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user