removed dead code

This commit is contained in:
Infineon\StieberD 2025-06-09 16:39:46 -07:00
parent 16c7bc6926
commit 803f946c7e
7 changed files with 432 additions and 802 deletions

View File

@ -582,10 +582,6 @@ Refresh:
If @WINDOW EQ 'RDS_UNLOAD' then If @WINDOW EQ 'RDS_UNLOAD' then
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
If (DevelopmentFlag EQ True$) then
CtrlName = @WINDOW:'.EDT_QA_MET' CtrlName = @WINDOW:'.EDT_QA_MET'
Set_Property(@Window : '.MET_TEST', 'VISIBLE', False$) Set_Property(@Window : '.MET_TEST', 'VISIBLE', False$)
Set_Property(CtrlName, 'VISIBLE', True$) Set_Property(CtrlName, 'VISIBLE', True$)
@ -709,42 +705,6 @@ Refresh:
END ELSE END ELSE
Set_Property(@WINDOW:'.CLEAR_EPI_UNLOAD','VISIBLE',0) Set_Property(@WINDOW:'.CLEAR_EPI_UNLOAD','VISIBLE',0)
END END
end else
CtrlName = @WINDOW:'.MET_TEST'
Set_Property(@Window : '.EDT_QA_MET', 'VISIBLE', False$)
Set_Property(CtrlName, 'VISIBLE', True$)
MetList = Get_Property(CtrlName,'LIST')
MLCnt = COUNT(MetList,@FM) + (MetList NE '')
FOR Line = 1 TO MLCnt
IF MetList<Line,COL$MET_TEST> NE '' THEN
BEGIN CASE
CASE MetList<Line,COL$MET_RESULT> = ''
Color = YELLOW$
CASE MetList<Line,COL$MET_RESULT> < MetList<Line,COL$MET_MIN> OR MetList<Line,COL$MET_RESULT> > MetList<Line,COL$MET_MAX>
Color = RED$
CASE 1
Color = GREEN$
END CASE
END ELSE
Color = GREEN$
END;* End of check for Met Test on the current line
stat = Send_Message(CtrlName,'COLOR_BY_POS',0,Line,Color)
NEXT Line
Set_Property(@WINDOW:'.BUTTON_11','ENABLED',EnableUnloadButton)
IF MemberOf(@USER4, 'OI_ADMIN') THEN
Set_Property(@WINDOW:'.CLEAR_EPI_UNLOAD','VISIBLE',1)
END ELSE
Set_Property(@WINDOW:'.CLEAR_EPI_UNLOAD','VISIBLE',0)
END
end
end end
* End of check for Unload OR Post_Epi windows * End of check for Unload OR Post_Epi windows
@ -2669,9 +2629,8 @@ MetTestDC:
Lines = Get_Property(@WINDOW:'.MET_TEST', 'LIST') Lines = Get_Property(@WINDOW:'.MET_TEST', 'LIST')
TestLine = Lines<CurrRow> TestLine = Lines<CurrRow>
LWRHOTest = Indexc(TestLine, 'LW_RHO', 1) LWRHOTest = Indexc(TestLine, 'LW_RHO', 1)
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
If (DevelopmentFlag EQ True$) and (@Window EQ 'RDS_UNLOAD') and (LWRHOTest EQ False$) then If (@Window EQ 'RDS_UNLOAD') and (LWRHOTest EQ False$) then
Ctrls := @WINDOW:'.EDT_QA_MET':@RM ; Props := 'SELPOS':@RM Ctrls := @WINDOW:'.EDT_QA_MET':@RM ; Props := 'SELPOS':@RM
Ctrls := @WINDOW:'.EDT_QA_MET' ; Props := 'LIST' Ctrls := @WINDOW:'.EDT_QA_MET' ; Props := 'LIST'
end else end else
@ -2708,8 +2667,7 @@ MetTestDC:
BEGIN CASE BEGIN CASE
CASE MetTest EQ '' CASE MetTest EQ ''
Null Null
CASE (@WINDOW = 'RDS_UNLOAD') and (LWRHOTest EQ False$)
CASE (@WINDOW = 'RDS_UNLOAD') and (DevelopmentFlag EQ True$) and (LWRHOTest EQ False$)
ReturnVal = Dialog_Box('NDW_QA_MET_RESULT', @WINDOW, CassID) ReturnVal = Dialog_Box('NDW_QA_MET_RESULT', @WINDOW, CassID)
Send_Event(@Window, "READ") Send_Event(@Window, "READ")
CASE Otherwise$ CASE Otherwise$
@ -2863,9 +2821,6 @@ return
RefreshWaferCounterData: RefreshWaferCounterData:
WCCheckEnabled = Xlate('APP_INFO', 'WAFER_COUNTER_CHECK', '', 'X')
If WCCheckEnabled then
Set_Property(@Window:'.LBL_WAFER_COUNTER_QTY', 'VISIBLE', True$) Set_Property(@Window:'.LBL_WAFER_COUNTER_QTY', 'VISIBLE', True$)
Set_Property(@Window:'.EDL_WAFER_COUNTER_QTY', 'VISIBLE', True$) Set_Property(@Window:'.EDL_WAFER_COUNTER_QTY', 'VISIBLE', True$)
QtyBackColor = GREEN$ QtyBackColor = GREEN$
@ -2908,12 +2863,5 @@ RefreshWaferCounterData:
end end
Set_Property(@WINDOW:'.EDL_WAFER_COUNTER_QTY','BACKCOLOR', QtyBackColor) Set_Property(@WINDOW:'.EDL_WAFER_COUNTER_QTY','BACKCOLOR', QtyBackColor)
end else
Set_Property(@Window:'.EDL_WAFER_COUNTER_QTY', 'VISIBLE', False$)
Set_Property(@Window:'.LBL_WAFER_COUNTER_QTY', 'VISIBLE', False$)
end
return return

View File

