Modified ship label printing routine to use the epi part number instead of the customer part number. Modified UpdateFailedWafers service to use the transaction queue to avoid clobbering WO_MAT records.
This commit is contained in:
committed by
Ouellette Jonathan (CSC FI SPS MESLEO)
parent
2aaed8944e
commit
490bfe21d4
@ -41,62 +41,63 @@ EQU PI$WIDTH TO 5
|
||||
EQU PI$HEIGHT TO 6
|
||||
EQU PI$SIZE TO 7
|
||||
|
||||
ErrorMsg = ''
|
||||
Main:
|
||||
|
||||
IF NOT(ASSIGNED(WONo)) THEN ErrorMsg = 'Unassigned parameter "WONo" passed to PRINT_CASS_SHIP_LABEL routine.'
|
||||
IF NOT(ASSIGNED(WOSteps)) THEN ErrorMsg = 'Unassigned parameter "WOSteps" passed to PRINT_CASS_SHIP_LABEL routine.'
|
||||
IF NOT(ASSIGNED(CassNos)) THEN ErrorMsg = 'Unassigned parameter "CassNos" passed to PRINT_CASS_SHIP_LABEL routine.'
|
||||
IF NOT(ASSIGNED(RDSNos)) THEN ErrorMsg = 'Unassigned parameter "RDSNos" passed to PRINT_CASS_SHIP_LABEL routine.'
|
||||
ErrorMsg = ''
|
||||
|
||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Zebra'
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
LogTime = Oconv(Time(), 'MTS')
|
||||
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : '.csv'
|
||||
Headers = 'Logging DTM' : @FM : 'Description'
|
||||
ColumnWidths = 20 : @FM : 300
|
||||
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$)
|
||||
IF NOT(ASSIGNED(WONo)) THEN ErrorMsg = 'Unassigned parameter "WONo" passed to PRINT_CASS_SHIP_LABEL routine.'
|
||||
IF NOT(ASSIGNED(WOSteps)) THEN ErrorMsg = 'Unassigned parameter "WOSteps" passed to PRINT_CASS_SHIP_LABEL routine.'
|
||||
IF NOT(ASSIGNED(CassNos)) THEN ErrorMsg = 'Unassigned parameter "CassNos" passed to PRINT_CASS_SHIP_LABEL routine.'
|
||||
IF NOT(ASSIGNED(RDSNos)) THEN ErrorMsg = 'Unassigned parameter "RDSNos" passed to PRINT_CASS_SHIP_LABEL routine.'
|
||||
|
||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Spectrum'
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
LogTime = Oconv(Time(), 'MTS')
|
||||
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : '.csv'
|
||||
Headers = 'Logging DTM' : @FM : 'Description'
|
||||
ColumnWidths = 20 : @FM : 300
|
||||
objSpectrumLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$)
|
||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Zebra'
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
LogTime = Oconv(Time(), 'MTS')
|
||||
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : '.csv'
|
||||
Headers = 'Logging DTM' : @FM : 'Description'
|
||||
ColumnWidths = 20 : @FM : 300
|
||||
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$)
|
||||
|
||||
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
|
||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Spectrum'
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
LogTime = Oconv(Time(), 'MTS')
|
||||
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : '.csv'
|
||||
Headers = 'Logging DTM' : @FM : 'Description'
|
||||
ColumnWidths = 20 : @FM : 300
|
||||
objSpectrumLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$)
|
||||
|
||||
IF ErrorMsg NE '' THEN
|
||||
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
|
||||
|
||||
IF ErrorMsg NE '' THEN
|
||||
ErrMsg(ErrorMsg)
|
||||
RETURN
|
||||
END
|
||||
END
|
||||
|
||||
PrinterID = ''
|
||||
* PrinterID = 'MESZBRPRT004' ;*default to the shipping printer, which is the only printer with 4x4 label stock
|
||||
PrinterID = ''
|
||||
|
||||
* Initialize the printer
|
||||
FileName = "Printing Label"
|
||||
Title = "Printing Label" ;* Initialize Printing
|
||||
* Initialize the printer
|
||||
FileName = "Printing Label"
|
||||
Title = "Printing Label" ;* Initialize Printing
|
||||
|
||||
PageInfo = ''
|
||||
PageInfo<PI$LEFT> = 0.1
|
||||
PageInfo<PI$TOP> = 0.1
|
||||
PageInfo<PI$RIGHT> = 0.1
|
||||
PageInfo<PI$BOTTOM> = 0.1
|
||||
PageInfo = ''
|
||||
PageInfo<PI$LEFT> = 0.1
|
||||
PageInfo<PI$TOP> = 0.1
|
||||
PageInfo<PI$RIGHT> = 0.1
|
||||
PageInfo<PI$BOTTOM> = 0.1
|
||||
|
||||
PageSetup = '1' ;* Landscape
|
||||
PrintSetup = '0' ;* Print to specific location
|
||||
PrintPath = Printer_Select(PrinterID);* Select printer - Displays popup if PrinterPort not found
|
||||
PrintPathLog = PrintPath
|
||||
PageSetup = '1' ;* Landscape
|
||||
PrintSetup = '0' ;* Print to specific location
|
||||
PrintPath = Printer_Select(PrinterID);* Select printer - Displays popup if PrinterPort not found
|
||||
PrintPathLog = PrintPath
|
||||
|
||||
Swap @FM with '@FM' in PrintPathLog
|
||||
Swap @VM with '@VM' in PrintPathLog
|
||||
Swap @SVM with '@SVM' in PrintPathLog
|
||||
Swap @TM with '@TM' in PrintPathLog
|
||||
Swap @STM with '@STM' in PrintPathLog
|
||||
Logging_Services('AppendLog', objLog, LoggingDTM : @FM : @User4 : ' - PrintPath = ' : PrintPathLog, @RM, @FM)
|
||||
Swap @FM with '@FM' in PrintPathLog
|
||||
Swap @VM with '@VM' in PrintPathLog
|
||||
Swap @SVM with '@SVM' in PrintPathLog
|
||||
Swap @TM with '@TM' in PrintPathLog
|
||||
Swap @STM with '@STM' in PrintPathLog
|
||||
Logging_Services('AppendLog', objLog, LoggingDTM : @FM : @User4 : ' - PrintPath = ' : PrintPathLog, @RM, @FM)
|
||||
|
||||
IF PrintPath = '' THEN
|
||||
IF PrintPath = '' THEN
|
||||
Def = ""
|
||||
Def<MTYPE$> = "TA3"
|
||||
Def<MTEXT$> = 'Destination Printer not Selected..'
|
||||
@ -104,43 +105,43 @@ IF PrintPath = '' THEN
|
||||
Def<MICON$> = '*'
|
||||
Msg(@WINDOW, Def, '')
|
||||
RETURN
|
||||
END
|
||||
END
|
||||
|
||||
If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then
|
||||
If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then
|
||||
stat = Set_Printer("INIT",FileName,Title,PageInfo,PageSetup,PrintSetup,PrintPath)
|
||||
end else
|
||||
end else
|
||||
stat = Direct_Print('START', PrintPath<1>, '', '')
|
||||
end
|
||||
IF stat < 0 THEN GOSUB OIPrint_Err ;* Bail = couldn't initialize the printer
|
||||
end
|
||||
IF stat < 0 THEN GOSUB OIPrint_Err ;* Bail = couldn't initialize the printer
|
||||
|
||||
If Unassigned(RDSType) then RDSType = ''
|
||||
If Unassigned(RDSType) then RDSType = ''
|
||||
|
||||
IF RDSType EQ '' then
|
||||
IF RDSType EQ '' then
|
||||
ReactNos = XLATE('REACT_RUN',RDSNos,REACT_RUN_REACTOR$,'X') ;* Added 12/16/2008 - JCH - Adding Reactor Type codes to cassette labels
|
||||
ReactTypes = OCONV(XLATE('REACTOR',ReactNos,REACTOR_REACT_TYPE$,'X'),'[REACT_TYPE_CONV,OPSREF]') ;* Added 12/16/2008 - JCH - Adding Reactor Type codes to cassette labels
|
||||
end else
|
||||
end else
|
||||
ReactTypes = RDSType
|
||||
end
|
||||
end
|
||||
|
||||
WORec = XLATE('WO_LOG',WONo,'','X')
|
||||
WORec = XLATE('WO_LOG',WONo,'','X')
|
||||
|
||||
WoLogReqShipDt = OCONV( WORec<WO_LOG_PROMISE_SHIP_DT$>, 'D2/' )
|
||||
WoLogDMShipDt = OCONV( WORec<WO_LOG_PROMISE_SHIP_DT$>, 'DE' )
|
||||
WoLogCustPONo = WORec<WO_LOG_CUST_PO_NO$>
|
||||
WoLogEpiPartNo = WORec<WO_LOG_EPI_PART_NO$>
|
||||
WoLogCustNo = WORec<WO_LOG_CUST_NO$>
|
||||
WoLogReqShipDt = OCONV( WORec<WO_LOG_PROMISE_SHIP_DT$>, 'D2/' )
|
||||
WoLogDMShipDt = OCONV( WORec<WO_LOG_PROMISE_SHIP_DT$>, 'DE' )
|
||||
WoLogCustPONo = WORec<WO_LOG_CUST_PO_NO$>
|
||||
WoLogEpiPartNo = WORec<WO_LOG_EPI_PART_NO$>
|
||||
WoLogCustNo = WORec<WO_LOG_CUST_NO$>
|
||||
|
||||
ProdOrdNo = WORec<WO_LOG_PROD_ORD_NO$>
|
||||
ProdVerNo = WORec<WO_LOG_PROD_VER_NO$>
|
||||
ProdVerRec = XLATE('PROD_VER',ProdVerNo,'','X')
|
||||
ProdOrdNo = WORec<WO_LOG_PROD_ORD_NO$>
|
||||
ProdVerNo = WORec<WO_LOG_PROD_VER_NO$>
|
||||
ProdVerRec = XLATE('PROD_VER',ProdVerNo,'','X')
|
||||
|
||||
CompRec = XLATE('COMPANY',WoLogCustNo,'','X')
|
||||
CompRec = XLATE('COMPANY',WoLogCustNo,'','X')
|
||||
|
||||
Captive = CompRec<COMPANY_CAPTIVE$>
|
||||
VendCd = CompRec<COMPANY_VEND_CD$>
|
||||
CustName = CompRec<COMPANY_CO_NAME$>
|
||||
Captive = CompRec<COMPANY_CAPTIVE$>
|
||||
VendCd = CompRec<COMPANY_VEND_CD$>
|
||||
CustName = CompRec<COMPANY_CO_NAME$>
|
||||
|
||||
IF ProdOrdNo NE '' THEN
|
||||
IF ProdOrdNo NE '' THEN
|
||||
IF WoLogCustPONo = 'NA' OR WoLogCustPONo = '' THEN
|
||||
PONo = ProdOrdNo
|
||||
END ELSE
|
||||
@ -149,11 +150,11 @@ IF ProdOrdNo NE '' THEN
|
||||
OrderItems = ''
|
||||
VisionOrderNo = ''
|
||||
VisionLineNos = ''
|
||||
END
|
||||
END
|
||||
|
||||
CassCnt = COUNT(CassNos,@VM) + (CassNos NE '')
|
||||
CassCnt = COUNT(CassNos,@VM) + (CassNos NE '')
|
||||
|
||||
FOR I = 1 TO CassCnt
|
||||
FOR I = 1 TO CassCnt
|
||||
|
||||
WOStep = WOSteps<1,I>
|
||||
ProdSpecID = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_PROD_SPEC_ID$,'X')
|
||||
@ -197,7 +198,7 @@ FOR I = 1 TO CassCnt
|
||||
END ELSE
|
||||
PONo = CustPONo
|
||||
END
|
||||
ReShipCustPartNo = WOMatRec<WO_MAT_RESHIP_CUST_PART_NO$>
|
||||
ReShipEpiPartNo = WOMatRec<WO_MAT_RESHIP_CUST_EPI_PART_NO$>
|
||||
SAPBatchNo = WOMatRec<WO_MAT_SAP_BATCH_NO$>
|
||||
|
||||
SubSupplier = obj_Vendor_Code('SemiToEpi',WOMatRec<WO_MAT_SUB_VEND_CD$>)
|
||||
@ -212,9 +213,9 @@ FOR I = 1 TO CassCnt
|
||||
ReactType = ReactTypes<1,I>
|
||||
|
||||
MakeupBox = WOMatRec<WO_MAT_MAKEUP_BOX$>
|
||||
PartNo = XLATE('WO_LOG',WONo,WO_LOG_CUST_PART_NO$,'X')
|
||||
If ReShipCustPartNo NE '' then
|
||||
PartNo = ReShipCustPartNo
|
||||
PartNo = XLATE('WO_LOG',WONo,WO_LOG_EPI_PART_NO$,'X')
|
||||
If ReShipEpiPartNo NE '' then
|
||||
PartNo = ReShipEpiPartNo
|
||||
end
|
||||
LotNo = WOMatRec<WO_MAT_LOT_NO$>
|
||||
SubstrPartNo = WOMatRec<WO_MAT_SUB_PART_NO$>
|
||||
@ -358,8 +359,8 @@ FOR I = 1 TO CassCnt
|
||||
|
||||
END
|
||||
END
|
||||
If ReShipCustPartNo NE '' then
|
||||
PartNo = ReShipCustPartNo
|
||||
If ReShipEpiPartNo NE '' then
|
||||
PartNo = ReShipEpiPartNo
|
||||
end
|
||||
WfrsOut = XLATE('WM_OUT',WMOutKey,'WFRS_OUT','X')
|
||||
MUWfrsRemQty = ''
|
||||
@ -435,21 +436,21 @@ FOR I = 1 TO CassCnt
|
||||
|
||||
IF InCassNo1 NE '' THEN
|
||||
WOMatRec = XLATE('WO_MAT',WONo:'*':InCassNo1,'','X')
|
||||
PartNo = XLATE('WO_LOG',WONo,WO_LOG_CUST_PART_NO$,'X')
|
||||
PartNo = XLATE('WO_LOG',WONo,WO_LOG_EPI_PART_NO$,'X')
|
||||
LotNo = WOMatRec<WO_MAT_LOT_NO$>
|
||||
SubstrPartNo = WOMatRec<WO_MAT_SUB_PART_NO$>
|
||||
|
||||
END ELSE
|
||||
IF MUWoNo1 NE '' AND MUCassNo1 NE '' THEN
|
||||
MUWOMatRec = XLATE('WO_MAT',MUWoNo1:'*':MUCassNo1,'','X')
|
||||
PartNo = XLATE('WO_LOG',MUWoNo1,WO_LOG_CUST_PART_NO$,'X')
|
||||
PartNo = XLATE('WO_LOG',MUWoNo1,WO_LOG_EPI_PART_NO$,'X')
|
||||
LotNo = MUWOMatRec<WO_MAT_LOT_NO$>
|
||||
SubstrPartNo = MUWOMatRec<WO_MAT_SUB_PART_NO$>
|
||||
|
||||
END
|
||||
END
|
||||
If ReShipCustPartNo NE '' then
|
||||
PartNo = ReShipCustPartNo
|
||||
If ReShipEpiPartNo NE '' then
|
||||
PartNo = ReShipEpiPartNo
|
||||
end
|
||||
|
||||
//WfrsOut = Count(Xlate('WO_MAT_WFR', WOMatKey, 'OUT_WFR_ID', 'X'), @VM)
|
||||
@ -539,23 +540,20 @@ FOR I = 1 TO CassCnt
|
||||
Logging_Services('AppendLog', objSpectrumLog, LogData, @FM, @VM)
|
||||
end
|
||||
end
|
||||
NEXT I
|
||||
|
||||
NEXT I
|
||||
|
||||
|
||||
* * * * * * *
|
||||
OIPrint_Err:
|
||||
* * * * * * *
|
||||
|
||||
* Local method to kill the OIPI engine
|
||||
|
||||
*IF stat < 0 THEN DEBUG ;*********
|
||||
|
||||
If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then
|
||||
* Local method to kill the OIPI engine
|
||||
If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then
|
||||
stat = Set_Printer("TERM")
|
||||
end else
|
||||
end else
|
||||
stat = Direct_Print('STOP')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
RETURN
|
||||
|
||||
@ -564,23 +562,23 @@ RETURN
|
||||
PrintLabel:
|
||||
* * * * * * * *
|
||||
|
||||
Convert '*' to '.' in CassID
|
||||
Convert '*' to '.' in CassID
|
||||
|
||||
MULabel = ''
|
||||
IF MakeupBox = 1 THEN MULabel = '** Makeup Box **'
|
||||
IF MUWfrsAddQty > 0 THEN MULabel = 'Merged Lot'
|
||||
MULabel = ''
|
||||
IF MakeupBox = 1 THEN MULabel = '** Makeup Box **'
|
||||
IF MUWfrsAddQty > 0 THEN MULabel = 'Merged Lot'
|
||||
|
||||
SuppCd = SubSupplier
|
||||
ErrorMsg = ''
|
||||
SuppCd = SubSupplier
|
||||
ErrorMsg = ''
|
||||
|
||||
IF LEN(PartNo) > 18 THEN ErrorMsg = 'CustPartNo parameter exceeds 18 characters.'
|
||||
IF LEN(RevLvl) > 3 THEN ErrorMsg = 'RevLvl parameter exceeds 3 characters.'
|
||||
IF LEN(WfrsOut) > 6 THEN ErrorMsg = 'PartQty parameter exceeds 6 characters.'
|
||||
IF NOT(NUM(WfrsOut)) THEN ErrorMsg = 'PartQty parameter is not a number.'
|
||||
IF LEN(PartNo) > 18 THEN ErrorMsg = 'CustPartNo parameter exceeds 18 characters.'
|
||||
IF LEN(RevLvl) > 3 THEN ErrorMsg = 'RevLvl parameter exceeds 3 characters.'
|
||||
IF LEN(WfrsOut) > 6 THEN ErrorMsg = 'PartQty parameter exceeds 6 characters.'
|
||||
IF NOT(NUM(WfrsOut)) THEN ErrorMsg = 'PartQty parameter is not a number.'
|
||||
|
||||
IF ErrorMsg THEN
|
||||
IF ErrorMsg THEN
|
||||
ErrMsg(ErrorMsg)
|
||||
END ELSE
|
||||
END ELSE
|
||||
* Good to go on the label print
|
||||
If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then
|
||||
stat = Set_Printer('TEXT',ImageData) ;* Download bitmap image to the printer
|
||||
@ -733,12 +731,7 @@ END ELSE
|
||||
end else
|
||||
stat = Direct_Print('PRINT', LabelString)
|
||||
end
|
||||
END ;* End of Check for good label data
|
||||
|
||||
END ;* End of Check for good label data
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -146,13 +146,14 @@ Declare subroutine Set_Status, Sleepery, Winyield, Yield, SRP_COM, QA_Services,
|
||||
Declare subroutine Validate, obj_WO_Mat, obj_WO_Mat_Log, obj_React_Status, Record_Lock, obj_React_State, obj_Post_Log
|
||||
Declare subroutine RDS_Services, obj_WO_React, RDS_React_Run, Signature_Services, SQL_Services, SRP_Stopwatch
|
||||
Declare subroutine Override_Services, Reactor_Services, Lot_Services, Obj_Notes, Mona_Services, Service_Services
|
||||
Declare function SRP_Sort_Array, Metrology_Services, obj_RDS_Test, obj_Test_Point_Map, Database_Services, Wafer_Counter_Services
|
||||
Declare subroutine Transaction_Services
|
||||
Declare function SRP_Sort_Array, Metrology_Services, obj_RDS_Test, obj_Test_Point_Map, Database_Services
|
||||
Declare function Work_Order_Services, SRP_JSON, Logging_Services, Environment_Services, SRP_Trim, Error_Services
|
||||
Declare function Min, Max, SRPSendMail, Btree.Extract, GetTickCount, HTTPClient_Services, Obj_RDS, SQL_Services
|
||||
Declare function SRP_Encode, SRP_Decode, SRP_COM, QA_Services, RDS_Services, Obj_NCR, Logging_Services, Obj_Reactor
|
||||
Declare function Get_Status, Set_Status, obj_WO_Mat, NextKey, MemberOf, FieldCount, obj_React_Status, Obj_Clean_Insp
|
||||
Declare function Schedule_Services, Signature_Services, Date, Time, Datetime, Date_Services, SRP_Array, Math_Services
|
||||
Declare function Supplement_Services, Reactor_Services, Lot_Services
|
||||
Declare function Supplement_Services, Reactor_Services, Lot_Services, Wafer_Counter_Services
|
||||
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
LogTime = Oconv(Time(), 'MTS')
|
||||
@ -3169,12 +3170,10 @@ Service UpdateFailedWafers(WOMatKey)
|
||||
AllFailedWafers<0, WfrIndex> = (PreFailedWafers<0, WfrIndex> OR FWIFailedWafers<0, WfrIndex> OR LWIFailedWafers<0, WfrIndex> OR PostFailedWafers<0, WfrIndex>)
|
||||
Next WfrIndex
|
||||
end
|
||||
WOMatRec<WO_MAT_FAILED_WAFERS$> = AllFailedWafers
|
||||
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$)
|
||||
Transaction_Services('PostWriteFieldTransaction', 'WO_MAT', WOMatKey, WO_MAT_FAILED_WAFERS$, AllFailedWafers)
|
||||
end else
|
||||
Error_Services('Add', 'Error in ':Service:' service. RDSNo is null')
|
||||
end
|
||||
|
||||
End Case
|
||||
end else
|
||||
Error_Services('Add', 'Error in ':Service:' service. ReactorType is null')
|
||||
@ -3183,7 +3182,6 @@ Service UpdateFailedWafers(WOMatKey)
|
||||
Error_Services('Add', 'Error in ':Service:' service. PSNo is null')
|
||||
end
|
||||
|
||||
|
||||
end service
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user