COMPILE ROUTINE FIX_PROD_SPEC(Dummy)
ROWDEF(CHARSTR)

DECLARE SUBROUTINE obj_Schedule,Send_Dyn,Send_Info, RList, ErrMsg, obj_Prod_Spec, Btree.Extract, obj_PRS_Stage
DECLARE FUNCTION Get_Status, Set_Printer, obj_Prod_Spec, NextKEy

$INSERT PROD_SPEC_EQUATES
$INSERT QUOTE_SPEC_EQU
$INSERT PART_EQUATES

$INSERT CUST_EPI_PART_EQUATES
$INSERT PRS_STAGE_EQUATES
$INSERT PROD_VER_EQUATES

EQU TAB$ TO \09\:'/'

EQU CRLF$ TO \0D0A\

OPEN 'PROD_SPEC' TO ProdSpecTable ELSE
	DEBUG
	GOTO Bail
END

OPEN 'DICT.PROD_SPEC' TO DictProdSpec Else
	DEBUG
	GOTO Bail
END

OPEN 'PRS_STAGE' TO StageTable ELSE
	DEBUG
	GOTO Bail
END

OPEN 'PART_WORK' TO PartWorkTable ELSE
	DEBUG
	GOTO Bail
END

OPEN 'CUST_EPI_PART' TO CustEpiTable ELSE
	DEBUG
	GOTO Bail
END

DEBUG

GOTO Bail

SELECT ProdSpecTable

RList('SELECT PROD_SPEC WITH TRANS_MEAS_TYPE NE "" OR WITH STRESS_MEAS_TYPE NE ""',5)


CleanTools = ''

Done = 0
RecCnt = @RECCOUNT
FixCnt = 0

DEBUG

LOOP
	READNEXT PSNo ELSE Done = 1
UNTIL Done
	Send_Dyn(PSNo)
	obj_Prod_Spec('PushTech',PSNo)

	
REPEAT


GOTO Bail




*******************************************************************


SELECT ProdSpecTable

RList('SELECT PROD_SPEC BY-DSND SEQ',5)


CleanTools = ''

Done = 0
RecCnt = @RECCOUNT
FixCnt = 0

DEBUG

LOOP
	READNEXT PSNo ELSE Done = 1
UNTIL Done
	
	READ ProdSpecRec FROM ProdSpecTable,PSNo THEN
		
		StageKeys = ProdSpecRec<PROD_SPEC_PRS_STAGE_KEY$>
		
		StageCnt = COUNT(StageKeys,@VM) + (StageKeys NE '')
		
		FOR I = 1 TO StageCnt
			StageKey = StageKeys<1,I>
			READ StageRec FROM StageTable,StageKey THEN
				RecCnt += 1
				WriteFlag = 0
				IF StageRec<PRS_STAGE_CLEAN_TOOL$> NE '' THEN
					StageRec<PRS_STAGE_CLEAN_SIG_REQ$> = 1
					WriteFlag = 1
				END
			
				IF StageRec<PRS_STAGE_BRIGHTLIGHT$> NE '' OR StageRec<PRS_STAGE_MICROSCOPE$> NE '' THEN
					StageRec<PRS_STAGE_INSP_SIG_REQ$> = 1
					WriteFlag = 1
				END
			
				IF StageRec<PRS_STAGE_SURFSCAN_RECIPE$> NE '' THEN
					StageRec<PRS_STAGE_SURFSCAN_SIG_REQ$> = 1
					WriteFlag = 1
				END
				
				IF WriteFlag = 1 THEN
					*WRITE StageRec ON StageTable,StageKey THEN
					
						FixCnt += 1
		
						Send_Info(FixCnt:TAB$:RecCnt:TAB$:StageKey)
					*END
				
				END	;* End of check for WriteFlag
			END
				
				
		
		
		NEXT I
	
		
	END
REPEAT


GOTO Bail

**********************
ctCnt = COUNT(CleanTools,@FM) + (CleanTools NE '')


DEBUG