@ -1107,9 +1107,6 @@ SignSupVer:
END END
END END
WCCheckEnabled = Xlate('APP_INFO', 'WAFER_COUNTER_CHECK', '', 'X')
If WCCheckEnabled then
**************************************** ****************************************
* Verify the Wafer Counter information * * Verify the Wafer Counter information *
**************************************** ****************************************
@ -1129,7 +1126,6 @@ SignSupVer:
ErrMsg('Unable to sign FQA because the Wafer Counter quantity is missing.') ErrMsg('Unable to sign FQA because the Wafer Counter quantity is missing.')
RETURN 0 RETURN 0
end end
end
************************** **************************
* Verify user's password * * Verify user's password *
@ -2294,9 +2290,6 @@ return
RefreshWaferCounterData: RefreshWaferCounterData:
WCCheckEnabled = Xlate('APP_INFO', 'WAFER_COUNTER_CHECK', '', 'X')
If WCCheckEnabled then
Set_Property(@Window:'.LBL_WAFER_COUNTER_QTY', 'VISIBLE', True$) Set_Property(@Window:'.LBL_WAFER_COUNTER_QTY', 'VISIBLE', True$)
Set_Property(@Window:'.EDL_WAFER_COUNTER_QTY', 'VISIBLE', True$) Set_Property(@Window:'.EDL_WAFER_COUNTER_QTY', 'VISIBLE', True$)
QtyBackColor = GREEN$ QtyBackColor = GREEN$
@ -2341,10 +2334,5 @@ RefreshWaferCounterData:
Set_Property(@WINDOW:'.EDL_WAFER_COUNTER_QTY','BACKCOLOR', QtyBackColor) Set_Property(@WINDOW:'.EDL_WAFER_COUNTER_QTY','BACKCOLOR', QtyBackColor)
end else
Set_Property(@Window:'.LBL_WAFER_COUNTER_QTY', 'VISIBLE', False$)
Set_Property(@Window:'.EDL_WAFER_COUNTER_QTY', 'VISIBLE', False$)
end
return return

View File

@ -881,10 +881,6 @@ Event SIGN_BUTTON.CLICK()
****************************************** ******************************************
* Verify Unload Stage QA Metrology Tests * * Verify Unload Stage QA Metrology Tests *
****************************************** ******************************************
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
If (DevelopmentFlag EQ True$) then
WOMatQAKey = WONo : '*' : CassNo WOMatQAKey = WONo : '*' : CassNo
WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAKey) WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAKey)
OutOfSpec = WOMatQARec<WO_MAT_QA_OUT_OF_SPEC$> OutOfSpec = WOMatQARec<WO_MAT_QA_OUT_OF_SPEC$>
@ -898,7 +894,6 @@ Event SIGN_BUTTON.CLICK()
ErrMsg(ErrorMsg) ErrMsg(ErrorMsg)
Return Return
end end
end
******************************************* *******************************************
* Verify if all steps have been completed * * Verify if all steps have been completed *
@ -1965,7 +1960,3 @@ ClearForm:
return return

View File

@ -388,6 +388,7 @@ end service
// Looks for available Metrology files that are ready to be imported into the MES system. // Looks for available Metrology files that are ready to be imported into the MES system.
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
Service ImportMetrologyFiles(Machine) Service ImportMetrologyFiles(Machine)
If Machine NE '' then If Machine NE '' then
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS') hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
Lock hSysLists, ServiceKeyID:'*':Machine then Lock hSysLists, ServiceKeyID:'*':Machine then
@ -935,14 +936,8 @@ Service ImportBioRadData(RunData, FileName)
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSKeyID) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSKeyID)
If Error_Services('NoError') then If Error_Services('NoError') then
WorkOrderNo = RDSRec<RDS_WO$> WorkOrderNo = RDSRec<RDS_WO$>
// HgCV Project Development Code -------------------------------------------------------------------------------
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
If (DevelopmentFlag EQ True$) then
IsProdTest = ( Indexc(ScanRecipe, 'PROD', 1) GT 0 ) IsProdTest = ( Indexc(ScanRecipe, 'PROD', 1) GT 0 )
If IsProdTest EQ True$ then Metrology_Services('LogResults',RDSKeyID,Machine,'HgCV','Product test recognized. Recipe name: ':ScanRecipe) If IsProdTest EQ True$ then Metrology_Services('LogResults',RDSKeyID,Machine,'HgCV','Product test recognized. Recipe name: ':ScanRecipe)
end
// -------------------------------------------------------------------------------------------------------------
CassNo = RDSRec<RDS_CASS_NO$> CassNo = RDSRec<RDS_CASS_NO$>
WorkOrder = Work_Order_Services('GetWorkOrder', WorkOrderNo, False$) WorkOrder = Work_Order_Services('GetWorkOrder', WorkOrderNo, False$)
GoSub ParseWorkOrder GoSub ParseWorkOrder
@ -1289,13 +1284,8 @@ Service ImportCDEData(RunData, FileName)
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSKeyID) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSKeyID)
If Error_Services('NoError') then If Error_Services('NoError') then
// HgCV Project Development Code -------------------------------------------------------------------------------
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
If (DevelopmentFlag EQ True$) then
IsProdTest = ( Indexc(ScanRecipe, 'PROD', 1) GT 0 ) IsProdTest = ( Indexc(ScanRecipe, 'PROD', 1) GT 0 )
If IsProdTest EQ True$ then Metrology_Services('LogResults',RDSKeyID,Machine,'HgCV','Product test recognized. Recipe name: ':ScanRecipe) If IsProdTest EQ True$ then Metrology_Services('LogResults',RDSKeyID,Machine,'HgCV','Product test recognized. Recipe name: ':ScanRecipe)
end
// -------------------------------------------------------------------------------------------------------------
WorkOrderNo = RDSRec<RDS_WO$> WorkOrderNo = RDSRec<RDS_WO$>
CassNo = RDSRec<RDS_CASS_NO$> CassNo = RDSRec<RDS_CASS_NO$>
@ -3253,5 +3243,3 @@ LoadRunDataToDatabase:
return return

View File

