refactored codebase to not rely on WO_LOG calculated column indexes

This commit is contained in:
Infineon\StieberD
2025-07-11 13:27:14 -07:00
parent b53e805929
commit 2a6c0afddf
23 changed files with 2697 additions and 39059 deletions

View File

@ -916,8 +916,7 @@ OpenWONos:
WOKeys = ''
* SelectStatement = 'CURR_STATUS':@VM:'RX':@VM:'INPR':@VM:'RTS':@VM:'SHIP':@VM:'HOLD':@FM ;* Inactivated by dkk 4/3/14
SelectStatement = 'WO_STATUS':@VM:'OPEN':@FM ;* Added by dkk 4/3/14
SelectStatement = 'CLOSE_DATE':@VM:'':@FM ;* Added by dkk 4/3/14
Btree.Extract(SelectStatement,'WO_LOG',DictWOLogTable,WOKeys,'','')
@ -957,13 +956,12 @@ ShipWONos:
IF Get_Status(errCode) THEN RETURN
SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS = "INPR" '
SelectStatement := ' OR WITH CURR_STATUS = "RTS"'
SelectStatement := ' OR WITH CURR_STATUS = "SHIP"'
SelectStatement := ' OR WITH CURR_STATUS = "HOLD"'
SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS_STATIC = "INPR" '
SelectStatement := ' OR WITH CURR_STATUS_STATIC = "RTS"'
SelectStatement := ' OR WITH CURR_STATUS_STATIC = "SHIP"'
SelectStatement := ' OR WITH CURR_STATUS_STATIC = "HOLD"'
SelectStatement := ' BY COMMIT_DATE'
RList(SelectStatement, TARGET_ACTIVELIST$, '','','')
IF Get_Status(errCode) THEN
@ -1033,13 +1031,8 @@ ReleaseCassettes:
IF WONo = '' THEN ErrorMsg = 'Null parameter WONo passed to routine (':Method:').'
IF ErrorMsg NE '' THEN RETURN
NewForm = Xlate('APP_INFO', 'NEW_WO_FORM', '', 'X')
If NewForm then
Form = 'NDW_WO_LOG'
end else
Form = 'WO_LOG2'
end
OrgColor = Set_Property(Form:'.STATUSLINE_FIX','BACKCOLOR',YELLOW$) ;* //////// Messaging
Form = 'NDW_WO_LOG'
OrgColor = Set_Property(Form:'.STATUSLINE_FIX','BACKCOLOR',YELLOW$)
TableVar = ''
OtParms = 'WO_LOG':@RM:WONo:@RM:TableVar
@ -1067,19 +1060,14 @@ ReleaseCassettes:
IF ErrorMsg NE '' THEN
obj_Tables('UnlockRec',OtParms)
RETURN
END
* * * * * * * * * * * * * * * * * * * * * * * * * *
IF ProdVerNo NE '' THEN
ReactorType = XLATE('PROD_VER',ProdVerNo,PROD_VER_REACT_TYPE$,'X')
IF ReactorType NE 'EPP' THEN
IF WORec<WO_LOG_WO_START_DTM$> = '' THEN
CurrDTM = ICONV(OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS'),'DT')
WORec<WO_LOG_WO_START_DTM$> = CurrDTM
@ -1089,7 +1077,7 @@ ReleaseCassettes:
* * * * * * * * * * * * * * * * * * * * * * * * * * *
Send_Info("Collecting Data for release...") ;* //////// Messaging
Send_Info("Collecting Data for release...")
IF OrderNo = '' THEN
OrderWaferQty = WORec<WO_LOG_WO_QTY$>
@ -1097,9 +1085,7 @@ ReleaseCassettes:
VisionOrderNo = WORec<WO_LOG_PROD_ORD_NO$> ;* SAP Production Order Number
VisionLineNos = ''
WMOLoadQty = XLATE('CUST_EPI_PART',CustNo:'*':EPIPartNo,CUST_EPI_PART_WMO_LOAD_CNT$,'X')
END ELSE
OrderRec = XLATE('ORDER',OrderNo,'','X')
OrderWaferQty = 0
@ -1126,22 +1112,12 @@ ReleaseCassettes:
Send_Info('Locking WOMat records for update...')
* WOMTableVar = obj_WO_Mat('LockSet',WOMKeys)
WOMTableVar = Database_Services('GetTableHandle', 'WO_MAT')
IF Get_Status(errCode) THEN
obj_Tables('UnlockRec',OtParms) ;* Unlock WO_LOG record
Send_Info(STR(' ',60)) ;** - Messaging - **
NewForm = Xlate('APP_INFO', 'NEW_WO_FORM', '', 'X')
If NewForm then
Form = 'NDW_WO_LOG'
end else
Form = 'WO_LOG2'
end
Dummy = Set_Property(Form:'.STATUSLINE_FIX','BACKCOLOR',OrgColor) ;** - Messaging - **
obj_Tables('UnlockRec',OtParms)
Send_Info(STR(' ',60))
Dummy = Set_Property(Form:'.STATUSLINE_FIX','BACKCOLOR',OrgColor)
RETURN
END
@ -1149,20 +1125,14 @@ ReleaseCassettes:
LogData<4> = 'Trace 1'
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
* At this point the WO_LOG is locked and the WO_MAT (cassettes) are all locked for update
EpiPN = WORec<WO_LOG_EPI_PART_NO$>
EpiPartRec = XLATE('EPI_PART',EpiPN,'','X')
SubSupplyBy = EpiPartRec<EPI_PART_SUB_SUPP_BY$>
ProdVerRec = XLATE('PROD_VER',ProdVerNo,'','X')
ProcStepNos = ProdVerRec<PROD_VER_PROC_STEP_NO$>
ProcPSNs = ProdVerRec<PROD_VER_PROC_STEP_PSN$>
ReactorType = ProdVerRec<PROD_VER_REACT_TYPE$>
WOStepCnt = COUNT(ProcPSNs,@VM) + (ProcPSNs NE '')
WOStepCnt = COUNT(ProcPSNs,@VM) + (ProcPSNs NE '')
TableVar = ''
LastStep = ''
@ -1185,11 +1155,8 @@ ReleaseCassettes:
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
IF ReactorType = 'EPP' THEN
Send_Info('Creating WM_OUT records for WOStep ':WOStep:'...') ;** - Messaging - **
OutOnlyCassIDS = obj_WM_Out('Create',WONO:@RM:WOStep:@RM:CassNos:@RM:WMOLoadQty) ;* Changed WMOLoadQty 9/14/2012 JCH *********
Send_Info('Creating WM_OUT records for WOStep ':WOStep:'...')
OutOnlyCassIDS = obj_WM_Out('Create',WONO:@RM:WOStep:@RM:CassNos:@RM:WMOLoadQty)
END ELSE
OutOnlyCassIDs = ''
END
@ -1203,11 +1170,13 @@ ReleaseCassettes:
LogData<4> = 'WONo:':WONo:' WOStep:':WOStep:' CassNos:':CassNos:' CassCnt:':CassCnt:' WMOLoadQty:':WMOLoadQty
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
Def = ""
Def<MCAPTION$> = "Releasing Cassettes for WO Step ":WOStep:"..."
Def<MTYPE$> = "G"
Def<MEXTENT$> = CassCnt
Def<MTEXTWIDTH$> = 600
Def = ""
Def<MCAPTION$> = "Releasing Cassettes for WO Step ":WOStep:"..."
Def<MTYPE$> = "G"
Def<MEXTENT$> = CassCnt
Def<MTEXTWIDTH$> = 600
Def<MCOL$> = -2
Def<MROW$> = -2
MsgUp = Msg(@WINDOW, Def)
@ -1231,9 +1200,9 @@ ReleaseCassettes:
CassWaferQty = XLATE('WO_MAT',WONo:'*':CassNo,WO_MAT_WAFER_QTY$,'X')
WMIKey = WONo:'*':WOStep:'*':CassNo
Send_Info('Creating WM_IN record "':WMIKey:'"...') ;** - Messaging - **
Send_Info('Creating WM_IN record "':WMIKey:'"...')
obj_WM_IN('Create',WONo:@RM:WOStep:@RM:CassNo:@RM:CassWaferQty) ;* ******************************** EpiPro 5000 Reactor -> create WM_IN records
obj_WM_IN('Create',WONo:@RM:WOStep:@RM:CassNo:@RM:CassWaferQty)
END ELSE
@ -1276,7 +1245,7 @@ ReleaseCassettes:
Parms := '':@RM ;* QXJ Flag
Parms := CassSubVendCd
Send_Info('Creating RDS for Cass No: ':CassNo:'...') ;** - Messaging - **
Send_Info('Creating RDS for Cass No: ':CassNo:'...')
IF ReactorType = 'GAN' THEN
@ -1319,9 +1288,8 @@ ReleaseCassettes:
ErrorMsg = "RDS '" : NewRDSNo : "' Create Failure - Check for missing data on Work Order"
If Error_Services('HasError') then
ErrMsg = Error_Services('GetMessage')
EmailAddr = 'dstieber@srpcs.com,Dan.Crisp@infineon.com,jonathan.ouellette@infineon.com'
LogData = LoggingDTM : ',' : @USER4 : ',' : WONo : ',' : ErrMsg
Logging_Services('AppendLog', objLog, LogData, CRLF$, COMMA$, False$, EmailAddr, LogData)
Logging_Services('AppendLog', objLog, LogData, CRLF$, COMMA$, False$, '', LogData)
end
RTParms = 'RDS'
@ -1339,7 +1307,7 @@ ReleaseCassettes:
IF ReprocessedMat THEN
OrgRDSNo = CassLotNo
obj_Reprocess('FixUp',OrgRDSNo:@RM:NewRDSNo) ;****************************************************
obj_Reprocess('FixUp',OrgRDSNo:@RM:NewRDSNo)
END
END ;* End of check for GAN reactor
@ -1358,12 +1326,8 @@ ReleaseCassettes:
RelDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS') ;* 12/31/2014 JCH & DKK moved to prevent time incrementing time during release
PtiDTM = OCONV(Date(),'D4/'):' ':OCONV(Time()+5,'MTHS')
WOLogRec = Database_Services('ReadDataRow', 'WO_LOG', WONo)
* AvailOutSlots = WOLogRec<WO_LOG_AVAIL_OUT_SLOTS$>
MaxShipQty = Xlate('WO_LOG', WONo, 'CUST_EPI_PART_SHIP_QTY', 'X')
IF WOLogRec<WO_LOG_NEXT_OUT_SLOT$> EQ '' then WOLogRec<WO_LOG_NEXT_OUT_SLOT$> = '1*1'
FOR N = 1 TO CassCnt
WOMKey = WOMKeys<1,N>
CassNo = FIELD(WOMKey,'*',2)
@ -1424,23 +1388,12 @@ ReleaseCassettes:
NEXT N
Database_Services('WriteDataRow', 'WO_LOG', WONo, WOLogRec, True$, False$, True$)
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS')
LogData<4> = 'Trace 4'
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
Send_Info(STR(' ',60)) ;** - Messaging - **
NewForm = Xlate('APP_INFO', 'NEW_WO_FORM', '', 'X')
If NewForm then
Form = 'NDW_WO_LOG'
end else
Form = 'WO_LOG2'
end
Dummy = Set_Property(Form:'.STATUS_LINE_FIX','BACKCOLOR',OrgColor) ;** - Messaging - **
* * * * * * WO_LOG record write was here
Send_Info(STR(' ',60))
Dummy = Set_Property(Form:'.STATUS_LINE_FIX','BACKCOLOR',OrgColor)
OutOnlyCnt = COUNT(OutOnlyCassIDs,@VM) + (OutOnlyCassIDs NE '')
@ -1453,21 +1406,20 @@ ReleaseCassettes:
END
NEXT I
WORec<WO_LOG_WO_MAT_KEY$> = ExistingWOMatKeys ;* Add OutOnly Cassettetes to list inWO_LOG record.
IF WORec<WO_LOG_NEXT_OUT_SLOT$> EQ '' then WORec<WO_LOG_NEXT_OUT_SLOT$> = '1*1'
WORec<WO_LOG_WO_MAT_KEY$> = ExistingWOMatKeys
Send_Info('Saving WO_LOG record...')
OtParms = FieldStore(OtParms,@RM,4,1,WORec)
obj_Tables('WriteRec',OtParms) ;* Writes and unlocks the record It only has one value updated
obj_Tables('WriteRec',OtParms) ;* Writes and unlocks the record
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS')
LogData<4> = 'Trace 5'
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
Send_Info(STR(' ',60)) ;** - Messaging - **
* * * * * * * * * *
Send_Info(STR(' ',60))
ReactNos = obj_Sched('GetReactNos',WONo) ;************************ 5/26/2-15 JCH Added schedule ReactNos and check for WO_START_DTM$
@ -1491,33 +1443,25 @@ ReleaseCassettes:
END CASE
IF WORec<WO_LOG_WO_START_DTM$> NE '' THEN
Recipients = XLATE('NOTIFICATION','WO_RELEASE',NOTIFICATION_USER_ID$,'X')
SentFrom = @USER4
Subject = 'Work Order Release on ':WONo
IF ReactorType = 'EPP' THEN
AttachWindow = 'WO_PROD_EPI'
END ELSE
AttachWindow = 'WO_PROD'
END
AttachKey = WONo:'*':1
SendToGroup = ''
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
obj_Notes('Create',Parms)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
END
END
END ;* WO is not on the schedule
* * * * * * * * * *
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS')
LogData<4> = 'Ending ReleaseCassettes routine'
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
@ -1525,8 +1469,6 @@ ReleaseCassettes:
RETURN
* * * * * * *
RecallWO:
* * * * * * *
@ -2517,9 +2459,9 @@ CloseComp:
IF Get_Status(errCode) THEN RETURN
IF CompOrShipShort = 'Comp' THEN
SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS = "COMP" AND WITHOUT CLOSE_DATE '
SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS_STATIC = "COMP" AND WITHOUT CLOSE_DATE '
END ELSE
SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS = "INPR" "SHIP" AND WITHOUT CLOSE_DATE '
SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS_STATIC = "INPR" "SHIP" AND WITHOUT CLOSE_DATE '
END
RList(SelectStatement, TARGET_ACTIVELIST$, '','','')
@ -3107,4 +3049,3 @@ SchedReacts:
RETURN