added prod spec special instruction message for WMO makeup additions if flag set in PSN

added checkbox on prod spec form to set or unset show special instruction on backfill operation
This commit is contained in:
Infineon\StieberD 2025-05-23 16:49:11 -07:00
parent 97f3c3fce2
commit 5e917e65ac
6 changed files with 9492 additions and 8002 deletions

View 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

File diff suppressed because it is too large Load Diff

View File

@ -1099,7 +1099,7 @@ SignSupVer:
************************************************************************
WMOKey = Get_Property(@WINDOW,'ID')
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
Yes = Dialog_Box( 'RDS_VER', @WINDOW, VerInst )
IF NOT(Yes) THEN
@ -1711,129 +1711,142 @@ AddMakeup:
END
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
Case Response EQ True$
// User requested to convert the current cassette into a makeup box.
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
If Error_Services('NoError') then
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 = ''
If Continue then
Response = Dialog_Box('NDW_MAKEUP_WAFERS', @Window, WOMatKey)
Begin Case
Case Response EQ True$
// 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
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
If Error_Services('NoError') then
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.
// 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
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
CheckValue = 1
* Signature block added 10/6/2010 JCH *
Valid = Dialog_Box('NDW_VERIFY_USER', @Window, @User4)
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)
IF NOT(Valid) THEN RETURN ;* User is not worthy or can't type
Set_Property(@WINDOW:'.MAKEUP_BOX','DEFPROP',CheckValue) ;* Make this the makeup box
Send_Event(@WINDOW,'WRITE') ;* Write the record
Send_Event(@WINDOW,'WRITE')
WMOKey = WONo:'*':ProcStepNo:'*':CassNo
obj_AppWindow('LoadFormKeys',@WINDOW:@RM:WMOKey) ;* Reread the updated record
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 else
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
* 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
RETURN
End Case
end
end else
// 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.'

View 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

View File

@ -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_WAFER_SELECTION$ To 168
Equ PROD_SPEC_LOCKED_BY$ To 169
Equ PROD_SPEC_SHOW_SPEC_INST_ON_MU_ADD$ To 170