@ -229,12 +229,6 @@ Service CalculateHgCVData(Datapoints)
Min = Min(Min, DataPoint) Min = Min(Min, DataPoint)
Max = Max(Max, DataPoint) Max = Max(Max, DataPoint)
// Edge Mean Delta // Edge Mean Delta
* If Index GE 6 AND Index LE 9 then
* Delta1 = Delta1 + DataPoint
* end
* If Index GE 2 AND Index LE 5 then
* Delta2 = Delta2 + DataPoint
* end
end end
// Range % // Range %
Locate Index in RangePoints using ',' setting unusedIndex then Locate Index in RangePoints using ',' setting unusedIndex then
@ -256,25 +250,15 @@ Service CalculateHgCVData(Datapoints)
EdgeMean4mm = Edge4mmSum / 4 EdgeMean4mm = Edge4mmSum / 4
EdgeMean10mm = Edge10mmSum / 4 EdgeMean10mm = Edge10mmSum / 4
If EdgeMean10mm GT 0 then If EdgeMean10mm GT 0 then
* Delta1Avg = Delta1/4
* Delta2Avg = Delta2/4
EdgeMeanDelta = ( (Edge4mmSum - Edge10mmSum) / Edge10mmSum) * 100 ; // Changed divisor to Delta2Avg to match SPC - DJS EdgeMeanDelta = ( (Edge4mmSum - Edge10mmSum) / Edge10mmSum) * 100 ; // Changed divisor to Delta2Avg to match SPC - DJS
// Range % // Range %
Range = RangeMax - RangeMin Range = RangeMax - RangeMin
NumRangePoints = DCount(RangePoints, ',') NumRangePoints = DCount(RangePoints, ',')
RangeAvg = RangeAvg / NumRangePoints RangeAvg = RangeAvg / NumRangePoints
RangePct = (Range / RangeAvg) * 100 RangePct = (Range / RangeAvg) * 100
* EdgeMeanDelta = OConv(IConv(EdgeMeanDelta, 'MD3L'), 'MD3L')
* RangePct = OConv(IConv(RangePct, 'MD3L'), 'MD3L')
end end
// Average
Average = Sum / NumDataPoints
* Average = OConv(IConv(Average, 'MD3L'), 'MD3L')
* Min = OConv(IConv(Min, 'MD3L'), 'MD3L')
* Max = OConv(IConv(Max, 'MD3L'), 'MD3L')
Average = Sum / NumDataPoints
FullAvg = '' FullAvg = ''
TotalDataPoints = DCount(DataPoints, @VM) TotalDataPoints = DCount(DataPoints, @VM)
If TotalDataPoints GT 0 then FullAvg = Sum(DataPoints)/DCount(DataPoints, @VM) If TotalDataPoints GT 0 then FullAvg = Sum(DataPoints)/DCount(DataPoints, @VM)
@ -361,10 +345,6 @@ Service PostROTRRequest(RDSNo)
If Flag EQ 0 then If Flag EQ 0 then
If RequestKeyID EQ '' then If RequestKeyID EQ '' then
WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X') WOMatKey = Xlate('RDS', RDSNo, 'WO_MAT_KEY', 'X')
FinalSigComp = False$
* FinalSigComp = Signature_Services('FinalSigComp', WOMatKey)
If FinalSigComp NE True$ then
// This is a new request
RequestDate = Date() RequestDate = Date()
RequestTime = Time() RequestTime = Time()
RequestKeyID = RDSNo:'*':RequestDate :'*':RequestTime RequestKeyID = RDSNo:'*':RequestDate :'*':RequestTime
@ -377,9 +357,6 @@ Service PostROTRRequest(RDSNo)
end else end else
ErrorMessage = Error_Services('GetMessage') ErrorMessage = Error_Services('GetMessage')
end end
end else
ErrorMessage = 'FQA signed for RDS ':RDSNo:' ignoring ROTR request.'
end
end else end else
ErrorMessage = 'Duplicate request found for RDS ':RDSNo:'. Request ignored.' ErrorMessage = 'Duplicate request found for RDS ':RDSNo:'. Request ignored.'
end end
@ -510,13 +487,6 @@ Service ProcessROTRRequest(RDSNo)
Swap @FM with ',' in ResponseCopy Swap @FM with ',' in ResponseCopy
LogData<3> = 'ROTR Status response: ':Response LogData<3> = 'ROTR Status response: ':Response
Logging_Services('AppendLog', objErrorLog, LogData, @RM, @FM) Logging_Services('AppendLog', objErrorLog, LogData, @RM, @FM)
* ROTRRec = ''
* ROTRRec<ROTR.REACTOR_STATUS$> = Response<1>
* ROTRRec<ROTR.REACTOR_STATUS_REASON$> = Response<2>
* ROTRRec<ROTR.REACTOR_NCR_COUNT$> = Response<3>
* ROTRRec<ROTR.REACTOR_ZERO_NCR_RUN_COUNT$> = Response<4>
* ROTRRec<ROTR.REACTOR_UCL_EXCEEDED_RUN_COUNT$> = Response<5>
* Database_Services('WriteDataRow', 'ROTR', LWICINo, ROTRRec, True$, False$, True$)
CIRec<CLEAN_INSP_ROTR_REACTOR_STATUS$> = Response<1> CIRec<CLEAN_INSP_ROTR_REACTOR_STATUS$> = Response<1>
CIRec<CLEAN_INSP_ROTR_REACTOR_STATUS_REASON$> = Response<2> CIRec<CLEAN_INSP_ROTR_REACTOR_STATUS_REASON$> = Response<2>
CIRec<CLEAN_INSP_ROTR_REACTOR_NCR_COUNT$> = Response<3> CIRec<CLEAN_INSP_ROTR_REACTOR_NCR_COUNT$> = Response<3>
@ -524,7 +494,6 @@ Service ProcessROTRRequest(RDSNo)
CIRec<CLEAN_INSP_ROTR_REACTOR_UCL_EXCEEDED_RUN_COUNT$> = Response<5> CIRec<CLEAN_INSP_ROTR_REACTOR_UCL_EXCEEDED_RUN_COUNT$> = Response<5>
// Set ROTR Update Flag to trigger CLEAN_INSP_ACTIONS routine (via BASE_MFS). // Set ROTR Update Flag to trigger CLEAN_INSP_ACTIONS routine (via BASE_MFS).
// That routine will recalculate the final ROTR status. // That routine will recalculate the final ROTR status.
* CIRec<CLEAN_INSP_ROTR_UPDATE_FLAG$> = True$
Database_Services('WriteDataRow', 'CLEAN_INSP', LWICINo, CIRec, True$, False$, True$) Database_Services('WriteDataRow', 'CLEAN_INSP', LWICINo, CIRec, True$, False$, True$)
end else end else
ErrorMessage = 'Error in service ':Service:'. Failed to retrieve ROTR status. Error message: ':Error_Services('GetMessage') ErrorMessage = 'Error in service ':Service:'. Failed to retrieve ROTR status. Error message: ':Error_Services('GetMessage')
@ -569,6 +538,7 @@ end service
// //
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
Service GetROTRStatus(RDSKey) Service GetROTRStatus(RDSKey)
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSKey) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSKey)
WONo = RDSRec<RDS_WO$> WONo = RDSRec<RDS_WO$>
RDSCassNo = RDSRec<RDS_CASS_NO$> RDSCassNo = RDSRec<RDS_CASS_NO$>
@ -1287,100 +1257,6 @@ Service ProcessWaferImageRequests()
end service end service
//----------------------------------------------------------------------------------------------------------------------
// ProcessWaferImageRequests
//
// Service that attempts to process all wafer map image requests. These requests are queued in the
// WAFER_IMAGE_REQUESTS table.
//----------------------------------------------------------------------------------------------------------------------
Service ProcessWaferImageRequestsOld()
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
Lock hSysLists, ServiceKeyID then
hWaferImageRequests = Database_Services('GetTableHandle', 'WAFER_IMAGE_REQUESTS')
If Error_Services('NoError') then
Sentence = 'SELECT WAFER_IMAGE_REQUESTS WITH RESPONSE_DATE EQ "" BY REQUEST_DATE BY REQUEST_TIME'
Set_Status(0)
RList(Sentence, TARGET_ACTIVELIST$, '', '', '')
EOF = False$
Loop
ReadNext RequestKeyID else EOF = True$
Until EOF
RequestDate = Field(RequestKeyID, '*', 1)
RequestTime = Field(RequestKeyID, '*', 2)
RequestTime = RequestTime / 86400
RequestTime = RequestTime[3, 5]
RequestDTM = RequestDate:'.':RequestTime
CurrDTM = Datetime()
TimeInQueue = CurrDTM - RequestDTM
If TimeInQueue LT 1 then
Lock hWaferImageRequests, RequestKeyID then
EncodedPDF = ''
ResponseBody = ''
RequestRow = Database_Services('ReadDataRow', 'WAFER_IMAGE_REQUESTS', RequestKeyID)
RDSNo = RequestRow<WAFER_IMAGE_REQUESTS.RDS_NO$>
WaferNo = RequestRow<WAFER_IMAGE_REQUESTS.WAFER_NO$>
TencorRecipe = RequestRow<WAFER_IMAGE_REQUESTS.TENCOR_RECIPE$>
ReturnPDF = RequestRow<WAFER_IMAGE_REQUESTS.RETURN_PDF$>
Reactor = Xlate('RDS', RDSNo, 'REACTOR', 'X')
PSN = Xlate('RDS', RDSNo, 'PROD_SPEC_ID', 'X')
// Format Wafer Number for SQL Query
WaferNo = TrimF(WaferNo)
If WaferNo < 10 then
WaferNo = '*0' : WaferNo
end else
WaferNo = '*' : WaferNo
end
Query = "DECLARE @RDS varchar(10) " |
: "DECLARE @RECIPE varchar(30) " |
: "DECLARE @WFRID varchar(10) " |
: "SET @RDS = '":RDSNo:"' " |
: "SET @RECIPE = '":TencorRecipe:"' " |
: "SET @WFRID = '":WaferNo:"' " |
: "SELECT child.AttachmentID " |
: "FROM Metrology.dbo.TencorRunHeader header " |
: "INNER JOIN Metrology.dbo.TencorRunData child on header.id = child.headerid " |
: "WHERE header.rds = @RDS and header.recipe like @RECIPE + '%' and child.slot = @WFRID " |
: "ORDER BY header.insertDate DESC, child.slot ASC"
WaferMapDB = Environment_Services('GetMetrologyProductionPath')
AttachmentID = SQL_Services('GetDataRows', 'SPC', Query)
AttachmentID = SRP_Trim(AttachmentID, 'FB', '{}')
WaferMapRoot = Environment_Services('GetWaferMapProductionPath')
PDFPath = WaferMapRoot:'\':AttachmentID:'\image.pdf'
Set_Status(0)
PDFFile = ''
OSRead PDFFile from PDFPath then
// "Cache" PDF on app server
QA_Services('PostToWaferImageQueue', RDSNo, WaferNo, TencorRecipe, PDFFile)
If ReturnPDF EQ True$ then
ResponseBody = SRP_Encode(PDFFile)
RequestRow<WAFER_IMAGE_REQUESTS.RESPONSE_BODY$> = ResponseBody
RequestRow<WAFER_IMAGE_REQUESTS.RESPONSE_DATE$> = Date()
RequestRow<WAFER_IMAGE_REQUESTS.RESPONSE_TIME$> = Time()
Database_Services('WriteDataRow', 'WAFER_IMAGE_REQUESTS', RequestKeyID, RequestRow, True$)
end else
Database_Services('DeleteDataRow', 'WAFER_IMAGE_REQUESTS', RequestKeyID, True$)
end
end else
ErrorCode = Status()
Error_Services('Add', 'Error retrieving wafer map image for AttachmentID ':AttachmentID)
end
Unlock hWaferImageRequests, RequestKeyID else Null
end
end else
// Delete request because wafer image may never become available.
Database_Services('DeleteDataRow', 'WAFER_IMAGE_REQUESTS', RequestKeyID, True$)
end
Repeat
end
Unlock hSysLists, ServiceKeyID else Null
end
end service
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
// PostToWaferImageQueue // PostToWaferImageQueue
// //
@ -1748,9 +1624,7 @@ Service ROTRImpactReport()
column = OleGetProperty( xlSht, 'Range' , 'K:K' ) column = OleGetProperty( xlSht, 'Range' , 'K:K' )
OlePutProperty( column , 'ColumnWidth' , '15' ) OlePutProperty( column , 'ColumnWidth' , '15' )
OlePutProperty( column , 'NumberFormat' , '0.0%' ) OlePutProperty( column , 'NumberFormat' , '0.0%' )
end end
end end
end service end service
@ -1962,8 +1836,6 @@ Service SignPreEpiStage(RDSNo, Username, WaferQty, Reactor, ScanEntry)
PreEpiSig = RDSRec<RDS_PRE_EPI_SIG$> PreEpiSig = RDSRec<RDS_PRE_EPI_SIG$>
ReactorType = Xlate('RDS', RDSNo, 'REACTOR_TYPE', 'X') ReactorType = Xlate('RDS', RDSNo, 'REACTOR_TYPE', 'X')
// Removing OI_SUPERUSER wrappers to alleviate signature issues. 11/18/19 djs
* IF MemberOf(Username, 'OI_SUPERUSER') THEN
IF ReactorType NE 'EPP' THEN IF ReactorType NE 'EPP' THEN
@ -1989,7 +1861,6 @@ Service SignPreEpiStage(RDSNo, Username, WaferQty, Reactor, ScanEntry)
SigTime = RDSRec<RDS_PRE_EPI_SIG_TIME$> SigTime = RDSRec<RDS_PRE_EPI_SIG_TIME$>
owmParms = WONo:@RM:CassNo:@RM:WOStep:@RM:'VER':@RM:RDSSig:@RM:SigDate:' ':SigTime owmParms = WONo:@RM:CassNo:@RM:WOStep:@RM:'VER':@RM:RDSSig:@RM:SigDate:' ':SigTime
* Sets VER signature * Sets VER signature
* obj_WO_Mat('SetSignature',owmParms)
errCode = '' errCode = ''
IF Get_Status(errCode) THEN IF Get_Status(errCode) THEN
ErrorMsg = 'Process Error: Error calling Obj_WO_Mat("SetSignature") within ':Service:'. Error code: ':errCode ErrorMsg = 'Process Error: Error calling Obj_WO_Mat("SetSignature") within ':Service:'. Error code: ':errCode
@ -2026,8 +1897,6 @@ Service SignPreEpiStage(RDSNo, Username, WaferQty, Reactor, ScanEntry)
END ;* End of check for Reactor Type END ;* End of check for Reactor Type
* END
SigDate = OCONV( Date(), 'D2/' ) SigDate = OCONV( Date(), 'D2/' )
SigTime = OCONV( Time(), 'MTS' ) SigTime = OCONV( Time(), 'MTS' )
@ -2040,7 +1909,6 @@ Service SignPreEpiStage(RDSNo, Username, WaferQty, Reactor, ScanEntry)
owmParms = WONo:@RM:CassNo:@RM:WOStep:@RM:'VER':@RM:Username:@RM:SigDate:' ':SigTime ;* Sets VER signature owmParms = WONo:@RM:CassNo:@RM:WOStep:@RM:'VER':@RM:Username:@RM:SigDate:' ':SigTime ;* Sets VER signature
* obj_WO_Mat('SetSignature',owmParms)
IF Get_Status(errCode) THEN IF Get_Status(errCode) THEN
ErrorMessage = 'Process Error: Error calling obj_WO_Mat("SetSignature"). Error code: ':errCode ErrorMessage = 'Process Error: Error calling obj_WO_Mat("SetSignature"). Error code: ':errCode
Error_Services('Set', ErrorMessage) Error_Services('Set', ErrorMessage)
@ -2205,18 +2073,9 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
return return
end end
//Added 8/18/2021 JRO - checks to make sure recipe limits aren't oos
* IF ParamOutOfSpec then
* IF Supplement NE True$ then
* ErrorMsg = 'Process Error: Recipe parameters are out of spec and no supplement has been set.'
* Error_Services('Set', ErrorMsg)
* Response = False$
* return
* end
* end
Locate True$ in ParamOutOfSpec using @VM setting oPos then Locate True$ in ParamOutOfSpec using @VM setting oPos then
IF Supplement NE True$ AND WONo NE '173485' then IF Supplement NE True$ then
ErrorMsg = 'Process Error: Recipe parameters are out of spec and no supplement has been set.' ErrorMsg = 'Process Error: Recipe parameters are out of spec and no supplement has been set.'
Error_Services('Set', ErrorMsg) Error_Services('Set', ErrorMsg)
Response = False$ Response = False$
@ -2230,13 +2089,6 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
return return
end end
* IF (ReactorType = 'ASM+' OR ReactorType = 'HTR') AND (LoadLockVal EQ '') THEN
* ErrorMsg = 'Process Error: Load Lock Side must be set to either Left or Right before signing.'
* Error_Services('Set', ErrorMsg)
* Response = False$
* return
* END
//Added JRO 3/16/2021 //Added JRO 3/16/2021
//Load Lock Required Check //Load Lock Required Check
LoadLockReq = Xlate('REACTOR', Reactor, REACTOR_PICK_PLACE$, 'X'); LoadLockReq = Xlate('REACTOR', Reactor, REACTOR_PICK_PLACE$, 'X');
@ -2310,8 +2162,6 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
Return Return
END END
* IF ReactorType NE 'EPP' THEN
If PreFlag EQ True$ then If PreFlag EQ True$ then
// PRE and LOAD stages are being signed together. This is usually because the operator is loading a reactor // PRE and LOAD stages are being signed together. This is usually because the operator is loading a reactor
// using the barcode scanner, which attempts to sign both stages at once to save time. // using the barcode scanner, which attempts to sign both stages at once to save time.
@ -2333,27 +2183,6 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
Return Return
end end
! Deprecated 11/20/2019
* Set_Status(0)
* obj_WO_Mat('CheckSigOrder',WONo:'*':CassNo:@RM:WOStep:'LOAD')
* IF Get_Status(errCode) THEN
* ErrorMsg = 'Process Error: Error calling obj_WO_Mat("CheckSigOrder"). Error code: ':errCode
* Error_Services('Set', ErrorMsg)
* Response = False$
* RETURN
* END
* END ;* End of check for Epi Pro
// Deprecated in favor of stage specific supplements
* SupplAckReq = Xlate('RDS', RDSNo, 'SUPPL_ACK_REQ', 'X')
* IF (SupplAckReq EQ True$) then
* ErrorMsg = 'The RDS Supplement must be acknowledged before the load operation can be signed.'
* Error_Services('Set', ErrorMsg)
* Response = False$
* Return
* END
SigDate = RDSRec<RDS_PRE_EPI_SIG_DATE$> SigDate = RDSRec<RDS_PRE_EPI_SIG_DATE$>
SigTime = RDSrec<RDS_PRE_EPI_SIG_TIME$> SigTime = RDSrec<RDS_PRE_EPI_SIG_TIME$>
PreCINo = Xlate('RDS', RDSNo, 'PRE_CI_NO', 'X') PreCINo = Xlate('RDS', RDSNo, 'PRE_CI_NO', 'X')
@ -2400,7 +2229,9 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
end service end service
Service LoadExtra1stReady(RDSNo) Service LoadExtra1stReady(RDSNo)
Response = False$ Response = False$
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$> StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
@ -2412,9 +2243,12 @@ Service LoadExtra1stReady(RDSNo)
If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature EQ '' And LoadExtra2Signature EQ ''AND UnloadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature EQ '' And LoadExtra2Signature EQ ''AND UnloadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
Response = True$ Response = True$
end end
end service end service
Service UnsignLoadExtra1stReady(RDSNo) Service UnsignLoadExtra1stReady(RDSNo)
Response = False$ Response = False$
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$> StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
@ -2431,7 +2265,9 @@ Service UnsignLoadExtra1stReady(RDSNo)
end service end service
Service LoadExtra2ndReady(RDSNo) Service LoadExtra2ndReady(RDSNo)
Response = False$ Response = False$
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$> StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
@ -2443,9 +2279,12 @@ Service LoadExtra2ndReady(RDSNo)
If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature NE '' AND UnloadExtra2Signature NE '' And LoadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature NE '' AND UnloadExtra2Signature NE '' And LoadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
Response = True$ Response = True$
end end
end service end service
Service UnsignLoadExtra2ndReady(RDSNo) Service UnsignLoadExtra2ndReady(RDSNo)
Response = False$ Response = False$
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$> StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
@ -2459,8 +2298,10 @@ Service UnsignLoadExtra2ndReady(RDSNo)
Response = True$ Response = True$
end end
end end
end service end service
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
// SignLoadStage // SignLoadStage
// //
@ -2745,10 +2586,6 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
end end
ReactorType = XLATE('RDS',RDSNo,'REACTOR_TYPE','X') ReactorType = XLATE('RDS',RDSNo,'REACTOR_TYPE','X')
* IF ReactorType NE 'EPP' THEN
If ReactorType EQ 'EPP' then If ReactorType EQ 'EPP' then
WOMatKey = '' WOMatKey = ''
end else end else
@ -2761,24 +2598,6 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
return return
end end
* END ELSE
*
* ReactRunRec = XLATE('REACT_RUN',RDSNo,'','X')
* LOCATE 'LWI' IN ReactRunRec<REACT_RUN_CI_STAGE$> USING @VM SETTING Pos THEN
* CINo = ReactRunRec<REACT_RUN_CI_NO$>
* Actions = obj_Clean_Insp('GetActions',CINo)
* LOCATE 'Inspection' IN Actions<ACTION$ACTIONS> USING @FM SETTING Pos THEN
* IF Actions<ACTION$SIGS,1> = '' THEN
* ErrorMsg = 'Process Error: A Wafer Inspection is required and has not been completed.'
* Error_Services('Set', ErrorMsg)
* Response = False$
* return
* END
* END
* END
*
* END ;* End of check for EpiPRO (EPP) reactor type
LWIInstAckReq = Xlate('RDS', RDSNo, 'LWI_INST_ACK_REQ', 'X') LWIInstAckReq = Xlate('RDS', RDSNo, 'LWI_INST_ACK_REQ', 'X')
If LWIInstAckReq EQ True$ then If LWIInstAckReq EQ True$ then
ErrorMsg = 'The LWI stage engineering instructions must be acknowledged before the load operation can be signed.' ErrorMsg = 'The LWI stage engineering instructions must be acknowledged before the load operation can be signed.'
@ -2795,7 +2614,6 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
return return
end end
! Todo: We will have to define special logic for the barcode application to handle extra loads and unloads.
* Check for extra unloads without corresponding extra load * Check for extra unloads without corresponding extra load
IF RDSRec<RDS_OP_OUT_EX1_DATE$> <> '' THEN IF RDSRec<RDS_OP_OUT_EX1_DATE$> <> '' THEN
IF RDSRec<RDS_OP_IN_EX2_DATE$> = '' THEN IF RDSRec<RDS_OP_IN_EX2_DATE$> = '' THEN
@ -2867,7 +2685,9 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
end service end service
Service UnloadExtra1stReady(RDSNo) Service UnloadExtra1stReady(RDSNo)
Response = False$ Response = False$
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$> StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
@ -2879,9 +2699,12 @@ Service UnloadExtra1stReady(RDSNo)
If StandardLoadSignature NE '' AND UnloadExtra1Signature EQ '' AND LoadExtra1Signature EQ '' AND UnloadExtra2Signature EQ '' And LoadExtra2Signature eq '' and StandardUnloadSignature EQ '' then If StandardLoadSignature NE '' AND UnloadExtra1Signature EQ '' AND LoadExtra1Signature EQ '' AND UnloadExtra2Signature EQ '' And LoadExtra2Signature eq '' and StandardUnloadSignature EQ '' then
Response = True$ Response = True$
end end
end service end service
Service UnloadExtra2ndReady(RDSNo) Service UnloadExtra2ndReady(RDSNo)
Response = False$ Response = False$
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$> StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
@ -2893,9 +2716,12 @@ Service UnloadExtra2ndReady(RDSNo)
If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature NE '' And LoadExtra2Signature EQ ''AND UnloadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then If StandardLoadSignature NE '' AND UnloadExtra1Signature NE '' AND LoadExtra1Signature NE '' And LoadExtra2Signature EQ ''AND UnloadExtra2Signature EQ '' and StandardUnloadSignature EQ '' then
Response = True$ Response = True$
end end
end service end service
Service UnsignUnloadExtra1stReady(RDSNo) Service UnsignUnloadExtra1stReady(RDSNo)
Response = False$ Response = False$
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$> StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
@ -2912,7 +2738,9 @@ Service UnsignUnloadExtra1stReady(RDSNo)
end service end service
Service UnsignUnloadExtra2ndReady(RDSNo) Service UnsignUnloadExtra2ndReady(RDSNo)
Response = False$ Response = False$
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$> StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
@ -2926,6 +2754,7 @@ Service UnsignUnloadExtra2ndReady(RDSNo)
Response = True$ Response = True$
end end
end end
end service end service
@ -3012,7 +2841,6 @@ Service SignUnloadStage(RDSNo, Username, ScanEntry)
* 4/30/2013 JCH added parms for merging of two methods * 4/30/2013 JCH added parms for merging of two methods
owmParms = WONo:@RM:CassNo:@RM:WOStep:@RM:'UNLOAD':@RM:Username:@RM:SigDt:' ':SigTm:@RM:ReactID:@RM:ReactWH:@RM:ReactLoc:@RM:Tag owmParms = WONo:@RM:CassNo:@RM:WOStep:@RM:'UNLOAD':@RM:Username:@RM:SigDt:' ':SigTm:@RM:ReactID:@RM:ReactWH:@RM:ReactLoc:@RM:Tag
* obj_WO_Mat('SetSignature',owmParms)
IF Get_Status(errCode) THEN IF Get_Status(errCode) THEN
ErrorMsg = 'Process Error: Error calling Obj_WO_Mat("SetSignature") within the ':Service:' service' ErrorMsg = 'Process Error: Error calling Obj_WO_Mat("SetSignature") within the ':Service:' service'
@ -3046,9 +2874,6 @@ Service SignUnloadStage(RDSNo, Username, ScanEntry)
obj_React_Status('CassUnload',Reactor:@RM:WONo:@RM:CassNo:@RM:UnloadDTM:@RM:RDSNo) obj_React_Status('CassUnload',Reactor:@RM:WONo:@RM:CassNo:@RM:UnloadDTM:@RM:RDSNo)
IF Get_Status(errCode) THEN IF Get_Status(errCode) THEN
* ErrorMsg = 'Process Error: Error calling Obj_React_Status("CassUnload") within the ':Service:' service'
* Error_Services('Add', ErrorMsg)
* Response = False$
LogData = '' LogData = ''
LogData<1> = LoggingDTM LogData<1> = LoggingDTM
LogData<2> = @User4 LogData<2> = @User4
@ -3064,7 +2889,6 @@ Service SignUnloadStage(RDSNo, Username, ScanEntry)
InCassettes = RDSRec<RDS_IN_CASS_NO$> InCassettes = RDSRec<RDS_IN_CASS_NO$>
InCassettes = SRP_Array('Clean', InCassettes, 'TrimAndMakeUnique', @VM) InCassettes = SRP_Array('Clean', InCassettes, 'TrimAndMakeUnique', @VM)
obj_React_Status('ReactorUnload',Reactor:@RM:WONo:@RM:InCassettes:@RM:UnloadDTM:@RM:RDSNo) obj_React_Status('ReactorUnload',Reactor:@RM:WONo:@RM:InCassettes:@RM:UnloadDTM:@RM:RDSNo)
//Reactor_Services('IncrementWfrMetrics', RDSNo)
end end
RDSRec<RDS_OPERATOR_OUT$> = SigBy RDSRec<RDS_OPERATOR_OUT$> = SigBy
@ -3471,97 +3295,9 @@ Service SignFQAStage(RDSNo, Username)
NEXT Index NEXT Index
END END
**********************************************
* Verify the FlatFinder information *
**********************************************
EpiPartNo = {EPI_PART_NO}
WaferSize = Xlate('EPI_PART', EpiPartNo, 'SUB_WAFER_SIZE', 'X')
WaferSizeInch = Field(WaferSize, ' ', 3, 1)
CustNo = {CUST_NO}
CompanyRow = Xlate('COMPANY', CustNo, '', 'X')
WafersOut = {WFRS_OUT}
Begin Case
Case WaferSizeInch = '6'
WaferFlatSizeInches = CompanyRow<COMPANY_WAFER_FLAT_WAFER_SIZE_INCH$>
WaferFlatLengthMins = Oconv(CompanyRow<COMPANY_WAFER_FLAT_LENGTH_MIN$>, 'MD1')
WaferFlatLengthMaxes = Oconv(CompanyRow<COMPANY_WAFER_FLAT_LENGTH_MAX$>, 'MD1')
Locate WaferSizeInch in WaferFlatSizeInches using @VM setting vPos then
WaferFlatLengthMin = WaferFlatLengthMins<0, vPos>
WaferFlatLengthMax = WaferFlatLengthMaxes<0, vPos>
end else
WaferFlatLengthMin = ''
WaferFlatLengthMax = ''
end
// Get FlatFinder Read Value
* FlatFinderWafersQty = {FLATFINDER_WAFER_CNT}
FlatFinderWaferLength = {FLATFINDER_FLAT_LENGTH}
***************************************
* FlatFinder - Wafers Quatity Section *
***************************************
* If (FlatFinderWafersQty NE '') then
* If (FlatFinderWafersQty NE WafersOut) then
* ErrorMsg = 'Unable to sign FQA because Flat Finder and Wafers Out quantities do not match.'
* Error_Services('Add', ErrorMsg)
* return
* end
* end else
* ErrorMsg = 'Unable to sign FQA because the Flat Finder quantity is missing.'
* Error_Services('Add', ErrorMsg)
* return
* end
************************************
* FlatFinder - Flat Length Section *
************************************
If (WaferFlatLengthMin NE '') AND (WaferFlatLengthMax NE '') then
If (FlatFinderWaferLength NE '') then
If (FlatFinderWaferLength GE WaferFlatLengthMin) AND (FlatFinderWaferLength LE WaferFlatLengthMax) then
end else
ErrorMsg = 'Unable to sign FQA because Flat Finder wafer lengths are out of bounds.'
Error_Services('Add', ErrorMsg)
return
end
end else
ErrorMsg = 'Unable to sign FQA because the Flat Finder wafer length is missing.'
Error_Services('Add', ErrorMsg)
return
end
end
Case WaferSizeInch = '8'
// Get NotchFinder Read Value
* NotchFinderWafersQty = {FLATFINDER_WAFER_CNT}
*
* ***************************************
* * NotchFinder - Wafers Quatity Section *
* ***************************************
* If (NotchFinderWafersQty NE '') then
* If (NotchFinderWafersQty NE WafersOut) then
* ErrorMsg = 'Unable to sign FQA because Notch Finder and Wafers Out quantities do not match.'
* Error_Services('Add', ErrorMsg)
* return
* end
* end else
* ErrorMsg = 'Unable to sign FQA because the Notch Finder quantity is missing.'
* Error_Services('Add', ErrorMsg)
* return
* end
Case 1
End Case
************************* *************************
* Verify Wafer Quantity * * Verify Wafer Quantity *
************************* *************************
! The barcode application will need to inform the user that an override is required. We will return an error for
! now. Once the user is informed, a LEAD or SUPERVISOR can scan their badge to override and complete the scan.
CassSchedWafers = {CASS_SHIP_QTY} CassSchedWafers = {CASS_SHIP_QTY}
WafersOut = {WFRS_OUT} WafersOut = {WFRS_OUT}
@ -3581,13 +3317,9 @@ Service SignFQAStage(RDSNo, Username)
end end
********************************* *********************************
* Verify NCR total >= USL Fails * * Verify NCR total >= USL Fails *
********************************* *********************************
! The barcode application will need to inform the user that an override is required. We will return an error for
! now. Once the user is informed, a LEAD or SUPERVISOR can scan their badge to override and complete the scan.
If Username EQ 'FRANCOIS_R' then
NCRStatus = QA_Services('GetNCRStatus', RDSNo) NCRStatus = QA_Services('GetNCRStatus', RDSNo)
If NCRStatus EQ False$ then If NCRStatus EQ False$ then
If NOT( MemberOf(Username, 'LEAD') OR MemberOf(Username, 'SUPERVISOR') ) then If NOT( MemberOf(Username, 'LEAD') OR MemberOf(Username, 'SUPERVISOR') ) then
@ -3597,7 +3329,6 @@ Service SignFQAStage(RDSNo, Username)
return return
end end
end end
end
************************* *************************
* Verify if Shift exist * * Verify if Shift exist *
@ -3659,9 +3390,8 @@ Service SignFQAStage(RDSNo, Username)
Next Test Next Test
****************************************** ******************************************
* Verify Unload Stage QA Metrology Tests * On hold until approved for release to production * Verify Unload Stage QA Metrology Tests *
****************************************** ******************************************
If Username EQ 'FRANCOIS_R' then
WONo = {WO} WONo = {WO}
CassNo = {CASS_NO} CassNo = {CASS_NO}
WOMatQAKey = WONo : '*' : CassNo WOMatQAKey = WONo : '*' : CassNo
@ -3673,7 +3403,6 @@ Service SignFQAStage(RDSNo, Username)
Error_Services('Add', ErrorMsg) Error_Services('Add', ErrorMsg)
return return
end end
end
******************************************* *******************************************
* Verify if all steps have been completed * * Verify if all steps have been completed *
@ -3746,8 +3475,6 @@ Service SignFQAStage(RDSNo, Username)
;* 4/30/2013 JCH added parms for merging of two methods ;* 4/30/2013 JCH added parms for merging of two methods
owmParms = WONo:@RM:CassNo:@RM:WOStep:@RM:'QA':@RM:Username:@RM:SigDt:' ':SigTm:@RM:ToolID:@RM:WHCd:@RM:LocCd:@RM:Tag owmParms = WONo:@RM:CassNo:@RM:WOStep:@RM:'QA':@RM:Username:@RM:SigDt:' ':SigTm:@RM:ToolID:@RM:WHCd:@RM:LocCd:@RM:Tag
* obj_WO_Mat('SetSignature',owmParms) ; * * * * * S I G N A T U R E * * * * * *
IF Get_Status(errCode) THEN IF Get_Status(errCode) THEN
ErrorMsg = 'Error calling Obj_WO_Mat("SetSignature") within ':Service:'. Error code: ':errCode ErrorMsg = 'Error calling Obj_WO_Mat("SetSignature") within ':Service:'. Error code: ':errCode
Error_Services('Add', ErrorMsg) Error_Services('Add', ErrorMsg)

