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:
Infineon\StieberD
2025-07-21 15:23:52 -07:00
committed by Ouellette Jonathan (CSC FI SPS MESLEO)
parent 2aaed8944e
commit 490bfe21d4
3 changed files with 801 additions and 810 deletions

View File

@ -41,6 +41,8 @@ EQU PI$WIDTH TO 5
EQU PI$HEIGHT TO 6
EQU PI$SIZE TO 7
Main:
ErrorMsg = ''
IF NOT(ASSIGNED(WONo)) THEN ErrorMsg = 'Unassigned parameter "WONo" passed to PRINT_CASS_SHIP_LABEL routine.'
@ -72,7 +74,6 @@ IF ErrorMsg NE '' THEN
END
PrinterID = ''
* PrinterID = 'MESZBRPRT004' ;*default to the shipping printer, which is the only printer with 4x4 label stock
* Initialize the printer
FileName = "Printing Label"
@ -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,6 +540,7 @@ FOR I = 1 TO CassCnt
Logging_Services('AppendLog', objSpectrumLog, LogData, @FM, @VM)
end
end
NEXT I
@ -547,16 +549,12 @@ OIPrint_Err:
* * * * * * *
* Local method to kill the OIPI engine
*IF stat < 0 THEN DEBUG ;*********
If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then
stat = Set_Printer("TERM")
end else
stat = Direct_Print('STOP')
end
RETURN
@ -735,10 +733,5 @@ END ELSE
end
END ;* End of Check for good label data
RETURN

View File

@ -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