removed dead code
This commit is contained in:
parent
16c7bc6926
commit
803f946c7e
@ -582,10 +582,6 @@ Refresh:
|
||||
|
||||
If @WINDOW EQ 'RDS_UNLOAD' then
|
||||
|
||||
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
|
||||
|
||||
If (DevelopmentFlag EQ True$) then
|
||||
|
||||
CtrlName = @WINDOW:'.EDT_QA_MET'
|
||||
Set_Property(@Window : '.MET_TEST', 'VISIBLE', False$)
|
||||
Set_Property(CtrlName, 'VISIBLE', True$)
|
||||
@ -709,42 +705,6 @@ Refresh:
|
||||
END ELSE
|
||||
Set_Property(@WINDOW:'.CLEAR_EPI_UNLOAD','VISIBLE',0)
|
||||
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 of check for Unload OR Post_Epi windows
|
||||
|
||||
@ -2669,9 +2629,8 @@ MetTestDC:
|
||||
Lines = Get_Property(@WINDOW:'.MET_TEST', 'LIST')
|
||||
TestLine = Lines<CurrRow>
|
||||
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' ; Props := 'LIST'
|
||||
end else
|
||||
@ -2708,8 +2667,7 @@ MetTestDC:
|
||||
BEGIN CASE
|
||||
CASE MetTest EQ ''
|
||||
Null
|
||||
|
||||
CASE (@WINDOW = 'RDS_UNLOAD') and (DevelopmentFlag EQ True$) and (LWRHOTest EQ False$)
|
||||
CASE (@WINDOW = 'RDS_UNLOAD') and (LWRHOTest EQ False$)
|
||||
ReturnVal = Dialog_Box('NDW_QA_MET_RESULT', @WINDOW, CassID)
|
||||
Send_Event(@Window, "READ")
|
||||
CASE Otherwise$
|
||||
@ -2863,9 +2821,6 @@ return
|
||||
|
||||
RefreshWaferCounterData:
|
||||
|
||||
WCCheckEnabled = Xlate('APP_INFO', 'WAFER_COUNTER_CHECK', '', 'X')
|
||||
If WCCheckEnabled then
|
||||
|
||||
Set_Property(@Window:'.LBL_WAFER_COUNTER_QTY', 'VISIBLE', True$)
|
||||
Set_Property(@Window:'.EDL_WAFER_COUNTER_QTY', 'VISIBLE', True$)
|
||||
QtyBackColor = GREEN$
|
||||
@ -2908,12 +2863,5 @@ RefreshWaferCounterData:
|
||||
end
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
@ -1107,9 +1107,6 @@ SignSupVer:
|
||||
END
|
||||
END
|
||||
|
||||
WCCheckEnabled = Xlate('APP_INFO', 'WAFER_COUNTER_CHECK', '', 'X')
|
||||
If WCCheckEnabled then
|
||||
|
||||
****************************************
|
||||
* Verify the Wafer Counter information *
|
||||
****************************************
|
||||
@ -1129,7 +1126,6 @@ SignSupVer:
|
||||
ErrMsg('Unable to sign FQA because the Wafer Counter quantity is missing.')
|
||||
RETURN 0
|
||||
end
|
||||
end
|
||||
|
||||
**************************
|
||||
* Verify user's password *
|
||||
@ -2294,9 +2290,6 @@ return
|
||||
|
||||
RefreshWaferCounterData:
|
||||
|
||||
WCCheckEnabled = Xlate('APP_INFO', 'WAFER_COUNTER_CHECK', '', 'X')
|
||||
If WCCheckEnabled then
|
||||
|
||||
Set_Property(@Window:'.LBL_WAFER_COUNTER_QTY', 'VISIBLE', True$)
|
||||
Set_Property(@Window:'.EDL_WAFER_COUNTER_QTY', 'VISIBLE', True$)
|
||||
QtyBackColor = GREEN$
|
||||
@ -2341,10 +2334,5 @@ RefreshWaferCounterData:
|
||||
|
||||
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
|
||||
|
||||
|
@ -881,10 +881,6 @@ Event SIGN_BUTTON.CLICK()
|
||||
******************************************
|
||||
* Verify Unload Stage QA Metrology Tests *
|
||||
******************************************
|
||||
|
||||
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
|
||||
|
||||
If (DevelopmentFlag EQ True$) then
|
||||
WOMatQAKey = WONo : '*' : CassNo
|
||||
WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAKey)
|
||||
OutOfSpec = WOMatQARec<WO_MAT_QA_OUT_OF_SPEC$>
|
||||
@ -898,7 +894,6 @@ Event SIGN_BUTTON.CLICK()
|
||||
ErrMsg(ErrorMsg)
|
||||
Return
|
||||
end
|
||||
end
|
||||
|
||||
*******************************************
|
||||
* Verify if all steps have been completed *
|
||||
@ -1965,7 +1960,3 @@ ClearForm:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -388,6 +388,7 @@ end service
|
||||
// Looks for available Metrology files that are ready to be imported into the MES system.
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
Service ImportMetrologyFiles(Machine)
|
||||
|
||||
If Machine NE '' then
|
||||
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
|
||||
Lock hSysLists, ServiceKeyID:'*':Machine then
|
||||
@ -935,14 +936,8 @@ Service ImportBioRadData(RunData, FileName)
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSKeyID)
|
||||
If Error_Services('NoError') then
|
||||
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 )
|
||||
If IsProdTest EQ True$ then Metrology_Services('LogResults',RDSKeyID,Machine,'HgCV','Product test recognized. Recipe name: ':ScanRecipe)
|
||||
end
|
||||
// -------------------------------------------------------------------------------------------------------------
|
||||
CassNo = RDSRec<RDS_CASS_NO$>
|
||||
WorkOrder = Work_Order_Services('GetWorkOrder', WorkOrderNo, False$)
|
||||
GoSub ParseWorkOrder
|
||||
@ -1289,13 +1284,8 @@ Service ImportCDEData(RunData, FileName)
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSKeyID)
|
||||
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 )
|
||||
If IsProdTest EQ True$ then Metrology_Services('LogResults',RDSKeyID,Machine,'HgCV','Product test recognized. Recipe name: ':ScanRecipe)
|
||||
end
|
||||
// -------------------------------------------------------------------------------------------------------------
|
||||
|
||||
WorkOrderNo = RDSRec<RDS_WO$>
|
||||
CassNo = RDSRec<RDS_CASS_NO$>
|
||||
@ -3253,5 +3243,3 @@ LoadRunDataToDatabase:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
@ -229,12 +229,6 @@ Service CalculateHgCVData(Datapoints)
|
||||
Min = Min(Min, DataPoint)
|
||||
Max = Max(Max, DataPoint)
|
||||
// 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
|
||||
// Range %
|
||||
Locate Index in RangePoints using ',' setting unusedIndex then
|
||||
@ -256,25 +250,15 @@ Service CalculateHgCVData(Datapoints)
|
||||
EdgeMean4mm = Edge4mmSum / 4
|
||||
EdgeMean10mm = Edge10mmSum / 4
|
||||
If EdgeMean10mm GT 0 then
|
||||
* Delta1Avg = Delta1/4
|
||||
* Delta2Avg = Delta2/4
|
||||
EdgeMeanDelta = ( (Edge4mmSum - Edge10mmSum) / Edge10mmSum) * 100 ; // Changed divisor to Delta2Avg to match SPC - DJS
|
||||
|
||||
// Range %
|
||||
Range = RangeMax - RangeMin
|
||||
NumRangePoints = DCount(RangePoints, ',')
|
||||
RangeAvg = RangeAvg / NumRangePoints
|
||||
RangePct = (Range / RangeAvg) * 100
|
||||
|
||||
* EdgeMeanDelta = OConv(IConv(EdgeMeanDelta, 'MD3L'), 'MD3L')
|
||||
* RangePct = OConv(IConv(RangePct, 'MD3L'), 'MD3L')
|
||||
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 = ''
|
||||
TotalDataPoints = 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 RequestKeyID EQ '' then
|
||||
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()
|
||||
RequestTime = Time()
|
||||
RequestKeyID = RDSNo:'*':RequestDate :'*':RequestTime
|
||||
@ -377,9 +357,6 @@ Service PostROTRRequest(RDSNo)
|
||||
end else
|
||||
ErrorMessage = Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrorMessage = 'FQA signed for RDS ':RDSNo:' ignoring ROTR request.'
|
||||
end
|
||||
end else
|
||||
ErrorMessage = 'Duplicate request found for RDS ':RDSNo:'. Request ignored.'
|
||||
end
|
||||
@ -510,13 +487,6 @@ Service ProcessROTRRequest(RDSNo)
|
||||
Swap @FM with ',' in ResponseCopy
|
||||
LogData<3> = 'ROTR Status response: ':Response
|
||||
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_REASON$> = Response<2>
|
||||
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>
|
||||
// Set ROTR Update Flag to trigger CLEAN_INSP_ACTIONS routine (via BASE_MFS).
|
||||
// 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$)
|
||||
end else
|
||||
ErrorMessage = 'Error in service ':Service:'. Failed to retrieve ROTR status. Error message: ':Error_Services('GetMessage')
|
||||
@ -569,6 +538,7 @@ end service
|
||||
//
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
Service GetROTRStatus(RDSKey)
|
||||
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSKey)
|
||||
WONo = RDSRec<RDS_WO$>
|
||||
RDSCassNo = RDSRec<RDS_CASS_NO$>
|
||||
@ -1287,100 +1257,6 @@ Service ProcessWaferImageRequests()
|
||||
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
|
||||
//
|
||||
@ -1748,9 +1624,7 @@ Service ROTRImpactReport()
|
||||
column = OleGetProperty( xlSht, 'Range' , 'K:K' )
|
||||
OlePutProperty( column , 'ColumnWidth' , '15' )
|
||||
OlePutProperty( column , 'NumberFormat' , '0.0%' )
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end service
|
||||
@ -1962,8 +1836,6 @@ Service SignPreEpiStage(RDSNo, Username, WaferQty, Reactor, ScanEntry)
|
||||
|
||||
PreEpiSig = RDSRec<RDS_PRE_EPI_SIG$>
|
||||
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
|
||||
|
||||
@ -1989,7 +1861,6 @@ Service SignPreEpiStage(RDSNo, Username, WaferQty, Reactor, ScanEntry)
|
||||
SigTime = RDSRec<RDS_PRE_EPI_SIG_TIME$>
|
||||
owmParms = WONo:@RM:CassNo:@RM:WOStep:@RM:'VER':@RM:RDSSig:@RM:SigDate:' ':SigTime
|
||||
* Sets VER signature
|
||||
* obj_WO_Mat('SetSignature',owmParms)
|
||||
errCode = ''
|
||||
IF Get_Status(errCode) THEN
|
||||
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
|
||||
|
||||
SigDate = OCONV( Date(), 'D2/' )
|
||||
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
|
||||
|
||||
* obj_WO_Mat('SetSignature',owmParms)
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrorMessage = 'Process Error: Error calling obj_WO_Mat("SetSignature"). Error code: ':errCode
|
||||
Error_Services('Set', ErrorMessage)
|
||||
@ -2205,18 +2073,9 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
|
||||
return
|
||||
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
|
||||
|
||||
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.'
|
||||
Error_Services('Set', ErrorMsg)
|
||||
Response = False$
|
||||
@ -2230,13 +2089,6 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
|
||||
return
|
||||
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
|
||||
//Load Lock Required Check
|
||||
LoadLockReq = Xlate('REACTOR', Reactor, REACTOR_PICK_PLACE$, 'X');
|
||||
@ -2310,8 +2162,6 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
|
||||
Return
|
||||
END
|
||||
|
||||
* IF ReactorType NE 'EPP' THEN
|
||||
|
||||
If PreFlag EQ True$ then
|
||||
// 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.
|
||||
@ -2333,27 +2183,6 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
|
||||
Return
|
||||
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$>
|
||||
SigTime = RDSrec<RDS_PRE_EPI_SIG_TIME$>
|
||||
PreCINo = Xlate('RDS', RDSNo, 'PRE_CI_NO', 'X')
|
||||
@ -2400,7 +2229,9 @@ Service LoadSignatureReady(RDSNo, Username, WaferQty, LLSide, PreFlag, ReactNoOp
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service LoadExtra1stReady(RDSNo)
|
||||
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
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
|
||||
Response = True$
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UnsignLoadExtra1stReady(RDSNo)
|
||||
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
@ -2431,7 +2265,9 @@ Service UnsignLoadExtra1stReady(RDSNo)
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service LoadExtra2ndReady(RDSNo)
|
||||
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
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
|
||||
Response = True$
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UnsignLoadExtra2ndReady(RDSNo)
|
||||
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
@ -2459,8 +2298,10 @@ Service UnsignLoadExtra2ndReady(RDSNo)
|
||||
Response = True$
|
||||
end
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// SignLoadStage
|
||||
//
|
||||
@ -2745,10 +2586,6 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
|
||||
end
|
||||
ReactorType = XLATE('RDS',RDSNo,'REACTOR_TYPE','X')
|
||||
|
||||
|
||||
* IF ReactorType NE 'EPP' THEN
|
||||
|
||||
|
||||
If ReactorType EQ 'EPP' then
|
||||
WOMatKey = ''
|
||||
end else
|
||||
@ -2761,24 +2598,6 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
|
||||
return
|
||||
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')
|
||||
If LWIInstAckReq EQ True$ then
|
||||
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
|
||||
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
|
||||
IF RDSRec<RDS_OP_OUT_EX1_DATE$> <> '' THEN
|
||||
IF RDSRec<RDS_OP_IN_EX2_DATE$> = '' THEN
|
||||
@ -2867,7 +2685,9 @@ Service UnloadSignatureReady(RDSNo, Username, Reactor)
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UnloadExtra1stReady(RDSNo)
|
||||
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
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
|
||||
Response = True$
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UnloadExtra2ndReady(RDSNo)
|
||||
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
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
|
||||
Response = True$
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UnsignUnloadExtra1stReady(RDSNo)
|
||||
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
@ -2912,7 +2738,9 @@ Service UnsignUnloadExtra1stReady(RDSNo)
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UnsignUnloadExtra2ndReady(RDSNo)
|
||||
|
||||
Response = False$
|
||||
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||
StandardLoadSignature = RDSRec<RDS_OPERATOR_IN$>
|
||||
@ -2926,6 +2754,7 @@ Service UnsignUnloadExtra2ndReady(RDSNo)
|
||||
Response = True$
|
||||
end
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
@ -3012,7 +2841,6 @@ Service SignUnloadStage(RDSNo, Username, ScanEntry)
|
||||
|
||||
* 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
|
||||
* obj_WO_Mat('SetSignature',owmParms)
|
||||
|
||||
IF Get_Status(errCode) THEN
|
||||
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)
|
||||
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<1> = LoggingDTM
|
||||
LogData<2> = @User4
|
||||
@ -3064,7 +2889,6 @@ Service SignUnloadStage(RDSNo, Username, ScanEntry)
|
||||
InCassettes = RDSRec<RDS_IN_CASS_NO$>
|
||||
InCassettes = SRP_Array('Clean', InCassettes, 'TrimAndMakeUnique', @VM)
|
||||
obj_React_Status('ReactorUnload',Reactor:@RM:WONo:@RM:InCassettes:@RM:UnloadDTM:@RM:RDSNo)
|
||||
//Reactor_Services('IncrementWfrMetrics', RDSNo)
|
||||
end
|
||||
|
||||
RDSRec<RDS_OPERATOR_OUT$> = SigBy
|
||||
@ -3471,97 +3295,9 @@ Service SignFQAStage(RDSNo, Username)
|
||||
NEXT Index
|
||||
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 *
|
||||
*************************
|
||||
! 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}
|
||||
WafersOut = {WFRS_OUT}
|
||||
|
||||
@ -3581,13 +3317,9 @@ Service SignFQAStage(RDSNo, Username)
|
||||
|
||||
end
|
||||
|
||||
|
||||
*********************************
|
||||
* 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)
|
||||
If NCRStatus EQ False$ then
|
||||
If NOT( MemberOf(Username, 'LEAD') OR MemberOf(Username, 'SUPERVISOR') ) then
|
||||
@ -3597,7 +3329,6 @@ Service SignFQAStage(RDSNo, Username)
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
*************************
|
||||
* Verify if Shift exist *
|
||||
@ -3659,9 +3390,8 @@ Service SignFQAStage(RDSNo, Username)
|
||||
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}
|
||||
CassNo = {CASS_NO}
|
||||
WOMatQAKey = WONo : '*' : CassNo
|
||||
@ -3673,7 +3403,6 @@ Service SignFQAStage(RDSNo, Username)
|
||||
Error_Services('Add', ErrorMsg)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
*******************************************
|
||||
* 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
|
||||
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
|
||||
ErrorMsg = 'Error calling Obj_WO_Mat("SetSignature") within ':Service:'. Error code: ':errCode
|
||||
Error_Services('Add', ErrorMsg)
|
||||
|
@ -254,8 +254,6 @@ Event SIGN_BUTTON.CLICK()
|
||||
end
|
||||
|
||||
RDSNo = Get_Property(@Window : '.RDS_NO','DEFPROP')
|
||||
WCCheckEnabled = Xlate('APP_INFO', 'WAFER_COUNTER_CHECK', '', 'X')
|
||||
If WCCheckEnabled then
|
||||
****************************************
|
||||
* 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.')
|
||||
RETURN 0
|
||||
end
|
||||
end
|
||||
|
||||
***********************************
|
||||
* Verify Scheduled Wafer Quantity *
|
||||
@ -446,10 +443,6 @@ Event SIGN_BUTTON.CLICK()
|
||||
******************************************
|
||||
* Verify Unload Stage QA Metrology Tests *
|
||||
******************************************
|
||||
|
||||
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
|
||||
|
||||
If (DevelopmentFlag EQ True$) then
|
||||
WONo = Get_Property(@WINDOW:'.WO','DEFPROP')
|
||||
CassNo = Get_Property(@WINDOW:'.CASS_NO','DEFPROP')
|
||||
WOMatQAKey = WONo : '*' : CassNo
|
||||
@ -465,7 +458,6 @@ Event SIGN_BUTTON.CLICK()
|
||||
ErrMsg(ErrorMsg)
|
||||
Return
|
||||
end
|
||||
end
|
||||
|
||||
*******************************************
|
||||
* Verify if all steps have been completed *
|
||||
|
@ -2010,8 +2010,6 @@ Service QASigReady(RDSNo)
|
||||
* Verify Unload Stage QA Metrology Tests *
|
||||
******************************************
|
||||
If ErrorMessage EQ '' then
|
||||
DevelopmentFlag = Xlate('DEVELOPMENT', 'HGCV', 'STATUS', 'X')
|
||||
If (DevelopmentFlag EQ True$) then
|
||||
WOMatQAKey = WOMatKey
|
||||
WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAKey)
|
||||
OutOfSpec = WOMatQARec<WO_MAT_QA_OUT_OF_SPEC$>
|
||||
@ -2024,7 +2022,6 @@ Service QASigReady(RDSNo)
|
||||
Next FailReason
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
************************************************************************
|
||||
* Prompt user to validate the Process Specification Stage Instructions *
|
||||
@ -2844,4 +2841,3 @@ GetMostRecentSig:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user