View File

@ -254,8 +254,6 @@ Event SIGN_BUTTON.CLICK()
end end
RDSNo = Get_Property(@Window : '.RDS_NO','DEFPROP') RDSNo = Get_Property(@Window : '.RDS_NO','DEFPROP')
WCCheckEnabled = Xlate('APP_INFO', 'WAFER_COUNTER_CHECK', '', 'X')
If WCCheckEnabled then
**************************************** ****************************************
* Verify the Wafer Counter information * * Verify the Wafer Counter information *
**************************************** ****************************************
@ -274,7 +272,6 @@ Event SIGN_BUTTON.CLICK()
ErrMsg('Unable to sign FQA because the Wafer Counter quantity is missing.') ErrMsg('Unable to sign FQA because the Wafer Counter quantity is missing.')
RETURN 0 RETURN 0
end end
end
*********************************** ***********************************
* Verify Scheduled Wafer Quantity * * Verify Scheduled Wafer Quantity *
@ -446,10 +443,6 @@ Event SIGN_BUTTON.CLICK()
****************************************** ******************************************
* Verify Unload Stage QA Metrology Tests * * Verify Unload Stage QA Metrology Tests *
****************************************** ******************************************
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
If (DevelopmentFlag EQ True$) then
WONo = Get_Property(@WINDOW:'.WO','DEFPROP') WONo = Get_Property(@WINDOW:'.WO','DEFPROP')
CassNo = Get_Property(@WINDOW:'.CASS_NO','DEFPROP') CassNo = Get_Property(@WINDOW:'.CASS_NO','DEFPROP')
WOMatQAKey = WONo : '*' : CassNo WOMatQAKey = WONo : '*' : CassNo
@ -465,7 +458,6 @@ Event SIGN_BUTTON.CLICK()
ErrMsg(ErrorMsg) ErrMsg(ErrorMsg)
Return Return
end end
end
******************************************* *******************************************
* Verify if all steps have been completed * * Verify if all steps have been completed *

View File

@ -2010,8 +2010,6 @@ Service QASigReady(RDSNo)
* Verify Unload Stage QA Metrology Tests * * Verify Unload Stage QA Metrology Tests *
****************************************** ******************************************
If ErrorMessage EQ '' then If ErrorMessage EQ '' then
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
If (DevelopmentFlag EQ True$) then
WOMatQAKey = WOMatKey WOMatQAKey = WOMatKey
WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAKey) WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAKey)
OutOfSpec = WOMatQARec<WO_MAT_QA_OUT_OF_SPEC$> OutOfSpec = WOMatQARec<WO_MAT_QA_OUT_OF_SPEC$>
@ -2024,7 +2022,6 @@ Service QASigReady(RDSNo)
Next FailReason Next FailReason
end end
end end
end
************************************************************************ ************************************************************************
* Prompt user to validate the Process Specification Stage Instructions * * Prompt user to validate the Process Specification Stage Instructions *
@ -2844,4 +2841,3 @@ GetMostRecentSig:
return return