diff --git a/LSL2/OIWIN/RDS.json b/LSL2/OIWIN/RDS.json index bc6d1e3..b22c108 100644 --- a/LSL2/OIWIN/RDS.json +++ b/LSL2/OIWIN/RDS.json @@ -12119,7 +12119,8 @@ "<66,23,5>": "RDS", "<66,23,6>": "RDS", "<66,23,7>": "RDS", - "<66,23,8>": "RDS" + "<66,23,8>": "RDS", + "<66,23,9>": "RDS" }, "<66,24>": { "<66,24,1>": "INV_DTM", @@ -12129,7 +12130,8 @@ "<66,24,5>": "INV_USER", "<66,24,6>": "INV_DELTA", "<66,24,7>": "INV_TAG", - "<66,24,8>": "INV_SCAN_ENTRY" + "<66,24,8>": "INV_SCAN_ENTRY", + "<66,24,9>": "INV_TOOL_ID" }, "<66,25>": "", "<66,26>": "", @@ -12142,7 +12144,8 @@ "<66,28,5>": "<>", "<66,28,6>": "<>", "<66,28,7>": "<>", - "<66,28,8>": "<>" + "<66,28,8>": "<>", + "<66,28,9>": "<>" }, "<66,29>": { "<66,29,1>": "DT2/^S", @@ -12152,7 +12155,8 @@ "<66,29,5>": "<>", "<66,29,6>": "<>", "<66,29,7>": "<>", - "<66,29,8>": "<>" + "<66,29,8>": "<>", + "<66,29,9>": "<>" }, "<66,30>": { "<66,30,1>": "<>", @@ -12162,7 +12166,8 @@ "<66,30,5>": "<>", "<66,30,6>": "<>", "<66,30,7>": "<>", - "<66,30,8>": "<>" + "<66,30,8>": "<>", + "<66,30,9>": "<>" }, "<66,31>": { "<66,31,1>": "0", @@ -12172,7 +12177,8 @@ "<66,31,5>": "0", "<66,31,6>": "0", "<66,31,7>": "0", - "<66,31,8>": "0" + "<66,31,8>": "0", + "<66,31,9>": "0" }, "<66,32>": "", "<66,33>": "", @@ -12186,7 +12192,8 @@ "<66,35,1,5>": "", "<66,35,1,6>": "", "<66,35,1,7>": "", - "<66,35,1,8>": "" + "<66,35,1,8>": "", + "<66,35,1,9>": "" }, "<66,35,2>": { "<66,35,2,1>": "", @@ -12196,7 +12203,8 @@ "<66,35,2,5>": "", "<66,35,2,6>": "", "<66,35,2,7>": "", - "<66,35,2,8>": "" + "<66,35,2,8>": "", + "<66,35,2,9>": "" }, "<66,35,3>": { "<66,35,3,1>": "", @@ -12206,7 +12214,8 @@ "<66,35,3,5>": "", "<66,35,3,6>": "", "<66,35,3,7>": "", - "<66,35,3,8>": "" + "<66,35,3,8>": "", + "<66,35,3,9>": "" }, "<66,35,4>": { "<66,35,4,1>": "", @@ -12216,7 +12225,8 @@ "<66,35,4,5>": "", "<66,35,4,6>": "", "<66,35,4,7>": "", - "<66,35,4,8>": "" + "<66,35,4,8>": "", + "<66,35,4,9>": "" }, "<66,35,5>": { "<66,35,5,1>": "", @@ -12226,7 +12236,8 @@ "<66,35,5,5>": "", "<66,35,5,6>": "", "<66,35,5,7>": "", - "<66,35,5,8>": "" + "<66,35,5,8>": "", + "<66,35,5,9>": "" }, "<66,35,6>": { "<66,35,6,1>": "", @@ -12236,7 +12247,8 @@ "<66,35,6,5>": "", "<66,35,6,6>": "", "<66,35,6,7>": "", - "<66,35,6,8>": "" + "<66,35,6,8>": "", + "<66,35,6,9>": "" }, "<66,35,7>": { "<66,35,7,1>": "", @@ -12246,7 +12258,8 @@ "<66,35,7,5>": "", "<66,35,7,6>": "", "<66,35,7,7>": "", - "<66,35,7,8>": "" + "<66,35,7,8>": "", + "<66,35,7,9>": "" }, "<66,35,8>": { "<66,35,8,1>": "", @@ -12256,7 +12269,8 @@ "<66,35,8,5>": "", "<66,35,8,6>": "", "<66,35,8,7>": "", - "<66,35,8,8>": "" + "<66,35,8,8>": "", + "<66,35,8,9>": "" }, "<66,35,9>": { "<66,35,9,1>": "", @@ -12266,7 +12280,8 @@ "<66,35,9,5>": "", "<66,35,9,6>": "", "<66,35,9,7>": "", - "<66,35,9,8>": "" + "<66,35,9,8>": "", + "<66,35,9,9>": "" }, "<66,35,10>": { "<66,35,10,1>": "", @@ -12276,7 +12291,8 @@ "<66,35,10,5>": "", "<66,35,10,6>": "", "<66,35,10,7>": "", - "<66,35,10,8>": "" + "<66,35,10,8>": "", + "<66,35,10,9>": "" }, "<66,35,11>": { "<66,35,11,1>": "", @@ -12286,7 +12302,8 @@ "<66,35,11,5>": "", "<66,35,11,6>": "", "<66,35,11,7>": "", - "<66,35,11,8>": "" + "<66,35,11,8>": "", + "<66,35,11,9>": "" } }, "<66,36>": "", @@ -12300,9 +12317,10 @@ "<66,39,5>": "80", "<66,39,6>": "80", "<66,39,7>": "160", - "<66,39,8>": "80" + "<66,39,8>": "80", + "<66,39,9>": "80" }, - "<66,40>": "8", + "<66,40>": "9", "<66,41>": { "<66,41,1>": "0", "<66,41,2>": "0", @@ -12320,14 +12338,15 @@ "<66,41,14>": "1" }, "<66,42>": { - "<66,42,1>": "16400", + "<66,42,1>": "2147500048", "<66,42,2>": "16384", "<66,42,3>": "16384", "<66,42,4>": "16384", "<66,42,5>": "16384", "<66,42,6>": "16416", "<66,42,7>": "16384", - "<66,42,8>": "16384" + "<66,42,8>": "2147500032", + "<66,42,9>": "2147500034" }, "<66,43>": { "<66,43,1>": "101", @@ -12337,7 +12356,8 @@ "<66,43,5>": "65", "<66,43,6>": "35", "<66,43,7>": "160", - "<66,43,8>": "80" + "<66,43,8>": "80", + "<66,43,9>": "80" }, "<66,44>": { "<66,44,1>": "TimeStamp", @@ -12347,7 +12367,8 @@ "<66,44,5>": "User", "<66,44,6>": "Hours", "<66,44,7>": "Tag", - "<66,44,8>": "Scanner Used" + "<66,44,8>": "Scanner Used", + "<66,44,9>": "INV Tool ID" }, "<66,45>": "", "<66,46>": "", @@ -12359,10 +12380,50 @@ "<66,52>": "", "<66,53>": "", "<66,54>": "", - "<66,55>": "", - "<66,56>": "", - "<66,57>": "", - "<66,58>": "", + "<66,55>": { + "<66,55,1>": "", + "<66,55,2>": "", + "<66,55,3>": "", + "<66,55,4>": "", + "<66,55,5>": "", + "<66,55,6>": "", + "<66,55,7>": "", + "<66,55,8>": "", + "<66,55,9>": "" + }, + "<66,56>": { + "<66,56,1>": "", + "<66,56,2>": "", + "<66,56,3>": "", + "<66,56,4>": "", + "<66,56,5>": "", + "<66,56,6>": "", + "<66,56,7>": "", + "<66,56,8>": "", + "<66,56,9>": "" + }, + "<66,57>": { + "<66,57,1>": "", + "<66,57,2>": "", + "<66,57,3>": "", + "<66,57,4>": "", + "<66,57,5>": "", + "<66,57,6>": "", + "<66,57,7>": "", + "<66,57,8>": "", + "<66,57,9>": "" + }, + "<66,58>": { + "<66,58,1>": "", + "<66,58,2>": "", + "<66,58,3>": "", + "<66,58,4>": "", + "<66,58,5>": "", + "<66,58,6>": "", + "<66,58,7>": "", + "<66,58,8>": "", + "<66,58,9>": "" + }, "<66,59>": "", "<66,60>": { "<66,60,1>": "18", @@ -12372,7 +12433,8 @@ "<66,60,5>": "18", "<66,60,6>": "18", "<66,60,7>": "18", - "<66,60,8>": "18" + "<66,60,8>": "18", + "<66,60,9>": "18" }, "<66,61>": "", "<66,62>": "0", @@ -12407,11 +12469,119 @@ "<66,91>": "", "<66,92>": "", "<66,93>": "", - "<66,94>": "", - "<66,95>": "", - "<66,96>": "", - "<66,97>": "", - "<66,98>": "", + "<66,94>": { + "<66,94,1>": "", + "<66,94,2>": "", + "<66,94,3>": "", + "<66,94,4>": "", + "<66,94,5>": "", + "<66,94,6>": "", + "<66,94,7>": "", + "<66,94,8>": "", + "<66,94,9>": "" + }, + "<66,95>": { + "<66,95,1>": "", + "<66,95,2>": "", + "<66,95,3>": "", + "<66,95,4>": "", + "<66,95,5>": "", + "<66,95,6>": "", + "<66,95,7>": "", + "<66,95,8>": "", + "<66,95,9>": "" + }, + "<66,96>": { + "<66,96,1>": { + "<66,96,1,1>": "", + "<66,96,1,2>": "" + }, + "<66,96,2>": "", + "<66,96,3>": "", + "<66,96,4>": "", + "<66,96,5>": "", + "<66,96,6>": "", + "<66,96,7>": "", + "<66,96,8>": "", + "<66,96,9>": { + "<66,96,9,1>": "", + "<66,96,9,2>": "" + } + }, + "<66,97>": { + "<66,97,1>": { + "<66,97,1,1>": "Tahoma", + "<66,97,1,2>": "-11", + "<66,97,1,3>": "400", + "<66,97,1,4>": "0", + "<66,97,1,5>": "0", + "<66,97,1,6>": "0", + "<66,97,1,7>": "0", + "<66,97,1,8>": "34", + "<66,97,1,9>": "0", + "<66,97,1,10>": "3", + "<66,97,1,11>": "2", + "<66,97,1,12>": "1" + }, + "<66,97,2>": "", + "<66,97,3>": "", + "<66,97,4>": "", + "<66,97,5>": "", + "<66,97,6>": "", + "<66,97,7>": "", + "<66,97,8>": "", + "<66,97,9>": { + "<66,97,9,1>": "Tahoma", + "<66,97,9,2>": "-11", + "<66,97,9,3>": "400", + "<66,97,9,4>": "0", + "<66,97,9,5>": "0", + "<66,97,9,6>": "0", + "<66,97,9,7>": "0", + "<66,97,9,8>": "34", + "<66,97,9,9>": "0", + "<66,97,9,10>": "3", + "<66,97,9,11>": "2", + "<66,97,9,12>": "1" + } + }, + "<66,98>": { + "<66,98,1>": { + "<66,98,1,1>": "Tahoma", + "<66,98,1,2>": "-11", + "<66,98,1,3>": "400", + "<66,98,1,4>": "0", + "<66,98,1,5>": "0", + "<66,98,1,6>": "0", + "<66,98,1,7>": "0", + "<66,98,1,8>": "34", + "<66,98,1,9>": "0", + "<66,98,1,10>": "3", + "<66,98,1,11>": "2", + "<66,98,1,12>": "1" + }, + "<66,98,2>": "", + "<66,98,3>": "", + "<66,98,4>": "", + "<66,98,5>": "", + "<66,98,6>": "", + "<66,98,7>": "", + "<66,98,8>": "", + "<66,98,9>": { + "<66,98,9,1>": "Tahoma", + "<66,98,9,2>": "-11", + "<66,98,9,3>": "400", + "<66,98,9,4>": "0", + "<66,98,9,5>": "0", + "<66,98,9,6>": "0", + "<66,98,9,7>": "0", + "<66,98,9,8>": "34", + "<66,98,9,9>": "0", + "<66,98,9,10>": "3", + "<66,98,9,11>": "2", + "<66,98,9,12>": "1" + } + }, "<66,99>": { "<66,99,1>": { "<66,99,1,1>": "-2", @@ -12609,7 +12779,10 @@ "<66,99,27,7>": "0" } }, - "<66,100>": "", + "<66,100>": { + "<66,100,1>": "", + "<66,100,2>": "" + }, "<66,101>": "", "<66,102>": "", "<66,103>": "", @@ -22140,10 +22313,10 @@ "<2>": { "<2,1>": { "<2,1,1>": { - "<2,1,1,1>": "UNLOAD/LOAD_EXTRA.SIGNATURE_INFO", - "<2,1,1,2>": "PRINT.FACTORY_LABELS", - "<2,1,1,3>": "PRINT.CUSTOMER_RDS", - "<2,1,1,4>": "SEND_MESSAGE.MESSAGE_W/ATTACHMENT" + "<2,1,1,1>": "SEND_MESSAGE.MESSAGE_W/ATTACHMENT", + "<2,1,1,2>": "PRINT.CUSTOMER_RDS", + "<2,1,1,3>": "PRINT.FACTORY_LABELS", + "<2,1,1,4>": "UNLOAD/LOAD_EXTRA.SIGNATURE_INFO" } }, "<2,2>": { diff --git a/LSL2/STPROC/MATERIAL_SERVICES.txt b/LSL2/STPROC/MATERIAL_SERVICES.txt index 1a6f5a6..688558d 100644 --- a/LSL2/STPROC/MATERIAL_SERVICES.txt +++ b/LSL2/STPROC/MATERIAL_SERVICES.txt @@ -62,7 +62,7 @@ Declare function Logging_Services, Environment_Services, Datetime, obj_WO_Ste Declare function SRP_Rotate_Array, SRP_DateTime, obj_WO_Log, obj_Shipment, SRP_Date Declare subroutine Material_Services, Memory_Services, Database_Services, SRP_Array, Btree.Extract, Logging_Services Declare subroutine SRP_Stopwatch, Set_Status, RList, Work_Order_Services, SQL_Services, obj_WO_Mat, obj_Notes -Declare subroutine SRP_Rotate_Array, SRP_DateTime, obj_WO_Log, Hold_Services +Declare subroutine SRP_Rotate_Array, SRP_DateTime, obj_WO_Log UseMakeupWafersTable = Database_Services('ReadDataRow', 'APP_INFO', 'USE_MAKEUP_WAFERS_TABLE') If UseMakeupWafersTable EQ '' then UseMakeupWafersTable = False$ @@ -149,22 +149,33 @@ Service GetLotHistory(IDType=IDType, LotID, StartDate, EndDate) Case IndexC(ThisComment, 'Material Placed on Hold', 1) CommentArray = 'HOLD_ON' + + Case IndexC(ThisComment, 'Packaging completed for', 1) + CommentArray = 'PACK' End Case Next I // WO_MAT Actions - INVDTMs = WOMatRow - INVUsers = WOMatRow - INVActions = WOMatRow - ActionList = INVDTMs :@FM: INVUsers :@FM: INVActions :@FM:@FM - ActionArray = SRP_Rotate_Array(ActionList) + INVDTMs = WOMatRow + INVUsers = WOMatRow + INVActions = WOMatRow + ActionList = INVDTMs :@FM: INVUsers :@FM: INVActions :@FM:@FM + ActionArray = SRP_Rotate_Array(ActionList) // Remove Hold Inventory actions from array because they are populated from RDS commments. + HoldOffCount = Count(INVActions, 'HOLD_OFF') + HoldOnCount = Count(INVActions, 'HOLD_ON') + PackCount = Count(INVActions, 'PACK') Locate 'HOLD_OFF' in InvActions Using @VM Setting POS then ActionArray = Delete(ActionArray, POS, 0, 0) end Locate 'HOLD_ON' in InvActions Using @VM Setting POS then ActionArray = Delete(ActionArray, POS, 0, 0) end + For K = 1 to PackCount + Locate 'PACK' in InvActions Using @VM Setting POS then + ActionArray = Delete(ActionArray, POS, 0, 0) + end + Next K end else // RDS is default IDType @@ -189,22 +200,35 @@ Service GetLotHistory(IDType=IDType, LotID, StartDate, EndDate) Case IndexC(ThisComment, 'Material Placed on Hold', 1) CommentArray = 'HOLD_ON' + + Case IndexC(ThisComment, 'Packaging completed for', 1) + CommentArray = 'PACK' End Case Next I // WO_MAT Actions - INVDTMs = WOMatRow - INVUsers = WOMatRow - INVActions = WOMatRow - ActionList = INVDTMs :@FM: INVUsers :@FM: INVActions :@FM:@FM - ActionArray = SRP_Rotate_Array(ActionList) + INVDTMs = WOMatRow + INVUsers = WOMatRow + INVActions = WOMatRow + ActionList = INVDTMs :@FM: INVUsers :@FM: INVActions :@FM:@FM + ActionArray = SRP_Rotate_Array(ActionList) + HoldOffCount = Count(INVActions, 'HOLD_OFF') + HoldOnCount = Count(INVActions, 'HOLD_ON') + PackCount = Count(INVActions, 'PACK') + // Remove Hold Inventory actions from array because they are populated from RDS commments. + Locate 'HOLD_OFF' in InvActions Using @VM Setting POS then ActionArray = Delete(ActionArray, POS, 0, 0) end Locate 'HOLD_ON' in InvActions Using @VM Setting POS then ActionArray = Delete(ActionArray, POS, 0, 0) end + For K = 1 to PackCount + Locate 'PACK' in InvActions Using @VM Setting POS then + ActionArray = Delete(ActionArray, POS, 0, 0) + end + Next K end // Add Comments if present If CommentArray NE '' then @@ -286,8 +310,7 @@ Service ProcessAutoHold() HoldList<-1> = ReactType:TAB$:HoldEntityID OnHold = Xlate(HoldEntity, HoldEntityID, 'HOLD', 'X') If OnHold NE True$ then - //obj_WO_Mat('ToggleHold',WOMatKey:@RM:HoldEntity:@RM:HoldEntityID:@RM:'':@RM:'H':@RM:'SYSTEM') - Hold_Services('ToggleHold', WOMatKey, HoldEntity, HoldEntityID, '', 'H', '', 'SYSTEM') + obj_WO_Mat('ToggleHold',WOMatKey:@RM:HoldEntity:@RM:HoldEntityID:@RM:'':@RM:'H':@RM:'SYSTEM') end LogData = '' diff --git a/LSL2/STPROC/NDW_PACKAGING_EVENTS.txt b/LSL2/STPROC/NDW_PACKAGING_EVENTS.txt index e87093c..5b078b9 100644 --- a/LSL2/STPROC/NDW_PACKAGING_EVENTS.txt +++ b/LSL2/STPROC/NDW_PACKAGING_EVENTS.txt @@ -217,6 +217,8 @@ Event EDL_PASSWORD_SCAN.LOSTFOCUS(Flag, FocusID) ScanData = Get_Property(CtrlEntID, 'TEXT') If ScanData NE '' then Username = Get_Property(@Window:'.EDL_USER_ID_SCAN', 'TEXT') + PolyText = Get_Property(@Window:'.EDL_POLY_SCAN', 'TEXT') + BaggerID = PolyText[5,1] ScanData = Packaging_Services('ProcessScanData', ScanData, 'PASSWORD', Username) If Error_Services('NoError') then Set_Property(CtrlEntID, 'TEXT', ScanData) @@ -225,7 +227,7 @@ Event EDL_PASSWORD_SCAN.LOSTFOCUS(Flag, FocusID) //replace period with asterisk for GaN cassettes Convert '.' to '*' in CassetteID OperatorID = Get_Property(@Window:'.EDL_USER_ID_SCAN', 'TEXT') - Packaging_Services('CompletePackaging', CassetteID, OperatorID) + Packaging_Services('CompletePackaging', CassetteID, OperatorID, BaggerID) If Error_Services('NoError') then SuccessMessage = 'Bagging process complete!' MsgStruct = "" diff --git a/LSL2/STPROC/PACKAGING_SERVICES.txt b/LSL2/STPROC/PACKAGING_SERVICES.txt index b099c8e..9582f1b 100644 --- a/LSL2/STPROC/PACKAGING_SERVICES.txt +++ b/LSL2/STPROC/PACKAGING_SERVICES.txt @@ -36,7 +36,7 @@ $insert NOTIFICATION_EQU Declare function Scan_Services, Memory_Services, Database_Services, SRP_JSON, RTI_CreateGUID, Memberof Declare function Get_Property, RDS_Services, EpiPro_Services, DateTime, Signature_Services Declare subroutine Scan_Services, Memory_Services, Database_Services, SRP_JSON, Security_Services, obj_Notes -Declare subroutine obj_WO_Mat_Log, obj_WO_Mat, Set_Status, SAP_Services, Hold_Services +Declare subroutine obj_WO_Mat_Log, obj_WO_Mat, Set_Status, SAP_Services, Rds_Services, Wm_Out_Services //TODO - flag used during cutover, delete from APP_INFO and removed commented lines reference Use2DBarcode *Use2DBarcode = Database_Services('ReadDataRow', 'APP_INFO', 'USE_PACKAGING_2D') @@ -56,25 +56,28 @@ Options SCAN_TYPES = 'EMPLOYEE', 'CASSETTE_1', 'CASSETTE_2', 'POLY', 'TRI // SERVICES //----------------------------------------------------------------------------- -Service CompletePackaging(CassetteID, OperatorID) - +Service CompletePackaging(CassetteID, OperatorID, BaggerIdentifier) + * 1. Write success packaging record in Material Log * 2. Write success PTO record in Material Log * 3. Send SAP Cassette Complete transaction (up to now, this has been done at FQA) + * 4. Create comment in CassetteID record - RDSKey = CassetteID - WMOKey = CassetteID + RDSKey = CassetteID + WMOKey = CassetteID Convert '.' to '*' in WMOKey - + CommentEntity = '' Begin Case Case RowExists('RDS', RDSKey) EQ True$ // RDS number - WOMatKey = Xlate('RDS', RDSKey, 'WO', 'X') - WOMatKey = WoMatKey:'*':Xlate('RDS', RDSKey, 'CASS_NO', 'X') + WOMatKey = Xlate('RDS', RDSKey, 'WO', 'X') + WOMatKey = WoMatKey:'*':Xlate('RDS', RDSKey, 'CASS_NO', 'X') + CommentEntity = 'RDS' Case RowExists('WM_OUT', WMOKey) EQ True$ // WM_OUT key - WOMatKey = Xlate('WM_OUT', WMOKey, 'WO_MAT_KEY', 'X') + WOMatKey = Xlate('WM_OUT', WMOKey, 'WO_MAT_KEY', 'X') + CommentEntity = 'WM_OUT' Case RowExists('WO_MAT', CassetteID) EQ True$ // WO_MAT key @@ -88,6 +91,15 @@ Service CompletePackaging(CassetteID, OperatorID) If Error_Services('NoError') then + Begin Case + Case BaggerIdentifier EQ 'L' + BaggerIdentifier = 'LeftBagger' + Case BaggerIdentifier EQ 'R' + BaggerIdentifier = 'RightBagger' + Case Otherwise$ + BaggerIdentifier = '' + End Case + WONo = Field(WOMatKey, '*', 1, 1) CassNo = Field(WOMatKey, '*', 2, 1) @@ -105,7 +117,7 @@ Service CompletePackaging(CassetteID, OperatorID) LocCd = 'PACK' UserID = OperatorID Tag = 'Packaging complete' - ToolID = '' + ToolID = BaggerIdentifier WOMLParms = LogFile:@RM WOMLParms := LogDTM:@RM @@ -136,6 +148,14 @@ Service CompletePackaging(CassetteID, OperatorID) // Add CassComp transaction to SAP queue SAPBatchNo = Xlate('WO_MAT', WOMatKey, 'SAP_BATCH_NO', 'X') If SAPBatchNo EQ '' then SAP_Services('AddCassCompTransaction', WOMatKey) + Begin Case + Case CommentEntity = 'RDS' + CommentText = 'Packaging completed for RDS ' :CassetteID: ' by user ' : OperatorID + Rds_Services('AddComment', CassetteID, CommentText, OperatorID) + Case CommentEntity = 'WM_OUT' + CommentText = 'Packaging completed for WM_OUT ' :CassetteID: ' by user ' : OperatorID + Wm_Out_Services('AddComment', CassetteID, CommentText, OperatorID) + End Case end end @@ -235,8 +255,7 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) CtrlEntID = False$ ;* Control checked/unchecked OriginFlag = 'P' ;* Flag to indicate a hold initiated from the packagaing form Parms = WOMatKey:@RM:HoldEntity:@RM:HoldEntityID:@RM:CtrlEntID:@RM:OriginFlag:@RM:OperatorID - //obj_WO_Mat('ToggleHold', Parms) - Hold_Services('ToggleHold', WOMatKey, HoldEntity, HoldEntityID, CtrlEntID, OriginFlag, '', OperatorID) + obj_WO_Mat('ToggleHold', Parms) // Write fail packaging record in material log for first cassette ID LogDate = OCONV( Date(), 'D2/' ) @@ -296,7 +315,7 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) IF Get_Status(errCode) THEN Error_Services('Add', 'Error code ':errCode:' in ':Service:' service.') // Add error to error stack - ErrorMessage = 'Lots do not match - operation cannot continue. '| + ErrorMessage = 'Lots do not match – operation cannot continue. '| : 'Lot has been put on hold - place lot on hold shelf and notify Supervisor, Lead, or Engineering' Error_Services('Add', ErrorMessage) end @@ -325,11 +344,11 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) end Case ScanType EQ 'POLY' - If ScanData[1, 5] EQ '1POLY' AND LEN(ScanData) EQ 5 then + If ScanData[1, 5] EQ '1POLY' AND LEN(ScanData) EQ 6 And (ScanData[6,1] EQ 'L' OR ScanData[6,1] EQ 'R') then // Valid Poly scan - has to be exact match Response = ScanData[2, 999] end else - Error_Services('Add', 'Location does not equal POLY - operation cannot continue.') + Error_Services('Add', 'Location does not equal POLY – operation cannot continue.') end Case ScanType EQ 'TRILAM' @@ -337,7 +356,7 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) // Valid Trilam scan - has to be exact match Response = ScanData[2, 999] end else - Error_Services('Add', 'Location does not equal TRILAM - operation cannot continue.') + Error_Services('Add', 'Location does not equal TRILAM – operation cannot continue.') end Case ScanType EQ 'CASSETTE_1' @@ -388,7 +407,7 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) HoldStatus = Xlate('WO_MAT', CassetteID, 'HOLD', 'X') FQAComp = Signature_Services('FinalSigComp', CassetteID) If (HoldStatus EQ True$) then - ErrorMessage = 'Lot is currently on hold - operation cannot continue. ' | + ErrorMessage = 'Lot is currently on hold – operation cannot continue. ' | : 'Place lot on hold shelf and notify Supervisor, Lead, or Engineering.' Error_Services('Add', ErrorMessage) end else If FQAComp NE True$ then @@ -411,7 +430,7 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) FQAComp = Epipro_Services('GetFinalQAStatus', CassetteID) LblCheckComp = Signature_Services('CheckQALabelStatus', WOMatKey) If (HoldStatus EQ True$) then - ErrorMessage = 'Lot is currently on hold - operation cannot continue. ' | + ErrorMessage = 'Lot is currently on hold – operation cannot continue. ' | : 'Place lot on hold shelf and notify Supervisor, Lead, or Engineering.' Error_Services('Add', ErrorMessage) end else If FQAComp NE True$ then @@ -435,7 +454,7 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) WONo = Field(WOMatKey, '*', 1) CassNo = Field(WOMatKey, '*', 2) If (HoldStatus EQ True$) then - ErrorMessage = 'Lot is currently on hold - operation cannot continue.' | + ErrorMessage = 'Lot is currently on hold – operation cannot continue.' | : 'Place lot on hold shelf and notify Supervisor, Lead, or Engineering.' Error_Services('Add', ErrorMessage) end else If FQAComp NE True$ then @@ -569,8 +588,7 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) CtrlEntID = False$ ;* Control checked/unchecked OriginFlag = 'P' ;* Flag to indicate a hold initiated from the packagaing form Parms = WOMatKey:@RM:HoldEntity:@RM:HoldEntityID:@RM:CtrlEntID:@RM:OriginFlag:@RM:OperatorID -* obj_WO_Mat('ToggleHold', Parms) - Hold_Services('ToggleHold', WOMatKey, HoldEntity, HoldEntityID, CtrlEntID, OriginFlag, '', OperatorID) + obj_WO_Mat('ToggleHold', Parms) // Check if second cassette ID is a valid RDS or WM_OUT key Convert '.' to '*' in SecondCassID @@ -628,8 +646,7 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) CtrlEntID = False$ ;* Control checked/unchecked OriginFlag = 'P' ;* Flag to indicate a hold initiated from the packagaing form Parms = WOMatKey:@RM:HoldEntity:@RM:HoldEntityID:@RM:CtrlEntID:@RM:OriginFlag:@RM:OperatorID - //obj_WO_Mat('ToggleHold', Parms) - Hold_Services('ToggleHold', WOMatKey, HoldEntity, HoldEntityID, CtrlEntID, OriginFlag, '', OperatorID) + obj_WO_Mat('ToggleHold', Parms) end // Send scan mismatch notification diff --git a/LSL2/STPROC/WM_OUT_SERVICES.txt b/LSL2/STPROC/WM_OUT_SERVICES.txt index 1c7b90d..e703558 100644 --- a/LSL2/STPROC/WM_OUT_SERVICES.txt +++ b/LSL2/STPROC/WM_OUT_SERVICES.txt @@ -100,10 +100,15 @@ End Service // Adds an EPP_COMMENT_NOTE, EPP_COMMENT_USER, and EPP_COMMENT_DATE // to a WM_OUT record. //---------------------------------------------------------------------------------------------------------------------- -Service AddComment(WMOutNo, Comment) +Service AddComment(WMOutNo, Comment, UsernameOpt) WMOutRow = Database_Services('ReadDataRow', 'WM_OUT', WMOutNo) UserName = @USER4 + If Assigned(UsernameOpt) then + If UsernameOpt NE '' then + Username = UsernameOpt + end + end CommentTime = Datetime() OldDates = WMOutRow @@ -277,23 +282,12 @@ Service GetWMOData(WorkOrderNo, Columns, ShowGasGauge, WMOOverrideList) @RECORD = Database_Services('ReadDataRow', 'WM_OUT', @ID) If Error_Services('NoError') then For each Column in Columns using @VM setting vPos - Begin Case - Case Column EQ 'HOLD' - HoldStatus = Calculate(Column) - If HoldStatus EQ True$ then - HoldStatus = 'On Hold' - end else - HoldStatus = 'Off Hold' - end - WMOList = HoldStatus - Case Otherwise$ - Val = Calculate(Column) - Conv = Xlate('DICT.WM_OUT', Column, DICT_CONV$, 'X') - If Conv NE '' then - Val = OConv(Val, Conv) - end - WMOList = Val - End Case + Val = Calculate(Column) + Conv = Xlate('DICT.WM_OUT', Column, DICT_CONV$, 'X') + If Conv NE '' then + Val = OConv(Val, Conv) + end + WMOList = Val Next Column end else Error_Services('Add', 'Error reading WM_OUT Record ' : @ID : ' in the ' : Service : ' service.') @@ -355,3 +349,4 @@ Service GetWaferMap(WMOKey) end service +