FOR I = 1 TO ctCnt
	
	CTool 		= TRIM(CleanTools<I>)
	OrgCTool	= CTool
	
	CONVERT @LOWER_CASE TO @UPPER_CASE in CTool
	SWAP 'AKRION 1' WITH 'AKRION1' in CTool

	IF CTool[1,2] _EQC 'NO' THEN CTool = ''
	IF CTool[1,2] _EQC 'IF' THEN CTool = ''

	SWAP ' OR ' WITH @VM IN CTool
	SWAP 'SC1+SC2' WITH 'CB3' IN CTool
	SWAP 'ONLY' WITH '' IN CTool
	SWAP 'HF+ SC1' WITH 'CB3' IN CTool
	SWAP 'SC1' WITH 'CB3' IN CTool
	
	intCTools = TRIM(CTool)
	
	nCnt = COUNT(intCTools,@VM) + (intCTools NE '')
	
	Fixed = 0
	FOR N = 1 TO nCnt
		intCTool = intCTools<1,N>
		IF IntCTool = 'AKRION' THEN
			intCTools<1,N> = 'AKRION1':@VM:'AKRION2'
			Fixed = 1
		END
	UNTIL Fixed
	NEXT N
	
	SWAP @VM WITH ', ' IN intCTools

	Send_Dyn(OrgCTool:' -> ':intCTools)

NEXT I


GOTO Bail


* * * * * * * * 

SELECT ProdSpecTable

RList('SELECT PROD_SPEC BY-DSND SEQ',5)


Done = 0
RecCnt = @RECCOUNT
FixCnt = 0



LOOP
	READNEXT PSNo ELSE Done = 1
