138 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Compile function OBJ_GAN_CYCLE_TIME(Method, Parms)
 | |
| 
 | |
| /*
 | |
| 	Methods for GAN_CYCLE_TIME table
 | |
|     
 | |
| 	08/25/2020 JRO - Initial Coding
 | |
|      
 | |
|     Properties:
 | |
|      
 | |
|     Methods:
 | |
|     
 | |
|     Create(DataStruct)		;* Create new record
 | |
| 	
 | |
| 	
 | |
| */
 | |
| 
 | |
| 
 | |
| DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey,  obj_Prod_Spec, Send_Dyn
 | |
| DECLARE FUNCTION obj_RDS_Test, Environment_Services, Logging_Services
 | |
| DECLARE SUBROUTINE  Set_Status, Msg, obj_Tables, Send_Dyn, obj_WO_Step, obj_RDS_Layer, obj_RDS_Test, obj_WM_In,obj_WO_Mat
 | |
| DECLARE SUBROUTINE ErrMsg, Logging_Services
 | |
| 
 | |
| $INSERT MSG_EQUATES
 | |
| $INSERT DICT_EQUATES
 | |
| $Insert REACT_RUN_EQUATES
 | |
| $Insert RUN_STAGE_WFR_EQUATES
 | |
| $Insert GAN_CYCLE_TIME_EQUATES
 | |
| $Insert WO_LOG_EQUATES
 | |
| $Insert PROD_VER_EQUATES
 | |
| $Insert WO_WFR_EQUATES
 | |
| 
 | |
| ErrTitle = 'Error in Stored Procedure "obj_gan_cycle_time"'
 | |
| ErrorMsg = ''
 | |
| 
 | |
| LogPath     = Environment_Services('GetApplicationRootPath') : '\LogFiles\GAN_CYCLE_TIME'
 | |
| LogDate     = Oconv(Date(), 'D4/')
 | |
| LogTime     = Oconv(Time(), 'MTS')
 | |
| LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' GAN_CYCLE_TIME.csv'
 | |
| Headers     = 'Logging DTM' : @FM : 'User' : @FM : 'Notes'
 | |
| objLog      = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
 | |
| LoggingDTM  = LogDate : ' ' : LogTime   ; // Logging DTM 
 | |
| 
 | |
| IF NOT(ASSIGNED(Method))	THEN ErrorMsg = 'Unassigned parameter "Method" passed to subroutine'
 | |
| IF NOT(ASSIGNED(Parms))		THEN Parms = ''
 | |
| 
 | |
| IF ErrorMsg NE '' THEN
 | |
| 	Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
 | |
| 	RETURN ''
 | |
| END
 | |
| 
 | |
| Result = ''
 | |
| 
 | |
| BEGIN CASE
 | |
| 	CASE Method = 'Create'			; GOSUB Create
 | |
| 		
 | |
| 	CASE 1
 | |
| 		
 | |
| 		
 | |
| END CASE
 | |
| 
 | |
| IF ErrorMsg NE '' THEN
 | |
| 	Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
 | |
| END
 | |
| 
 | |
| RETURN Result
 | |
| 
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| Create:
 | |
| * * * * * * *
 | |
| 	LogData       = ''
 | |
| 	LogData<1>    = '*** Form Contents ***'
 | |
| 	LogData<2, 1> = LoggingDTM
 | |
| 	LogData<2, 2> = @User4
 | |
| 	LogData<3>    = 'Writing GAN_CYCLE_TIME record from OBJ_GAN_CYCLE_TIME' : @ID
 | |
| 	Logging_Services('AppendLog', objLog, LogData, @FM, @VM)
 | |
| 	RecKey = Parms[1,@RM]
 | |
| 	Record = Parms[COL2()+1,@RM]
 | |
| 	
 | |
| 	Swap '*' with @VM in RecKey
 | |
| 	RDSNo = RecKey<1,1>
 | |
| 	WaferNo = RecKey<1,3>
 | |
| 	
 | |
| 	ReactRunRec = Xlate('REACT_RUN',RDSNo, '', 'X')
 | |
| 	WO_NO = ReactRunRec<REACT_RUN_WO_NO$>
 | |
| 	RunID = ReactRunRec<REACT_RUN_GAN_RUN_ID$>
 | |
| 	ReactorNo = 'R':RunID[1,2]
 | |
