modified CLEAN_INSP_ACTIONS WRITE action to post to transaction queue and proc queue
This commit is contained in:
committed by
Stieber Daniel (CSC FI SPS MESLEO)
parent
bcdfbe0534
commit
7b386fe856
@ -76,7 +76,7 @@ $insert WO_MAT_EQUATES
|
||||
Equ Comma$ to ','
|
||||
|
||||
Declare function Error_Services, Database_Services, Environment_Services, QA_Services, RDS_Services, MemberOf
|
||||
Declare subroutine Error_Services, Database_Services, Post_Metrology_Manual_Data_Entry_Log
|
||||
Declare subroutine Error_Services, Database_Services, Post_Metrology_Manual_Data_Entry_Log, Service_Services
|
||||
Declare subroutine Qa_Services
|
||||
|
||||
If KeyID then GoSub Initialize_System_Variables
|
||||
@ -799,96 +799,15 @@ WRITE_RECORD:
|
||||
|
||||
WONo = Record<CLEAN_INSP_WO_NO$>
|
||||
ReactType = Xlate('WO_LOG', WONo, 'REACT_TYPE', 'X')
|
||||
EpiPro = (ReactType EQ 'EPP')
|
||||
GaN = (ReactType EQ 'GAN')
|
||||
NonEpiPro = ( (ReactType NE 'EPP') and (ReactType NE 'GAN') )
|
||||
Stage = Record<CLEAN_INSP_STAGE$>
|
||||
|
||||
If Stage EQ 'LWI' then
|
||||
RDSNo = Record<CLEAN_INSP_RDS_NO$>
|
||||
PostCIKey = Xlate('RDS', RDSNo, 'POST_CI_NO', 'X')
|
||||
If PostCIKey NE '' then
|
||||
FailedWafers = Record<CLEAN_INSP_FAILED_WAFERS$>
|
||||
If FailedWafers NE '' then
|
||||
NewPostSpecSampleQty = Sum(FailedWafers)
|
||||
PostCIRec = Database_Services('ReadDataRow', 'CLEAN_INSP', PostCIKey)
|
||||
PostSpecRecipes = PostCIRec<CLEAN_INSP_SPEC_SURFSCAN_RECIPE$>
|
||||
NumRecipes = DCount(PostSpecRecipes, @VM)
|
||||
If NumRecipes GT 0 then
|
||||
For RecipeIndex = 1 to NumRecipes
|
||||
CurrSpec = PostCIRec<CLEAN_INSP_SPEC_SS_SAMP_QTY$, RecipeIndex>
|
||||
If ( (CurrSpec EQ '') or (CurrSpec LT NewPostSpecSampleQty) ) then
|
||||
PostCIRec<CLEAN_INSP_SPEC_SS_SAMP_QTY$, RecipeIndex> = NewPostSpecSampleQty
|
||||
end
|
||||
Next RecipeIndex
|
||||
Database_Services('WriteDataRow', 'CLEAN_INSP', PostCIKey, PostCIRec, True$, False$, True$)
|
||||
end
|
||||
end
|
||||
end
|
||||
Service_Services('PostProcedure', 'CLEAN_INSP_SERVICES', 'UpdatePostCISampleQty':@VM:Name)
|
||||
end
|
||||
|
||||
If NonEpiPro then
|
||||
// Sync up Insp, Clean, and SurfScan signatures with WO_MAT signature profile
|
||||
Stage = {STAGE}
|
||||
|
||||
WOMatKey = {WO_MAT_KEY}
|
||||
// Update failed wafer list
|
||||
QA_Services('UpdateFailedWafers', WOMatKey)
|
||||
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
||||
WOMatSigProf = WOMatRec<WO_MAT_SIG_PROFILE$>
|
||||
WOMatSigs = WOMatRec<WO_MAT_SIGNATURE$>
|
||||
WOMatSigDTMs = WOMatRec<WO_MAT_SIG_DTM$>
|
||||
|
||||
OrigInspSig = OrigRecord<CLEAN_INSP_INSP_SIG$>
|
||||
OrigInspSigDTM = OrigRecord<CLEAN_INSP_INSP_SIG_DTM$>
|
||||
InspSig = Record<CLEAN_INSP_INSP_SIG$>
|
||||
InspSigDTM = Record<CLEAN_INSP_INSP_SIG_DTM$>
|
||||
|
||||
OrigCleanSig = OrigRecord<CLEAN_INSP_CLEAN_SIG$>
|
||||
OrigCleanSigDTM = OrigRecord<CLEAN_INSP_CLEAN_SIG_DTM$>
|
||||
CleanSig = Record<CLEAN_INSP_CLEAN_SIG$>
|
||||
CleanSigDTM = Record<CLEAN_INSP_CLEAN_SIG_DTM$>
|
||||
|
||||
OrigScanSig = OrigRecord<CLEAN_INSP_SCAN_SIG$>
|
||||
OrigScanSigDTM = OrigRecord<CLEAN_INSP_SCAN_SIG_DTM$>
|
||||
ScanSig = Record<CLEAN_INSP_SCAN_SIG$>
|
||||
ScanSigDTM = Record<CLEAN_INSP_SCAN_SIG_DTM$>
|
||||
|
||||
SigProfUpdate = False$
|
||||
|
||||
If ( (OrigInspSig NE InspSig) or (OrigInspSigDTM NE InspSigDTM) ) then
|
||||
WOMatStage = '1':Stage:'I'
|
||||
Locate WOMatStage in WOMatSigProf using @VM setting vPos then
|
||||
WOMatSigs<0, vPos> = InspSig[-1, 'B':@VM]
|
||||
WOMatSigDTMs<0, vPos> = InspSigDTM[-1, 'B':@VM]
|
||||
SigProfUpdate = True$
|
||||
end
|
||||
end
|
||||
|
||||
If ( (OrigCleanSig NE CleanSig) or (OrigCleanSigDTM NE CleanSigDTM) ) then
|
||||
WOMatStage = '1':Stage:'C'
|
||||
Locate WOMatStage in WOMatSigProf using @VM setting vPos then
|
||||
WOMatSigs<0, vPos> = CleanSig[-1, 'B':@VM]
|
||||
WOMatSigDTMs<0, vPos> = CleanSigDTM[-1, 'B':@VM]
|
||||
SigProfUpdate = True$
|
||||
end
|
||||
end
|
||||
|
||||
If ( (OrigScanSig NE ScanSig) or (OrigScanSigDTM NE ScanSigDTM) ) then
|
||||
WOMatStage = '1':Stage:'S'
|
||||
Locate WOMatStage in WOMatSigProf using @VM setting vPos then
|
||||
WOMatSigs<0, vPos> = ScanSig[-1, 'B':@VM]
|
||||
WOMatSigDTMs<0, vPos> = ScanSigDTM[-1, 'B':@VM]
|
||||
SigProfUpdate = True$
|
||||
end
|
||||
end
|
||||
|
||||
If SigProfUpdate then
|
||||
NumSteps = DCount(WOMatSigProf, @VM)
|
||||
WOMatRec<WO_MAT_SIGNATURE$> = Field(WOMatSigs, @VM, 1, NumSteps)
|
||||
WOMatRec<WO_MAT_SIG_DTM$> = Field(WOMatSigDTMs, @VM, 1, NumSteps)
|
||||
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$)
|
||||
end
|
||||
Service_Services('PostProcedure', 'QA_SERVICES', 'UpdateFailedWafers':@VM:WOMatKey)
|
||||
Service_Services('PostProcedure', 'CLEAN_INSP_SERVICES', 'PushSigProfileToWoMat':@VM:Name)
|
||||
end
|
||||
|
||||
return
|
||||
|
Reference in New Issue
Block a user