UNTIL Done
	
	READ PsRec FROM ProdSpecTable,PSNo THEN
	
		* Pre Epi Cleans  ***************

		PreTool			= PSRec<PROD_SPEC_SPEC_SUBSTRATE$,QSSubPreClean$>
		PreToolRecipe	= PSRec<PROD_SPEC_SPEC_SUBSTRATE$,QSSubPreAkrionRecipe$>
		
		IF PreTool[1,2] 		_EQC 'NO' THEN PreTool = ''
		IF PreTool[1,2]			_EQC 'IF' THEN PreTool = ''
		IF PreToolRecipe[1,2] 	_EQC 'NO' THEN PreToolRecipe = ''
		
		SWAP 'Akrion1' WITH 'Akrion' IN PreTool
		SWAP ' or ' WITH @VM IN PreTool
		SWAP 'SC1+SC2' WITH 'CB3' IN PreTool
		SWAP 'Only' WITH '' IN PreTool
		PreTool = TRIM(PreTool)
		
		PreFlag = 0
		
		IF PreTool OR PreToolRecipe THEN
			PreFlag = 1
			Send_Dyn(PSNo:' Pre: Cleans ':PreTool:TAB$:PreToolRecipe)
		END
			
		* Pre Epi Inspection  **
		
		PreBrightlightFlag	= PSRec<PROD_SPEC_PRE_BRIGHTLIGHT$>
		PreMicroscopeFlag	= PSRec<PROD_SPEC_PRE_MICROSCOPE$>
		
		IF PreBrightlightFlag = 1 or PreMicroscopeFlag  = 1 THEN
			Send_Dyn(PSNo:' Pre: Inspection Brightlight ':PreBrightlightFlag:TAB$:' Microscope ':PreMicroscopeFlag)
		END	
		
		* Pre Epi SurfScan   **
						
		PreSurfscanRecipe	= PSRec<PROD_SPEC_PRE_SURFSCAN_RECIPE$>
		
		IF PreSurfscanRecipe THEN
			Send_Dyn(PSNo:' Pre: SurfScan ':PreSurfscanFlag:TAB$:PreSurfscanRecipe)
		END
			
		
		* Wafer Inspection   ****************
		
		Spec_FWI_LWI = PSRec<PROD_SPEC_POST_FWI_LWI$>		;* FWI OR LWI
		
		IF Spec_FWI_LWI = 'FWI' THEN
		
			FwiBrightLightFlag	= PSRec<PROD_SPEC_FIRST_BRIGHTLIGHT$>
			FwiMicroscopeFlag	= PSRec<PROD_SPEC_FIRST_MICROSCOPE$>
			
			IF FwiBrightLightFlag = 1 OR FwiMicroscopeFlag = 1 THEN
				Send_Dyn(PSNo:' FWI Inspection Brightlight ':FwiBrightLightFlag:TAB$:'Microscope ':FwiMicroscopeFlag)
			END
			
			FwiSurfscanFlag		= PSRec<PROD_SPEC_FIRST_SURFSCAN$>
			FwiSurfscanRecipe	= PSRec<PROD_SPEC_FIRST_SURFSCAN_RECIPE$>
			
			IF FwiSurfscanFlag = 1 OR FwiSurfscanRecipe THEN
				Send_Dyn(PSNo:' FWI Inspection Surfscan Flag ':FwiSurfscanFlag:TAB$:' Recipe ':FwiSurfscanRecipe)
			END
			
		END
		
		IF Spec_FWI_LWI = 'LWI' THEN
		
			LwiBrightLightFlag	= PSRec<PROD_SPEC_FIRST_BRIGHTLIGHT$>
			LwiMicroscopeFlag	= PSRec<PROD_SPEC_FIRST_MICROSCOPE$>
			
			IF LwiBrightLightFlag = 1 OR LwiMicroscopeFlag = 1 THEN
				Send_Dyn(PSNo:' LWI Inspection Brightlight ':LwiBrightLightFlag:TAB$:'Microscope ':LwiMicroscopeFlag)
			END
			
			LwiSurfscanFlag		= PSRec<PROD_SPEC_FIRST_SURFSCAN$>
			LwiSurfscanRecipe	= PSRec<PROD_SPEC_FIRST_SURFSCAN_RECIPE$>
			
			IF  LwiSurfscanFlag = 1 OR LwiSurfscanRecipe = 1 THEN
				Send_Dyn(PSNo:' LWI Inspection Surfscan  Flag ':LwiSurfscanFlag:TAB$:' Recipe ':LwiSurfscanRecipe)
			END
		END

		* Post Epi Cleans   ****************
		
		PostTool		= PSRec<PROD_SPEC_SPEC_SUBSTRATE$,QSSubPostClean$>
		PostToolRecipe	= PSRec<PROD_SPEC_SPEC_SUBSTRATE$,QSSubPostAkrionRecipe$>

		IF PostTool[1,2] 		_EQC 'NO' THEN PostTool = ''
		IF PostToolRecipe[1,2] 	_EQC 'NO' THEN PostToolRecipe = ''
			
		IF PostTool NE '' OR PostToolRecipe NE '' THEN
			Send_Dyn(PSNo:' POST Clean ':PostTool:TAB$:PostToolRecipe)
		END
		
		
		* Post Epi Inspection  **
		
		PostBrightLight	= PSRec<PROD_SPEC_POST_CLEAN_BRIGHTLIGHT$>

		IF PostBrightLight = 1 THEN
			Send_Dyn(PSNo:' POST Inspection Brightlight ':PostBrightlight)
		END
		
		* PostEpi SurfScan
				
		PostSurfscan		= PSRec<PROD_SPEC_POST_CLEAN_SURFSCAN$>
		PostSurfscanRecipe	= PSRec<PROD_SPEC_POST_CLEAN_SURFSCAN_RECIPE$>

		IF  PostSurfscan OR PostSurfscanRecipe NE '' THEN
			Send_Dyn(PSNo:' POST Surfscan Flag ':PostSurfscan:TAB$:PostSurfscanRecipe)
		END
				
		Send_Dyn(' ')
				
			
	END	;* End of ProdSpecRec read
REPEAT


GOTO Bail





****************************************

RList('SELECT PROD_SPEC BY-DSND SEQ',5)


Done = 0
RecCnt = @RECCOUNT

DEBUG