| 	PartNo = XLATE('WO_LOG', WO_NO,WO_LOG_WAFER_TRACK_PART$,'X')
 | |
| 	ProdVerNo = XLATE('WO_LOG', WO_NO, WO_LOG_PROD_VER_NO$,'X')
 | |
| 	PSNo = Xlate('PROD_VER',ProdVerNo,PROD_VER_PROC_STEP_PSN$,'X')
 | |
| 	WfrStg = RecKey<1,2>
 | |
| 	ToolClass = Record<RUN_STAGE_WFR_SPEC_TOOL_CLASS$>
 | |
| 	Tool = Record<RUN_STAGE_WFR_TOOL_ID$>
 | |
| 	StartDTM = Record<RUN_STAGE_WFR_SIA_COMP_DTM$, 1>
 | |
| 	StopDTM = Record<RUN_STAGE_WFR_SIA_COMP_DTM$, 2>
 | |
| 	OperatorStart = Record<RUN_STAGE_WFR_SIA_COMP_BY$, 1>
 | |
| 	OperatorStop =  Record<RUN_STAGE_WFR_SIA_COMP_BY$, 2>
 | |
| 	IF WfrStg EQ 'UV' OR WfrStg EQ 'WARP' OR WfrStg EQ 'CAN' OR WfrStg EQ 'CAN_PRE' OR WfrStg EQ 'CAN_PST' then
 | |
| 		WfrScribe = ''
 | |
| 	end else
 | |
| 		WOWfrKey = WaferNo
 | |
| 		Swap '.' with '*' in WOWfrKey
 | |
| 		WfrScribe = XLATE('WO_WFR', WOWfrKey, 26, 'X')
 | |
| 	end
 | |
| 	IF WfrStg EQ 'EPI_DEPOSITION' then
 | |
| 		Recipe = ReactRunRec<103>
 | |
| 	end else
 | |
| 		Recipe = ''
 | |
| 	end
 | |
| 	
 | |
| 	IF Record<RUN_STAGE_WFR_SIA_COMP_DTM$, 2> EQ '' then
 | |
| 		RETURN Result
 | |
| 	end
 | |
| 	
 | |
| 	RecToWrite = ''
 | |
| 	RecToWrite<GAN_CYCLE_TIME_WO_NO$> =            WO_NO
 | |
| 	RecToWrite<GAN_CYCLE_TIME_RUN_ID$> =           RunID
 | |
| 	RecToWrite<GAN_CYCLE_TIME_RDS_No$> =           RDSNo
 | |
| 	RecToWrite<GAN_CYCLE_TIME_RECIPE$> =           Recipe
 | |
| 	RecToWrite<GAN_CYCLE_TIME_Part_NO$> =          PartNo
 | |
| 	RecToWrite<GAN_CYCLE_TIME_PSN_NO$> =           PSNo
 | |
| 	RecToWrite<GAN_CYCLE_TIME_STAGE_NAME$> =       WfrStg
 | |
| 	RecToWrite<GAN_CYCLE_TIME_TOOL_CLASS$> =       ToolClass
 | |
| 	RecToWrite<GAN_CYCLE_TIME_TOOL$> =             Tool
 | |
| 	RecToWrite<GAN_CYCLE_TIME_START_DTM$> =        StartDTM
 | |
| 	RecToWrite<GAN_CYCLE_TIME_STOP_DTM$> =         StopDTM
 | |
| 	RecToWrite<GAN_CYCLE_TIME_OPERATOR_START$> =   OperatorStart
 | |
| 	RecToWrite<GAN_CYCLE_TIME_OPERATOR_STOP$> =    OperatorStop
 | |
| 	RecToWrite<GAN_CYCLE_TIME_WFR_SCRIBE$> = WfrScribe
 | |
| 	RecToWrite<GAN_CYCLE_TIME_REACTOR$> = ReactorNo
 | |
| 	NewRecKey = RDSNo : '-' : WfrStg: '-' : Record<RUN_STAGE_WFR_SIA_COMP_DTM$, 2>
 | |
| 	
 | |
| 	Obj_Tables('WriteRec', 'GAN_CYCLE_TIME':@RM:NewRecKey:@RM:@RM:RecToWrite)
 | |
| 	
 | |
| RETURN Result
 | |
| 
 |