diff --git a/LSL2/STPROC/CLEAN_INSP_ACTIONS.txt b/LSL2/STPROC/CLEAN_INSP_ACTIONS.txt index 5625c18..1f21738 100644 --- a/LSL2/STPROC/CLEAN_INSP_ACTIONS.txt +++ b/LSL2/STPROC/CLEAN_INSP_ACTIONS.txt @@ -200,7 +200,7 @@ return WRITE_RECORD_PRE: - + OrigRecCopy = OrigRecord RecCopy = Record Convert @VM to '' in OrigRecCopy @@ -321,7 +321,13 @@ WRITE_RECORD_PRE: end else Stage = Record - IsEpiPro = Rds_Services('IsEpiPro', RDSKeyID) + If RDSKeyID NE '' then + IsEpiPro = Rds_Services('IsEpiPro', RDSKeyID) + IsWmOut = False$ + end else + IsEpiPro = True$ + IsWmOut = True$ + end // This ROTR logic is only applicable to LWI clean & inspection rows. CleanInspKeyID = Name @@ -436,14 +442,16 @@ WRITE_RECORD_PRE: If (UCL EQ '') or (UCL EQ 0) then // The UCL has not yet been retrieved from SPC or an error could have // occurred when the last attempt to retrieve it, so try to get it now. - UCL = QA_Services('PostUCLRequest', RDSKey, ScanRecipeName) - If (UCL NE '') and (UCL NE 0) then - Record = UCL - end else - ErrorMessage = 'Error retrieving UCL value from QA_Services in CLEAN_INSP_ACTIONS' - Error_Services('Add', ErrorMessage) + If (RDSKey NE '') then + UCL = QA_Services('PostUCLRequest', RDSKey, ScanRecipeName) + If (UCL NE '') and (UCL NE 0) then + Record = UCL + end else + ErrorMessage = 'Error retrieving UCL value from QA_Services in CLEAN_INSP_ACTIONS' + Error_Services('Add', ErrorMessage) + end end - end + end SpecDefect = Oconv(SpecDefects<0, SpecRecipeIndex>, 'MD0') SpecHaze = Oconv(SpecHazes<0, SpecRecipeIndex>, 'MD2') SpecQty = SpecQuantities<0, SpecRecipeIndex> @@ -692,7 +700,10 @@ WRITE_RECORD_PRE: Case (SigRequired EQ True$) AND (ScanSig EQ '') ROTRAction = 'F' ROTRActionReason = 'SurfScan signature is missing.' - Case (ScanDefect GT SpecDefect) or (NumFailedWafers GE ROTRFailLimit) + Case (ScanDefect GT SpecDefect) + ROTRAction = 'F' + ROTRActionReason = 'SurfScan data out of bounds.' + Case ROTREnabled and (NumFailedWafers GE ROTRFailLimit) ROTRAction = 'F' ROTRActionReason = 'SurfScan data out of bounds.' Case (ScanHaze GT SpecHaze) diff --git a/LSL2/STPROC/NCR_SERVICES.txt b/LSL2/STPROC/NCR_SERVICES.txt index f705ec9..a56f685 100644 --- a/LSL2/STPROC/NCR_SERVICES.txt +++ b/LSL2/STPROC/NCR_SERVICES.txt @@ -101,105 +101,6 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, FirstCassID, OperatorID // type of cassette ID (i.e., RDS or WMO). Begin Case - Case ScanType EQ 'WM_IN_1' - ValidCassID = False$ - cnt = Count(ScanData, '|') - if cnt NE 0 then - Error_Services('Add', 'Wrong label - Scan 2D Top Label') - return - end else - CassetteID = ScanData - Swap 'FDI' with '' in CassetteID - Swap '^FS' with '' in CassetteID - Swap 'I' with '' in CassetteID - Convert '.' to '*' in CassetteID - WMIRow = Database_Services('ReadDataRow', 'WM_IN', CassetteID) - If Error_Services('NoError') then - ValidCassID = True$ - end - ScanData = CassetteID - If ScanData NE FirstCassID then - Error_Services('Add', 'Lot Label does not match the expected lot in OI. | Please correct this issue and then retry.') - end - end - - If ValidCassID EQ False$ then - Error_Services('Add', 'Unrecognized scan data: ':ScanData) - end - - Response = ScanData - - Case ScanType EQ 'WM_IN_2' - ValidCassID = False$ - ScanMismatch = False$ - cnt = Count(ScanData, '|') - if cnt NE 0 then - Error_Services('Add', 'Wrong label - Scan 2D Bottom Label') - return - end else - CassetteID = ScanData - Swap 'FDI' with '' in CassetteID - Swap '^FS' with '' in CassetteID - Swap 'I' with '' in CassetteID - Convert '.' to '*' in CassetteID - WMIRow = Database_Services('ReadDataRow', 'WM_IN', CassetteID) - If Error_Services('NoError') then - ValidCassID = True$ - end - ScanData = CassetteID - If ScanData NE FirstCassID then - ScanMismatch = True$ - end - end - - If ScanMismatch EQ True$ then - ValidCassID = False$ - If (RowExists('WM_IN', FirstCassID) EQ True$) And (RowExists('WM_IN', CassetteID) EQ True$) then - // Place first cassette on hold - WONo = Field(FirstCassID, '*', 1, 1) - CassNo = Field(FirstCassID, '*', 3, 1) - HoldEntity = 'WM_IN' - HoldEntityID = FirstCassID - - WOMatKey = WONo:'*':CassNo - CtrlEntID = 'NCR_SERVICES' ;* Control checked/unchecked - OriginFlag = '' ;* Flag to indicate a hold initiated from the packagaing form - HoldData = '' - HoldData<1> = OperatorID - HoldData<2> = 'Lot placed on hold due to NCR Barcode verification mismatch.' - HoldData<3> = False$ - Hold_Services('OnHold', WOMatKey, HoldEntity, HoldEntityID, 'HOLD', HoldData, OperatorID) - - // Place Second cassette on hold - WONo = Field(CassetteID, '*', 1, 1) - CassNo = Field(CassetteID, '*', 3, 1) - HoldEntity = 'WM_IN' - HoldEntityID = CassetteID - - WOMatKey = WONo:'*':CassNo - CtrlEntID = 'NCR_SERVICES' ;* Control checked/unchecked - OriginFlag = '' ;* Flag to indicate a hold initiated from the packagaing form - HoldData = '' - HoldData<1> = OperatorID - HoldData<2> = 'Lot placed on hold due to NCR Barcode verification mismatch.' - HoldData<3> = False$ - Hold_Services('OnHold', WOMatKey, HoldEntity, HoldEntityID, 'HOLD', HoldData, OperatorID) - Message = 'NCR Label verification failed due to mismatched barcodes. Both cassettes placed on hold - Supervisor, Lead, or Engineering disposition required.':CRLF$ | - : 'WM_IN Label #1: ':FirstCassID:CRLF$ | - : 'WM_IN Label #2: ':CassetteID:CRLF$ | - : 'Operator: ':OperatorID - Error_Services('Add', Message) - end else - Error_Services('Add', 'Unrecognized scan data: ':ScanData) - end - end - - If ValidCassID EQ False$ then - Error_Services('Add', 'Unrecognized scan data: ':ScanData) - end - - Response = ScanData - Case ScanType EQ 'CASSETTE_1' // Assume this is intended to be a Cassette ID scan (either WMO or RDS). Only if this is a @@ -226,27 +127,15 @@ Service ProcessScanData(ScanData, ScanType = SCAN_TYPES, FirstCassID, OperatorID ValidCassID = False$ ; // Assume Cassette ID is not valid for now. RDSCass = Count(CassetteID, '.') EQ 0 AND Num(CassetteID) - GaNCass = Count(CassetteID, '.') EQ 1 AND not(RDSCass) - EPPCass = Count(CassetteID, '.') EQ 2 AND not(RDSCass) AND not(GaNCass) + EPPCass = Count(CassetteID, '.') EQ 2 AND not(RDSCass) Begin Case - Case GaNCass - Convert '.' to '*' in CassetteID - WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', CassetteID) - If Error_Services('NoError') then - ValidCassID = True$ - end Case EPPCass Convert '.' to '*' in CassetteID - WMOutRow = Database_Services('ReadDataRow', 'WM_OUT', CassetteID) - If Error_Services('NoError') then - ValidCassID = True$ - end + ValidcassID = RowExists('WM_IN', CassetteID) or RowExists('WM_OUT', CassetteID) Case RDSCass - RDSRow = Database_Services('ReadDataRow', 'RDS', CassetteID) - If Error_Services('NoError') then - ValidCassID = True$ - end + RDSRow = Database_Services('ReadDataRow', 'RDS', CassetteID) + ValidCass = RowExists('RDS', CassetteID) End Case If ( (Seq1 EQ 'SEQ1') or (Seq1 EQ 'SEQ2') ) then @@ -591,7 +480,9 @@ Service SendToSPC(NCRNo, RDSList, ReactorType, PSNo, DeptResp, LossCode, LossDes end service + Service GetOpenNCRKeys() + table = "NCR" ErrorMessage = '' RDSRecords = '' @@ -611,9 +502,12 @@ Service GetOpenNCRKeys() Error_Services('Add', ErrorMessage) end Response = RDSRecords + end service + Service ConvertRecordToJson(NCRId) + NCRJson = '' ErrorMessage = '' If RowExists('NCR', NCRId) then @@ -662,6 +556,6 @@ Service ConvertRecordToJson(NCRId) Error_Services('Add', ErrorMessage) end Response = NCRJson + end service - diff --git a/LSL2/STPROC/NDW_VERIFY_BARCODE_EVENTS.txt b/LSL2/STPROC/NDW_VERIFY_BARCODE_EVENTS.txt index 5ba7bc4..32d06b5 100644 --- a/LSL2/STPROC/NDW_VERIFY_BARCODE_EVENTS.txt +++ b/LSL2/STPROC/NDW_VERIFY_BARCODE_EVENTS.txt @@ -85,12 +85,7 @@ Event EDL_CASS_SCAN_1.LOSTFOCUS(Flag, FocusID) ExpectedLot = Get_Property(@Window:'.EDL_LOT_ID', 'TEXT') OperatorID = @User4 If ScanData NE '' then - - If Parent EQ 'WM_IN' then - ScanData = NCR_Services('ProcessScanData', ScanData, 'WM_IN_1', ExpectedLot, OperatorID) - end else - ScanData = NCR_Services('ProcessScanData', ScanData, 'CASSETTE_1', ExpectedLot, OperatorID) - End + ScanData = NCR_Services('ProcessScanData', ScanData, 'CASSETTE_1', ExpectedLot, OperatorID) If Error_Services('NoError') then Set_Property(CtrlEntID, 'TEXT', ScanData) Set_Property(@Window:'.EDL_CASS_SCAN_2', 'ENABLED', True$) @@ -118,12 +113,7 @@ Event EDL_CASS_SCAN_2.LOSTFOCUS(Flag, FocusID) If ScanData NE '' then FirstCassID = Get_Property(@Window:'.EDL_CASS_SCAN_1', 'TEXT') OperatorID = @User4 - - If Parent EQ 'WM_IN' then - ScanData = NCR_Services('ProcessScanData', ScanData, 'WM_IN_2', FirstCassID, OperatorID) - end else - ScanData = NCR_Services('ProcessScanData', ScanData, 'CASSETTE_2', FirstCassID, OperatorID) - End + ScanData = NCR_Services('ProcessScanData', ScanData, 'CASSETTE_2', FirstCassID, OperatorID) If Error_Services('NoError') then Set_Property(CtrlEntID, 'TEXT', ScanData) SuccessMessage = 'NCR verification complete!' @@ -198,4 +188,3 @@ GetLotID: return -