LOOP
	READNEXT PSNo ELSE Done = 1
UNTIL Done
	
	READ ProdSpecRec FROM ProdSpecTable,PSNo THEN
		
		ModeCodes =  'U':@VM:'Q':@VM:'E':@VM:'P'
		
		
		ProdSpecRec<PROD_SPEC_MODE_CODE$> = ModeCodes
		*PROD_SPEC_MODE_SIG$
		*PROD_SPEC_MODE_SIG_DTM$  
		
		SpecAddtl	= ProdSpecRec<PROD_SPEC_SPEC_ADDTL$>
	
		SpecType	= ProdSpecRec<PROD_SPEC_SPEC_SUBSTRATE$,QSSubSpecType$>
		
		PreQualSig		= SpecAddtl<1,QSAddPreQualSig$>
		PreQualDate		= OCONV(SpecAddtl<1,QSAddPreQualSigDate$>,'D4/')
		PreQualTime 	= OCONV(SpecAddtl<1,QSAddPreQualSigTime$>,'MTS')
		
		IF PreQualSig NE '' THEN
			ProdSpecRec<PROD_SPEC_MODE_SIG$,1>		= PreQualSig
			ProdSpecRec<PROD_SPEC_MODE_SIG_DTM$,1>	= ICONV(PreQualDate:' ':PreQualTime,'DT')
		END
		
		QualSig			= SpecAddtl<1,QSAddQualSig$>
		QualDate 		= OCONV(SpecAddtl<1,QSAddQualSigDate$>,'D4/')
		QualTime		= OCONV(SpecAddtl<1,QSAddQualSigTime$>,'MTS')
		
		IF QualSig NE '' THEN
			ProdSpecRec<PROD_SPEC_MODE_SIG$,2>		= QualSig
			ProdSpecRec<PROD_SPEC_MODE_SIG_DTM$,2>	= ICONV(QualDate:' ':QualTime,'DT')
		END
			
		PreProdSig		= SpecAddtl<1,QSAddPreProdSig$>
		PreProdDate		= OCONV(SpecAddtl<1,QSAddPreProdSigDate$>,'D4/')
		PreProdTime		= OCONV(SpecAddtl<1,QSAddPreProdSigTime$>,'MTS')
		
		IF PreProdSig NE '' THEN
			ProdSpecRec<PROD_SPEC_MODE_SIG$,3>		= PreProdSig
			ProdSpecRec<PROD_SPEC_MODE_SIG_DTM$,3>	= ICONV(PreProdDate:' ':PreProdTime,'DT')
		END
		
		
		ProdSig			= SpecAddtl<1,QSAddProdSig$>
		ProdDate		= OCONV(SpecAddtl<1,QSAddProdSigDate$>,'D4/')
		ProdTime		= OCONV(SpecAddtl<1,QSAddProdSigTime$>,'MTS')
		
		IF PreProdSig NE '' THEN
			ProdSpecRec<PROD_SPEC_MODE_SIG$,4>		= ProdSig
			ProdSpecRec<PROD_SPEC_MODE_SIG_DTM$,4>	= ICONV(ProdDate:' ':ProdTime,'DT')
		END
		
		Send_Dyn(PSNo:' - ':SpecType:' - ')
		Send_Dyn(PSNo:ProdSpecRec<PROD_SPEC_MODE_CODE$,1>:' ':ProdSpecRec<PROD_SPEC_MODE_SIG$,1>:' ':ProdSpecRec<PROD_SPEC_MODE_SIG_DTM$,1>)
		Send_Dyn(PSNo:ProdSpecRec<PROD_SPEC_MODE_CODE$,2>:' ':ProdSpecRec<PROD_SPEC_MODE_SIG$,2>:' ':ProdSpecRec<PROD_SPEC_MODE_SIG_DTM$,2>)
		Send_Dyn(PSNo:ProdSpecRec<PROD_SPEC_MODE_CODE$,3>:' ':ProdSpecRec<PROD_SPEC_MODE_SIG$,3>:' ':ProdSpecRec<PROD_SPEC_MODE_SIG_DTM$,3>)
		Send_Dyn(PSNo:ProdSpecRec<PROD_SPEC_MODE_CODE$,4>:' ':ProdSpecRec<PROD_SPEC_MODE_SIG$,4>:' ':ProdSpecRec<PROD_SPEC_MODE_SIG_DTM$,4>)
		Send_Dyn(' ')
		
	
			
		WRITE ProdSpecRec ON ProdSpecTable,PSNo THEN
			*Send_Dyn(PSNo:' ':ReactType:' ':ProdSpecRec<PROD_SPEC_MET_TEST$>:' ':ProdSpecRec<PROD_SPEC_MET_INTERVAL$>:' ':ProdSpecRec<PROD_SPEC_MET_START$>)
		END
			
		
	
	
	END
REPEAT


GOTO Bail







*****************************

*SelectSent  = 'REACTOR_TYPE':@VM:'P':@FM
SelectSent = 'STATUS':@VM:'A':@FM

Btree.Extract(SelectSent,'PROD_SPEC',DictProdSpec,EpiProSpecNos,'','')

IF Get_Status(errCode) THEN DEBUG

Done = 0
RecCnt = COUNT(EpiProSpecNos,@VM) + (EpiProSpecNos NE '')


FOR I = 1 TO RecCnt
	PSNo = EpiProSpecNos<1,I>
	READ ProdSpecRec FROM ProdSpecTable,PSNo THEN
		ReactType = XLATE('PROD_SPEC',PSNo,'REACTOR_TYPE','X')
		
		ThickMin = OCONV(XLATE('PROD_SPEC',PSNo,'THICK_MIN_ALL','X')[-1,'B':@VM],'MD2')
		ThickMax = OCONV(XLATE('PROD_SPEC',PSNo,'THICK_MAX_ALL','X')[-1,'B':@VM],'MD2')
		
		ResMin = OCONV(XLATE('PROD_SPEC',PSNo,'RES_MIN_ALL','X')[-1,'B':@VM],'MD3')
		ResMax = OCONV(XLATE('PROD_SPEC',PSNo,'RES_MAX_ALL','X')[-1,'B':@VM],'MD3')
		
		IF ReactType = 'P' THEN
		
			SubstrateInfo = ProdSpecRec<PROD_SPEC_SPEC_SUBSTRATE$,QSSubInstructions$>
			
			TestCnt = 1

			IF INDEX(SubstrateInfo,'FLEXUS',1) THEN
				ProdSpecRec<PROD_SPEC_MET_TEST$,TestCnt>		= 'FLEXUS'
				ProdSpecRec<PROD_SPEC_MET_INTERVAL$,TestCnt>	= '5'
				ProdSpecRec<PROD_SPEC_MET_START$,TestCnt>		= '1'
				ProdSpecRec<PROD_SPEC_MET_SLOT$,TestCnt>		= 'A'	;* All Wafers
				ProdSpecRec<PROD_SPEC_MET_RUN_STEP$,TestCnt>	= 'MO_QA'
				TestCnt += 1
			END

			ProdSpecRec<PROD_SPEC_MET_TEST$,TestCnt>		= 'ADE'
			ProdSpecRec<PROD_SPEC_MET_MIN$,TestCnt>			= ThickMin
			ProdSpecRec<PROD_SPEC_MET_MAX$,TestCnt>			= ThickMax
			ProdSpecRec<PROD_SPEC_MET_INTERVAL$,TestCnt>	= '1'
			ProdSpecRec<PROD_SPEC_MET_START$,TestCnt>		= '1'
			ProdSpecRec<PROD_SPEC_MET_SLOT$,TestCnt>		= '2'
			ProdSpecRec<PROD_SPEC_MET_RUN_STEP$,TestCnt>	= 'MO_QA'
			
		END ELSE
			SubstrateInfo = ProdSpecRec<PROD_SPEC_SPEC_SUBSTRATE$,QSSubInstructions$>
			
			TestCnt = 1
			
			ProdSpecRec<PROD_SPEC_MET_TEST$,TestCnt>		= 'THICK_ONLY'
			ProdSpecRec<PROD_SPEC_MET_MIN$,TestCnt>			= ThickMin
			ProdSpecRec<PROD_SPEC_MET_MAX$,TestCnt>			= ThickMax
			ProdSpecRec<PROD_SPEC_MET_INTERVAL$,TestCnt>	= '2'
			ProdSpecRec<PROD_SPEC_MET_START$,TestCnt>		= '1'
			ProdSpecRec<PROD_SPEC_MET_SLOT$,TestCnt>		= 'L'
			ProdSpecRec<PROD_SPEC_MET_RUN_STEP$,TestCnt>	= 'UNLOAD'
			TestCnt += 1
			
			
			IF ProdSpecRec<PROD_SPEC_LW_RHO_MIN$> NE '' OR ProdSpecRec<PROD_SPEC_LW_RHO_MAX$> NE '' THEN
				ProdSpecRec<PROD_SPEC_MET_TEST$,TestCnt>		= 'LW_RHO'
				ProdSpecRec<PROD_SPEC_MET_MIN$,TestCnt>			= ResMin
				ProdSpecRec<PROD_SPEC_MET_MAX$,TestCnt>			= ResMax
				ProdSpecRec<PROD_SPEC_MET_INTERVAL$,TestCnt>	= '1'
				ProdSpecRec<PROD_SPEC_MET_START$,TestCnt>		= '1'
				ProdSpecRec<PROD_SPEC_MET_SLOT$,TestCnt>		= 'L'
				ProdSpecRec<PROD_SPEC_MET_RUN_STEP$,TestCnt>	= 'UNLOAD'
				TestCnt += 1
			END
			
			ProdSpecRec<PROD_SPEC_MET_TEST$,TestCnt>		= 'ADE'
			ProdSpecRec<PROD_SPEC_MET_MIN$,TestCnt>			= ThickMin
			ProdSpecRec<PROD_SPEC_MET_MAX$,TestCnt>			= ThickMax
			ProdSpecRec<PROD_SPEC_MET_INTERVAL$,TestCnt>	= '1'
			ProdSpecRec<PROD_SPEC_MET_START$,TestCnt>		= '1'
			ProdSpecRec<PROD_SPEC_MET_SLOT$,TestCnt>		= 'L'
			ProdSpecRec<PROD_SPEC_MET_RUN_STEP$,TestCnt>	= 'QA'
			TestCnt += 1
			
			IF INDEX(SubstrateInfo,'FLEXUS',1) THEN
				ProdSpecRec<PROD_SPEC_MET_TEST$,TestCnt>		= 'FLEXUS'
				ProdSpecRec<PROD_SPEC_MET_INTERVAL$,TestCnt>	= '5'
				ProdSpecRec<PROD_SPEC_MET_START$,TestCnt>		= '1'
				ProdSpecRec<PROD_SPEC_MET_SLOT$,TestCnt>		= 'A'	;* All Wafers
				ProdSpecRec<PROD_SPEC_MET_RUN_STEP$,TestCnt>	= 'QA'
				TestCnt += 1
			END
			
			IF ProdSpecRec<PROD_SPEC_LW_RHO_MIN$> NE '' OR ProdSpecRec<PROD_SPEC_LW_RHO_MAX$> NE '' THEN
				
				ProdSpecRec<PROD_SPEC_MET_TEST$,TestCnt>		= 'LW_RHO'
				ProdSpecRec<PROD_SPEC_MET_MIN$,TestCnt>			= ResMin
				ProdSpecRec<PROD_SPEC_MET_MAX$,TestCnt>			= ResMax
				ProdSpecRec<PROD_SPEC_MET_INTERVAL$,TestCnt>	= '1'
				ProdSpecRec<PROD_SPEC_MET_START$,TestCnt>		= '1'
				ProdSpecRec<PROD_SPEC_MET_SLOT$,TestCnt>		= 'L'
				ProdSpecRec<PROD_SPEC_MET_RUN_STEP$,TestCnt>	= 'QA'
				TestCnt += 1
			END
		
		END
		

			
		WRITE ProdSpecRec ON ProdSpecTable,PSNo THEN
			Send_Dyn(PSNo:' ':ReactType:' ':ProdSpecRec<PROD_SPEC_MET_TEST$>:' ':ProdSpecRec<PROD_SPEC_MET_INTERVAL$>:' ':ProdSpecRec<PROD_SPEC_MET_START$>)
		END
			
		
	
	
	END
NEXT I


GOTO Bail




RList('SELECT PROD_SPEC WITH SUB_SUPPLIED_BY "C" AND WITH BOM_EPI_PART_NO NE "" AND WITH STATUS = "A"',5)

Done = 0
RecCnt = 0

LOOP
	READNEXT PSNo ELSE Done = 1
UNTIL Done
	READ ProdSpecRec FROM ProdSpecTable,PSNo THEN
		SubPartNos	= ProdSpecRec<PROD_SPEC_SUB_PART_NUMS$>
		SubMfgs		= ProdSpecRec<PROD_SPEC_SUB_WAFER_MFG$>
		CustNo		= ProdSpecRec<PROD_SPEC_CUST_ID$>
		
		BOMEpiPartNos = XLATE('PROD_SPEC',PSNo,'BOM_EPI_PART_NO','X')
		EpiPartNo = BOMEpiPartNos<1,1>
		
		IF SubPartNos NE '' AND EpiPartNo NE '' AND CustNo NE '' THEN
			READ CustEpiRec FROM CustEpiTable,CustNo:'*':EpiPartNo THEN
				CustEpiRec<CUST_EPI_PART_SUBSTRATE_PART_NO$> = SubPartNos
				CustEpiRec<CUST_EPI_PART_SUBSTRATE_MFR$> = SubMfgs
				WRITE CustEpiRec ON CustEpiTable,CustNo:'*':EpiPartNo THEN
					Send_Dyn(CustNo:'*':EpiPartNo)
				END
			END
		END
	
	
	END
REPEAT


GOTO Bail

/*
RList('SELECT PROD_SPEC WITH BOM_NO NE "" AND WITH EPI_PART_NO = "" ',5)

SelCnt = @RECCOUNT
DEBUG
Done = 0
RecCnt = 0
FixCnt = 0
LOOP
	READNEXT ProdSpecNo ELSE Done = 1
UNTIL Done 

	READ ProdSpecRec FROM ProdSpecTable,ProdSpecNo THEN
	
		BomNo		= ProdSpecRec<PROD_SPEC_BOM_NO$,1>
		EpiPartNo	= XLATE('BOM',BomNo,BOM_EPI_PART_NO$,'X')
		
		ProdSpecRec<PROD_SPEC_EPI_PART_NO$> = EpiPartNo
		
		FixCnt += 1
		
		*WRITE ProdSpecRec ON ProdSpecTable,ProdSpecNo THEN
			
			Send_Dyn(RecCnt:' - ':FixCnt:' ':ProdSpecNo:' BOM: ':BomNo:' -> ':EpiPartNo)
		*END
		
		
	END	;* End of read
	
REPEAT


GOTO Bail
*/

RList('SELECT PROD_SPEC WITH STATUS = "A" AND WITH EPI_PART_NO NE "" ',5)

SelCnt = @RECCOUNT
DEBUG
Done = 0
RecCnt = 0
FixCnt = 0
LOOP
	READNEXT ProdSpecNo ELSE Done = 1
UNTIL Done 

	READ ProdSpecRec FROM ProdSpecTable,ProdSpecNo THEN
	
		
		obj_Prod_Spec('PushSplit',ProdSpecNo)
		
		FixCnt += 1
			
		Send_Info(RecCnt:' - ':FixCnt)
		
		
	END	;* End of read
	
REPEAT




* * * * * * *
Bail:
* * * * * * *

END
