testing SRP Git for OI 10
This commit is contained in:
parent
b3f7ea1da8
commit
ebaaaf3c27
141
LSL2/STPROC/ACTIVE_DIRECTORY_SERVICES.txt
Normal file
141
LSL2/STPROC/ACTIVE_DIRECTORY_SERVICES.txt
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
Compile function Active_Directory_Services(@Service, @Params)
|
||||||
|
/***********************************************************************************************************************
|
||||||
|
|
||||||
|
This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written
|
||||||
|
permission from SRP Computer Solutions, Inc.
|
||||||
|
|
||||||
|
Name : Active_Directory_Services
|
||||||
|
|
||||||
|
Description : Handler program for all module related services.
|
||||||
|
|
||||||
|
Notes : The generic parameters should contain all the necessary information to process the services. Often
|
||||||
|
this will be information like the data Record and Key ID.
|
||||||
|
|
||||||
|
Parameters :
|
||||||
|
Service [in] -- Name of the service being requested
|
||||||
|
Param1-10 [in/out] -- Additional request parameter holders
|
||||||
|
Response [out] -- Response to be sent back to the Controller (MCP) or requesting procedure
|
||||||
|
|
||||||
|
History : (Date, Initials, Notes)
|
||||||
|
02/17/23 djs Original programmer.
|
||||||
|
|
||||||
|
***********************************************************************************************************************/
|
||||||
|
|
||||||
|
#pragma precomp SRP_PreCompiler
|
||||||
|
|
||||||
|
$Insert SERVICE_SETUP
|
||||||
|
$Insert APP_INSERTS
|
||||||
|
$Insert REVDOTNETEQUATES
|
||||||
|
|
||||||
|
Declare subroutine Set_Property.Net
|
||||||
|
|
||||||
|
GoToService
|
||||||
|
|
||||||
|
Return Response or ""
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// SERVICES
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
Service AuthenticateUser(Username, Password, Domain)
|
||||||
|
|
||||||
|
Authenticated = False$
|
||||||
|
DotNetHandle = StartDotNet("","4.0")
|
||||||
|
DotNetDir = CheckDotNet('4.0'):'\'
|
||||||
|
AccountMgmtDllPath = DotNetDir:'System.DirectoryServices.AccountManagement.dll'
|
||||||
|
Set_Property.Net(DotNetHandle, "AssemblyName", AccountMgmtDllPath)
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
Params = 'Domain':@FM:Domain
|
||||||
|
ParamTypes = 'System.DirectoryServices.AccountManagement.ContextType':@FM:'System.String'
|
||||||
|
objPC = Create_Class.Net(DotNetHandle, "System.DirectoryServices.AccountManagement.PrincipalContext", 0, Params, ParamTypes)
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
Params = Username:@FM:Password
|
||||||
|
ParamTypes = 'System.String':@FM:'System.String'
|
||||||
|
Authenticated = Send_Message.Net(objPC, 'ValidateCredentials', Params, ParamTypes, 0)
|
||||||
|
Swap 'True' with True$ in Authenticated
|
||||||
|
Swap 'False' with False$ in Authenticated
|
||||||
|
Free_Class.Net(objPC)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Response = Authenticated
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
|
|
||||||
|
Service GetADGroups(Username, Domain)
|
||||||
|
|
||||||
|
ADGroups = ''
|
||||||
|
DotNetHandle = StartDotNet("","4.0")
|
||||||
|
DotNetDir = CheckDotNet('4.0'):'\'
|
||||||
|
AccountMgmtDllPath = DotNetDir:'System.DirectoryServices.AccountManagement.dll'
|
||||||
|
Set_Property.Net(DotNetHandle, "AssemblyName", AccountMgmtDllPath)
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
Params = 'Domain':@FM:'Infineon'
|
||||||
|
ParamTypes = 'System.DirectoryServices.AccountManagement.ContextType':@FM:'System.String'
|
||||||
|
objPC = Create_Class.Net(DotNetHandle, "System.DirectoryServices.AccountManagement.PrincipalContext", 0, Params, ParamTypes)
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
objUserPrincipal = Create_Class.Net(DotNetHandle, "System.DirectoryServices.AccountManagement.UserPrincipal", 0, objPC, 'RevDotNet')
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
Set_Property.Net(objUserPrincipal, 'Name', Username)
|
||||||
|
objPrinSearcher = Create_Class.Net(DotNetHandle, "System.DirectoryServices.AccountManagement.PrincipalSearcher", 0, objUserPrincipal, 'RevDotNet')
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
objPrin = Send_Message.Net(objPrinSearcher, 'FindOne', '', '', 1)
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
Name = Get_Property.Net(objPrin, 'Name', 0)
|
||||||
|
objPrinSearchResult = Send_Message.Net(objPrin, 'GetGroups', '', '', 1)
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
objEnum = Send_Message.Net(objPrinSearchResult, 'GetEnumerator', '', '', 1)
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
Loop
|
||||||
|
Done = Send_Message.Net(objEnum, 'MoveNext', '', '', 0)
|
||||||
|
Until Done EQ 'False'
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
objCurrPrin = Get_Property.Net(objEnum, 'Current', 1)
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
CurrPrinName = Get_Property.Net(objCurrPrin, 'Name', 0)
|
||||||
|
If CurrPrinName NE 'Domain Users' then ADGroups<-1> = CurrPrinName
|
||||||
|
Free_Class.Net(objCurrPrin)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Repeat
|
||||||
|
Free_Class.Net(objEnum)
|
||||||
|
end
|
||||||
|
Free_Class.Net(objPrinSearchResult)
|
||||||
|
end
|
||||||
|
Free_Class.Net(objPrin)
|
||||||
|
end
|
||||||
|
Free_class.Net(objPrinSearcher)
|
||||||
|
end
|
||||||
|
Free_Class.Net(objUserPrincipal)
|
||||||
|
end
|
||||||
|
Free_Class.Net(objPC)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Response = ADGroups
|
||||||
|
|
||||||
|
End Service
|
||||||
|
|
||||||
|
|
||||||
|
Service GetComputerDomain()
|
||||||
|
|
||||||
|
Domain = ''
|
||||||
|
DotNetHandle = StartDotNet("","4.0")
|
||||||
|
DotNetDir = CheckDotNet('4.0'):'\'
|
||||||
|
DirDllPath = DotNetDir:'System.DirectoryServices.dll'
|
||||||
|
Set_Property.Net(DotNetHandle, "AssemblyName", DirDllPath)
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
objDomain = Create_Class.Net(DotNetHandle, "System.DirectoryServices.ActiveDirectory.Domain", 0, '', '')
|
||||||
|
If Not(Get_status(errCode)) then
|
||||||
|
ObjCompDomain = Send_Message.Net(objDomain, 'GetComputerDomain', '', '', True$)
|
||||||
|
If Not(Get_Status(errCode)) then
|
||||||
|
Domain = Get_Property.Net(objCompDomAin, 'Name', False$)
|
||||||
|
Free_class.Net(objCompDomain)
|
||||||
|
end
|
||||||
|
Free_Class.Net(objDomain)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Response = Domain
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
154
LSL2/STPROC/CHASE_SERVICES.txt
Normal file
154
LSL2/STPROC/CHASE_SERVICES.txt
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
Compile function Chase_Services(@Service, @Params)
|
||||||
|
#pragma precomp SRP_PreCompiler
|
||||||
|
$insert LOGICAL
|
||||||
|
|
||||||
|
$Insert RDS_EQUATES
|
||||||
|
$Insert REACTOR_EQUATES
|
||||||
|
$Insert PRS_STAGE_EQUATES
|
||||||
|
$Insert PROD_SPEC_EQUATES
|
||||||
|
|
||||||
|
equ WOCust$ to 2
|
||||||
|
|
||||||
|
Declare function Rds_Services, Database_Services, Extract_SI_Keys, SRP_Clean_Array
|
||||||
|
Declare subroutine Database_Services, Clean_Insp_Services, Extract_SI_Keys
|
||||||
|
|
||||||
|
GoToService
|
||||||
|
|
||||||
|
Return Response or ""
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// SERVICES
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Service UpdateLoadedPsnWithPostStage()
|
||||||
|
|
||||||
|
activeWOs = ''
|
||||||
|
|
||||||
|
// Get all the WOs from the CONFIG table
|
||||||
|
reactorStart = 20
|
||||||
|
reactorEnd = 79
|
||||||
|
For reactorNum = reactorStart to reactorEnd
|
||||||
|
ReactType = Xlate('REACTOR', reactorNum, REACTOR_REACT_TYPE$, 'X')
|
||||||
|
If ReactType NE 'EPP' then
|
||||||
|
ReactorConfigKey = 'WO_DAILY_SCHED':reactorNum
|
||||||
|
WoNo = Field(Xlate('CONFIG', ReactorConfigKey, WOCust$, 'X'), ' ', 1)
|
||||||
|
If WoNo NE '' then
|
||||||
|
activeWos := WoNo
|
||||||
|
If reactorNum < reactorEnd then activeWos := @FM
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Next reactorNum
|
||||||
|
|
||||||
|
For WoIdx = 1 to Len(activeWOs)
|
||||||
|
// Get the RDSs for current WO
|
||||||
|
currentWO = activeWOs<WoIdx, 1>
|
||||||
|
RDSColumns = ''
|
||||||
|
RDSColumns<0, 1> = 'SEQ'
|
||||||
|
RdsList = RDS_Services('GetRDSData', currentWO, RDSColumns, False$, '')
|
||||||
|
// Loop through the RDSs
|
||||||
|
For rdsIdx = 1 to Len(RdsList)
|
||||||
|
// If RDS is not FQA, and is in LOAD or UNLOAD run stage, then update the PSN
|
||||||
|
rdsNum = RdsList<rdsIdx, 1>
|
||||||
|
FqaSigned = Rds_Services("GetFinalQAStatus", rdsNum)
|
||||||
|
RunStatus = Xlate('REACT_RUN', rdsNum, 'RUN_STATUS', 'X')
|
||||||
|
If (Not(FqaSigned)) and ((RunStatus _EQC 'load') or (RunStatus _EQC 'unload')) then
|
||||||
|
PsnNo = Xlate('RDS', rdsNum, RDS_PROD_SPEC_ID$, 'X')
|
||||||
|
specRec = Database_Services('ReadDataRow', 'PROD_SPEC', PsnNo)
|
||||||
|
currentStages = specRec<PROD_SPEC_PRS_STAGE_KEY$>
|
||||||
|
Swap @VM with @FM in currentStages
|
||||||
|
// Determine if a post stage already exists
|
||||||
|
postIdx = 0
|
||||||
|
For stageIdx = 1 to Len(currentStages)
|
||||||
|
currentStage = currentStages<stageIdx, 1>[-4, 4]
|
||||||
|
If currentStage _EQC 'post' then
|
||||||
|
postIdx = stageIdx
|
||||||
|
end
|
||||||
|
Until postIdx GT 0
|
||||||
|
Next stageIdx
|
||||||
|
postStageRec = ''
|
||||||
|
stageRecKey = PsnNo:'*':'POST'
|
||||||
|
// If post stage already exists, get it
|
||||||
|
If postIdx GT 0 then
|
||||||
|
postStageRec = Database_Services("ReadDataRow", "PRS_STAGE", stageRecKey)
|
||||||
|
end else
|
||||||
|
// otherwise, add the post stage key to the spec
|
||||||
|
currentStageKeys = specRec<PROD_SPEC_PRS_STAGE_KEY$>
|
||||||
|
updatedStageKeys = currentStageKeys:@VM:stageRecKey
|
||||||
|
specRec<PROD_SPEC_PRS_STAGE_KEY$> = updatedStageKeys
|
||||||
|
Database_Services('WriteDataRow', 'PROD_SPEC', PsnNo, specRec)
|
||||||
|
end
|
||||||
|
// Do not override existing specs if post stage already exists
|
||||||
|
currentSurfSigReq = postStageRec<PRS_STAGE_SURFSCAN_SIG_REQ$, 1>
|
||||||
|
If currentSurfSigReq EQ '' then postStageRec<PRS_STAGE_SURFSCAN_SIG_REQ$, 1> = False$
|
||||||
|
currentSurfRecipe = postStageRec<PRS_STAGE_SURFSCAN_RECIPE$, 1>
|
||||||
|
If currentSurfRecipe EQ '' then
|
||||||
|
// construct and apply the correct recipe
|
||||||
|
reactorNum = Xlate('RDS', rdsNum, RDS_REACTOR$, 'X')
|
||||||
|
waferSize = Xlate('CONFIG', 'WO_DAILY_SCHED':reactorNum, 4, 'X')[1, 1]
|
||||||
|
surfScanRecipe = waferSize : 'INCLEAN'
|
||||||
|
postStageRec<PRS_STAGE_SURFSCAN_RECIPE$, 1> = surfScanRecipe
|
||||||
|
end
|
||||||
|
// copy other surf scan specs from LWI stage
|
||||||
|
lwiStageRecKey = PsnNo:'*':'LWI'
|
||||||
|
lwiSurfHaze = Xlate('PRS_STAGE', lwiStageRecKey, PRS_STAGE_SURF_HAZE$, 'X')<1, 1>
|
||||||
|
currentSurfHaze = postStageRec<PRS_STAGE_SURF_HAZE$>
|
||||||
|
If currentSurfHaze EQ '' then postStageRec<PRS_STAGE_SURF_HAZE$> = lwiSurfHaze
|
||||||
|
lwiSurfDefects = Xlate('PRS_STAGE', lwiStageRecKey, PRS_STAGE_SURF_DEFECTS$, 'X')<1, 1>
|
||||||
|
currentSurfDefects = postStageRec<PRS_STAGE_SURF_DEFECTS$>
|
||||||
|
If currentSurfDefects EQ '' then postStageRec<PRS_STAGE_SURF_DEFECTS$> = lwiSurfDefects
|
||||||
|
lwiSampleQty = Xlate('PRS_STAGE', lwiStageRecKey, PRS_STAGE_SS_SAMP_QTY$, 'X')<1, 1>
|
||||||
|
currentSampleQty = postStageRec<PRS_STAGE_SS_SAMP_QTY$>
|
||||||
|
If currentSampleQty EQ '' then postStageRec<PRS_STAGE_SS_SAMP_QTY$> = lwiSampleQty
|
||||||
|
Database_Services('WriteDataRow', 'PRS_STAGE', stageRecKey, postStageRec)
|
||||||
|
|
||||||
|
// push out the spec changes
|
||||||
|
runOrderNum = Xlate('RDS', rdsNum, 'RUN_ORDER_NUM', 'X')
|
||||||
|
woMatKey = currentWO : '*' : runOrderNum
|
||||||
|
Clean_Insp_Services('UpdateAllCleanInsp', woMatKey)
|
||||||
|
end
|
||||||
|
Next rdsIdx
|
||||||
|
Next idx
|
||||||
|
|
||||||
|
End Service
|
||||||
|
|
||||||
|
|
||||||
|
Service AddAdHocPostCleanToPsnsByCustomerId(custId, cleansRecipe, TencorRecipe, sd, sh)
|
||||||
|
ProdVerKeys = ''
|
||||||
|
Extract_SI_Keys('PROD_VER', 'CUST_NO', custId, ProdVerKeys)
|
||||||
|
If ProdVerKeys NE '' then
|
||||||
|
PSNs = Xlate('PROD_VER', ProdVerKeys, 'PSN_ID', 'X')
|
||||||
|
UniquePsns = SRP_Clean_Array(PSNs, @VM, 'UNIQUE')
|
||||||
|
For each PsnNo in UniquePsns using @VM setting Idx
|
||||||
|
PsnStatus = Xlate('PROD_SPEC', PsnNo, PROD_SPEC_STATUS$, 'X')
|
||||||
|
If PsnStatus EQ 'A' then
|
||||||
|
postStageRecKey = PsnNo:'*':'POST'
|
||||||
|
postStageRec = Database_Services("ReadDataRow", "PRS_STAGE", postStageRecKey)
|
||||||
|
debug
|
||||||
|
* postCleanTool = 'AKRION1'
|
||||||
|
* currentPostCleanTool = postStageRec<PRS_STAGE_CLEAN_TOOL$>
|
||||||
|
* If currentPostCleanTool EQ '' then postStageRec<PRS_STAGE_CLEAN_TOOL$> = postCleanTool
|
||||||
|
|
||||||
|
postCleansRecipe = cleansRecipe
|
||||||
|
currentPostCleanRecipe = postStageRec<PRS_STAGE_CLEAN_RECIPE$>
|
||||||
|
If currentPostCleanRecipe EQ '' then postStageRec<PRS_STAGE_CLEAN_RECIPE$> = postCleansRecipe
|
||||||
|
|
||||||
|
postSurfScanRecipe = TencorRecipe
|
||||||
|
currentPostSurfScanRecipe = postStageRec<PRS_STAGE_SURFSCAN_RECIPE$>
|
||||||
|
If currentPostSurfScanRecipe EQ '' then postStageRec<PRS_STAGE_SURFSCAN_RECIPE$> = postSurfScanRecipe
|
||||||
|
|
||||||
|
surfHaze = sh
|
||||||
|
currentPostSurfHaze = postStageRec<PRS_STAGE_SURF_HAZE$>
|
||||||
|
If currentPostSurfHaze EQ '' then postStageRec<PRS_STAGE_SURF_HAZE$> = surfHaze
|
||||||
|
|
||||||
|
surfDefects = sd
|
||||||
|
currentPostSurfDefects = postStageRec<PRS_STAGE_SURF_DEFECTS$><1, 1>
|
||||||
|
If currentPostSurfDefects EQ '' then postStageRec<PRS_STAGE_SURF_DEFECTS$> = surfDefects
|
||||||
|
|
||||||
|
Database_Services('WriteDataRow', 'PRS_STAGE', postStageRecKey, postStageRec)
|
||||||
|
end
|
||||||
|
Next PsnNo
|
||||||
|
end
|
||||||
|
end service
|
||||||
|
|
||||||
|
|
||||||
|
|
769
LSL2/STPROC/JONATHAN_SERVICES.txt
Normal file
769
LSL2/STPROC/JONATHAN_SERVICES.txt
Normal file
@ -0,0 +1,769 @@
|
|||||||
|
Compile function JONATHAN_Services(@Service, @Params)
|
||||||
|
#pragma precomp SRP_PreCompiler
|
||||||
|
|
||||||
|
Declare function Gan_Services, Obj_Notes_Sent, msg, Check_Notes, Jonathan_Services, Database_Services, SRP_Datetime
|
||||||
|
Declare function Lsl_Users_Services, SRP_Time, RList, Error_Services, Obj_Wo_Mat, Pm_Services, Date_Services, Test_Run_Services
|
||||||
|
Declare function Reactor_Services, Reactor_Log_Services
|
||||||
|
Declare subroutine Start_Window, RList, Set_Status, Database_Services, Obj_Sap, Sap_Services, Btree.Extract
|
||||||
|
Declare subroutine Reactor_Services
|
||||||
|
|
||||||
|
$insert LOGICAL
|
||||||
|
$insert NOTE_PTRS_EQU
|
||||||
|
$insert MSG_EQUATES
|
||||||
|
$Insert APP_INSERTS
|
||||||
|
$Insert RLIST_EQUATES
|
||||||
|
$Insert WO_LOG_EQUATES
|
||||||
|
$Insert RDS_EQUATES
|
||||||
|
$Insert WO_STEP_EQUATES
|
||||||
|
$Insert WO_MAT_QA_EQUATES
|
||||||
|
$Insert REACT_RUN_EQUATES
|
||||||
|
$Insert RDS_LAYER_EQUATES
|
||||||
|
$Insert RDS_TEST_EQUATES
|
||||||
|
$Insert PM_EQUATES
|
||||||
|
$Insert PM_SPEC_EQUATES
|
||||||
|
$Insert WO_MAT_EQUATES
|
||||||
|
$Insert WM_OUT_EQUATES
|
||||||
|
/*$Insert TEST_RUN_EQUATES
|
||||||
|
$Insert TEST_RUN_WAFER_EQUATES
|
||||||
|
$Insert TEST_WAFER_PROD_EQUATES
|
||||||
|
$Insert TEST_RUN_TYPE_EQUATES
|
||||||
|
*/
|
||||||
|
$Insert REACTOR_EQUATES
|
||||||
|
|
||||||
|
|
||||||
|
GoToService
|
||||||
|
|
||||||
|
Return Response or ""
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// SERVICES
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Service GetReactorNumbersByType()
|
||||||
|
Debug
|
||||||
|
test = Reactor_Services('GetReactorNumbers', 'ASM')
|
||||||
|
test := @FM : Reactor_Services('GetReactorNumbers', 'ASM+')
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service SetReactorMetrics()
|
||||||
|
Reactors = Reactor_Services('GetReactorNumbers')
|
||||||
|
table = 'REACTOR_LOG'
|
||||||
|
for each ReactorNo in Reactors using @FM setting rPos
|
||||||
|
LatestTubeChangeRLIDASM = ''
|
||||||
|
LatestTubeChangeASMDTM = ''
|
||||||
|
LatestSuscChangRLIDASM = ''
|
||||||
|
LatestArmChangeIDASM = ''
|
||||||
|
LatestSuscChangRLIDHTR = ''
|
||||||
|
LatestArmChangeIDHTR = ''
|
||||||
|
ReactorType = XLATE('REACTOR', ReactorNo, REACTOR_REACT_TYPE$, 'X')
|
||||||
|
|
||||||
|
//Reset all metrics to 0
|
||||||
|
ReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactorNo)
|
||||||
|
ReactorRec<REACTOR_SUSC_THK$> = 0;
|
||||||
|
ReactorRec<REACTOR_SUSC_WFR_CNT$> = 0;
|
||||||
|
ReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = 0;
|
||||||
|
ReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = 0;
|
||||||
|
ReactorRec<REACTOR_LOWER_QUARTZ_THK$> = 0;
|
||||||
|
ReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = 0;
|
||||||
|
ReactorRec<REACTOR_ARMS_WFR_CNT$> = 0;
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, ReactorRec)
|
||||||
|
|
||||||
|
|
||||||
|
Begin Case
|
||||||
|
Case ReactorType EQ 'ASM' OR ReactorType EQ 'ASM+'
|
||||||
|
//Susceptor 699
|
||||||
|
LatestSusceptorChangeRLID = Reactor_Log_Services('GetLogsByReactorAndServID', ReactorNo, '699')<1,4>
|
||||||
|
RLDTM = XLATE('REACTOR_LOG', LatestSusceptorChangeRLID, 'END_DTM', 'X')
|
||||||
|
RDSList = Reactor_Services('GetReactorCassLoadHistoryRange', ReactorNo, RLDTM, SRP_Datetime('Now'))
|
||||||
|
for each RDSRow in RDSList using @FM
|
||||||
|
OldReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactorNo)
|
||||||
|
|
||||||
|
CurrTubeBellJarThk = OldReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
||||||
|
CurrTubeBellJarCnt = OldReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
||||||
|
CurrSuscThk = OldReactorRec<REACTOR_SUSC_THK$>
|
||||||
|
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
|
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
|
CurrLowerQuartzWfr = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
|
|
||||||
|
// Set values to 0 if blank
|
||||||
|
If CurrTubeBellJarThk = '' then CurrTubeBellJarThk = 0
|
||||||
|
If CurrTubeBellJarCnt = '' then CurrTubeBellJarCnt = 0
|
||||||
|
If CurrSuscThk = '' then CurrSuscThk = 0
|
||||||
|
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
||||||
|
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
||||||
|
If CurrLowerQuartzWfr = '' then CurrLowerQuartzWfr = 0
|
||||||
|
|
||||||
|
RDSNo = RDSRow<1,1>
|
||||||
|
TargetThickness = Xlate('RDS', RDSNo, 'THICK_TARGET_TOT', 'X', '')
|
||||||
|
TargetThickness = OConv(TargetThickness, 'MD3')
|
||||||
|
WaferCount = XLATE('RDS', RDSNo, RDS_WAFERS_IN$, 'X')
|
||||||
|
ThkAddition = WaferCount * TargetThickness
|
||||||
|
NewReactorRec = OldReactorRec
|
||||||
|
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk + ThkAddition
|
||||||
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + WaferCount
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec)
|
||||||
|
Next RDSRow
|
||||||
|
|
||||||
|
//TubeChange 240
|
||||||
|
LatestSusceptorChangeRLID = Reactor_Log_Services('GetLogsByReactorAndServID', ReactorNo, '240')<1,4>
|
||||||
|
RLDTM = XLATE('REACTOR_LOG', LatestSusceptorChangeRLID, 'END_DTM', 'X')
|
||||||
|
RDSList = Reactor_Services('GetReactorCassLoadHistoryRange', ReactorNo, RLDTM, SRP_Datetime('Now'))
|
||||||
|
for each RDSRow in RDSList using @FM
|
||||||
|
OldReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactorNo)
|
||||||
|
|
||||||
|
CurrTubeBellJarThk = OldReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
||||||
|
CurrTubeBellJarCnt = OldReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
||||||
|
|
||||||
|
// Set values to 0 if blank
|
||||||
|
If CurrTubeBellJarThk = '' then CurrTubeBellJarThk = 0
|
||||||
|
If CurrTubeBellJarCnt = '' then CurrTubeBellJarCnt = 0
|
||||||
|
|
||||||
|
RDSNo = RDSRow<1,1>
|
||||||
|
TargetThickness = Xlate('RDS', RDSNo, 'THICK_TARGET_TOT', 'X', '')
|
||||||
|
TargetThickness = OConv(TargetThickness, 'MD3')
|
||||||
|
WaferCount = XLATE('RDS', RDSNo, RDS_WAFERS_IN$, 'X')
|
||||||
|
ThkAddition = WaferCount * TargetThickness
|
||||||
|
NewReactorRec = OldReactorRec
|
||||||
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk + ThkAddition
|
||||||
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt + WaferCount
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec)
|
||||||
|
Next RDSRow
|
||||||
|
//Arms 21
|
||||||
|
LatestSusceptorChangeRLID = Reactor_Log_Services('GetLogsByReactorAndServID', ReactorNo, '21')<1,4>
|
||||||
|
RLDTM = XLATE('REACTOR_LOG', LatestSusceptorChangeRLID, 'END_DTM', 'X')
|
||||||
|
RDSList = Reactor_Services('GetReactorCassLoadHistoryRange', ReactorNo, RLDTM, SRP_Datetime('Now'))
|
||||||
|
for each RDSRow in RDSList using @FM
|
||||||
|
OldReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactorNo)
|
||||||
|
CurrArmsWfrCnt = OldReactorRec<REACTOR_ARMS_WFR_CNT$>
|
||||||
|
If CurrArmsWfrCnt = '' then CurrArmsWfrCnt = 0
|
||||||
|
RDSNo = RDSRow<1,1>
|
||||||
|
WaferCount = XLATE('RDS', RDSNo, RDS_WAFERS_IN$, 'X')
|
||||||
|
NewReactorRec = OldReactorRec
|
||||||
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec)
|
||||||
|
Next RDSRow
|
||||||
|
Case ReactorType EQ 'HTR'
|
||||||
|
//Susceptor 699
|
||||||
|
LatestSusceptorChangeRLID = Reactor_Log_Services('GetLogsByReactorAndServID', ReactorNo, '699')<1,4>
|
||||||
|
RLDTM = XLATE('REACTOR_LOG', LatestSusceptorChangeRLID, 'END_DTM', 'X')
|
||||||
|
RDSList = Reactor_Services('GetReactorCassLoadHistoryRange', ReactorNo, RLDTM, SRP_Datetime('Now'))
|
||||||
|
for each RDSRow in RDSList using @FM
|
||||||
|
OldReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactorNo)
|
||||||
|
|
||||||
|
CurrSuscThk = OldReactorRec<REACTOR_SUSC_THK$>
|
||||||
|
CurrSuscWfrCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
|
|
||||||
|
// Set values to 0 if blank
|
||||||
|
If CurrSuscThk = '' then CurrSuscThk = 0
|
||||||
|
If CurrSuscWfrCnt = '' then CurrSuscWfrCnt = 0
|
||||||
|
|
||||||
|
RDSNo = RDSRow<1,1>
|
||||||
|
TargetThickness = Xlate('RDS', RDSNo, 'THICK_TARGET_TOT', 'X', '')
|
||||||
|
TargetThickness = OConv(TargetThickness, 'MD3')
|
||||||
|
WaferCount = XLATE('RDS', RDSNo, RDS_WAFERS_IN$, 'X')
|
||||||
|
CntAddition = (WaferCount / 5)
|
||||||
|
ThkAddition = (WaferCount / 5) * TargetThickness
|
||||||
|
NewReactorRec = OldReactorRec
|
||||||
|
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk + ThkAddition
|
||||||
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + CntAddition
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec)
|
||||||
|
Next RDSRow
|
||||||
|
|
||||||
|
//TubeChange 1280
|
||||||
|
LatestSusceptorChangeRLID = Reactor_Log_Services('GetLogsByReactorAndServID', ReactorNo, '1280')<1,4>
|
||||||
|
RLDTM = XLATE('REACTOR_LOG', LatestSusceptorChangeRLID, 'END_DTM', 'X')
|
||||||
|
RDSList = Reactor_Services('GetReactorCassLoadHistoryRange', ReactorNo, RLDTM, SRP_Datetime('Now'))
|
||||||
|
for each RDSRow in RDSList using @FM
|
||||||
|
OldReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactorNo)
|
||||||
|
|
||||||
|
CurrTubeBellJarThk = OldReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
||||||
|
CurrTubeBellJarCnt = OldReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
||||||
|
|
||||||
|
// Set values to 0 if blank
|
||||||
|
If CurrTubeBellJarThk = '' then CurrTubeBellJarThk = 0
|
||||||
|
If CurrTubeBellJarCnt = '' then CurrTubeBellJarCnt = 0
|
||||||
|
|
||||||
|
RDSNo = RDSRow<1,1>
|
||||||
|
TargetThickness = Xlate('RDS', RDSNo, 'THICK_TARGET_TOT', 'X', '')
|
||||||
|
TargetThickness = OConv(TargetThickness, 'MD3')
|
||||||
|
WaferCount = XLATE('RDS', RDSNo, RDS_WAFERS_IN$, 'X')
|
||||||
|
CntAddition = (WaferCount / 5)
|
||||||
|
ThkAddition = (WaferCount / 5) * TargetThickness
|
||||||
|
NewReactorRec = OldReactorRec
|
||||||
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk + ThkAddition
|
||||||
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt + CntAddition
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec)
|
||||||
|
Next RDSRow
|
||||||
|
|
||||||
|
//Arms 21
|
||||||
|
LatestSusceptorChangeRLID = Reactor_Log_Services('GetLogsByReactorAndServID', ReactorNo, '21')<1,4>
|
||||||
|
RLDTM = XLATE('REACTOR_LOG', LatestSusceptorChangeRLID, 'END_DTM', 'X')
|
||||||
|
RDSList = Reactor_Services('GetReactorCassLoadHistoryRange', ReactorNo, RLDTM, SRP_Datetime('Now'))
|
||||||
|
for each RDSRow in RDSList using @FM
|
||||||
|
OldReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactorNo)
|
||||||
|
CurrArmsWfrCnt = OldReactorRec<REACTOR_ARMS_WFR_CNT$>
|
||||||
|
If CurrArmsWfrCnt = '' then CurrArmsWfrCnt = 0
|
||||||
|
RDSNo = RDSRow<1,1>
|
||||||
|
WaferCount = XLATE('RDS', RDSNo, RDS_WAFERS_IN$, 'X')
|
||||||
|
NewReactorRec = OldReactorRec
|
||||||
|
NewReactorRec<REACTOR_ARMS_WFR_CNT$> = CurrArmsWfrCnt + WaferCount
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec)
|
||||||
|
Next RDSRow
|
||||||
|
|
||||||
|
Case ReactorType EQ 'EPP'
|
||||||
|
|
||||||
|
//BellJar 1092
|
||||||
|
LatestSusceptorChangeRLID = Reactor_Log_Services('GetLogsByReactorAndServID', ReactorNo, '1092')<1,4>
|
||||||
|
RLDTM = XLATE('REACTOR_LOG', LatestSusceptorChangeRLID, 'END_DTM', 'X')
|
||||||
|
RDSList = Reactor_Services('GetReactorCassLoadHistoryRange', ReactorNo, RLDTM, SRP_Datetime('Now'))
|
||||||
|
|
||||||
|
for each RDSRow in RDSList using @FM
|
||||||
|
OldReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactorNo)
|
||||||
|
RDSNo = RDSRow<1,1>
|
||||||
|
TargetThickness = Xlate('RDS', RDSNo, 'THICK_TARGET_TOT', 'X', '')
|
||||||
|
TargetThickness = OConv(TargetThickness, 'MD3')
|
||||||
|
NewReactorRec = OldReactorRec
|
||||||
|
CurrTubeBellJarThk = OldReactorRec<REACTOR_TUBE_BELL_JAR_THK$>
|
||||||
|
CurrTubeBellJarCnt = OldReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$>
|
||||||
|
|
||||||
|
// Set values to 0 if blank
|
||||||
|
If CurrTubeBellJarThk = '' then CurrTubeBellJarThk = 0
|
||||||
|
If CurrTubeBellJarCnt = '' then CurrTubeBellJarCnt = 0
|
||||||
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_THK$> = CurrTubeBellJarThk + TargetThickness
|
||||||
|
NewReactorRec<REACTOR_TUBE_BELL_JAR_WFR_CNT$> = CurrTubeBellJarCnt + 1
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec)
|
||||||
|
Next RDSRow
|
||||||
|
|
||||||
|
|
||||||
|
//1067 Lower Quartz
|
||||||
|
LatestSusceptorChangeRLID = Reactor_Log_Services('GetLogsByReactorAndServID', ReactorNo, '1067')<1,4>
|
||||||
|
RLDTM = XLATE('REACTOR_LOG', LatestSusceptorChangeRLID, 'END_DTM', 'X')
|
||||||
|
RDSList = Reactor_Services('GetReactorCassLoadHistoryRange', ReactorNo, RLDTM, SRP_Datetime('Now'))
|
||||||
|
|
||||||
|
for each RDSRow in RDSList using @FM
|
||||||
|
OldReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactorNo)
|
||||||
|
RDSNo = RDSRow<1,1>
|
||||||
|
TargetThickness = Xlate('RDS', RDSNo, 'THICK_TARGET_TOT', 'X', '')
|
||||||
|
TargetThickness = OConv(TargetThickness, 'MD3')
|
||||||
|
NewReactorRec = OldReactorRec
|
||||||
|
CurrLowerQuartzThk = OldReactorRec<REACTOR_LOWER_QUARTZ_THK$>
|
||||||
|
CurrLowerQuartzCnt = OldReactorRec<REACTOR_LOWER_QUARTZ_WFR$>
|
||||||
|
|
||||||
|
// Set values to 0 if blank
|
||||||
|
If CurrLowerQuartzThk = '' then CurrLowerQuartzThk = 0
|
||||||
|
If CurrLowerQuartzCnt = '' then CurrLowerQuartzCnt = 0
|
||||||
|
NewReactorRec<REACTOR_LOWER_QUARTZ_THK$> = CurrLowerQuartzThk + TargetThickness
|
||||||
|
NewReactorRec<REACTOR_LOWER_QUARTZ_WFR$> = CurrLowerQuartzCnt + 1
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec)
|
||||||
|
Next RDSRow
|
||||||
|
|
||||||
|
//699 Susceptor
|
||||||
|
LatestSusceptorChangeRLID = Reactor_Log_Services('GetLogsByReactorAndServID', ReactorNo, '699')<1,4>
|
||||||
|
RLDTM = XLATE('REACTOR_LOG', LatestSusceptorChangeRLID, 'END_DTM', 'X')
|
||||||
|
RDSList = Reactor_Services('GetReactorCassLoadHistoryRange', ReactorNo, RLDTM, SRP_Datetime('Now'))
|
||||||
|
|
||||||
|
for each RDSRow in RDSList using @FM
|
||||||
|
OldReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactorNo)
|
||||||
|
RDSNo = RDSRow<1,1>
|
||||||
|
TargetThickness = Xlate('RDS', RDSNo, 'THICK_TARGET_TOT', 'X', '')
|
||||||
|
TargetThickness = OConv(TargetThickness, 'MD3')
|
||||||
|
NewReactorRec = OldReactorRec
|
||||||
|
CurrSuscThk = OldReactorRec<REACTOR_SUSC_THK$>
|
||||||
|
CurrSuscCnt = OldReactorRec<REACTOR_SUSC_WFR_CNT$>
|
||||||
|
|
||||||
|
// Set values to 0 if blank
|
||||||
|
If CurrSuscThk = '' then CurrSuscThk = 0
|
||||||
|
If CurrSuscCnt = '' then CurrSuscCnt = 0
|
||||||
|
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk + TargetThickness
|
||||||
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscCnt + 1
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec)
|
||||||
|
Next RDSRow
|
||||||
|
LatestSusceptorChangeRLID = Reactor_Log_Services('GetLogsByReactorAndServID', ReactorNo, '699')<1,4>
|
||||||
|
RLDTM = XLATE('REACTOR_LOG', LatestSusceptorChangeRLID, 'END_DTM', 'X')
|
||||||
|
RDSList = Reactor_Services('GetReactorCassLoadHistoryRange', ReactorNo, RLDTM, SRP_Datetime('Now'))
|
||||||
|
NewReactorRec<REACTOR_SUSC_THK$> = CurrSuscThk + TargetThickness
|
||||||
|
NewReactorRec<REACTOR_SUSC_WFR_CNT$> = CurrSuscWfrCnt + 1
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactorNo, NewReactorRec)
|
||||||
|
End Case
|
||||||
|
Next ReactorNo
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service LaunchWindow()
|
||||||
|
Start_Window('NDW_VIEW_TEST_RUN','', '10000001')
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service GetTestRunObj(TestRunID)
|
||||||
|
debug
|
||||||
|
TestRunObj = ''
|
||||||
|
TestRunRec = Test_Run_Services('GetTestRunById', TestRunID)
|
||||||
|
//Start getting translated values for object
|
||||||
|
RunDTM = OConv(TestRunRec<TEST_RUN_RUN_DTM$>, 'DT')
|
||||||
|
ReasonForTest = Xlate('TEST_RUN_TYPE', TestRunRec<TEST_RUN_RUN_TYPE_ID$>, TEST_RUN_TYPE_RUN_TYPE$, 'X')
|
||||||
|
RelatedRDS = TestRunRec<TEST_RUN_RDS_ID$>
|
||||||
|
RelatedPSN = TestRunRec<TEST_RUN_PROD_SPEC_ID$>
|
||||||
|
EqpType = TestRunRec<TEST_RUN_EQUIPMENT_TYPE$>
|
||||||
|
EqpID = TestRunRec<TEST_RUN_EQUIPMENT_ID$>
|
||||||
|
TWKeys = TestRunRec<TEST_RUN_TEST_RUN_WAFER_IDS$>
|
||||||
|
TWUsageProds = ''
|
||||||
|
TWUsageQtys = ''
|
||||||
|
for each TWKey in TWKeys using @VM setting tPos
|
||||||
|
TRWRec = Test_Run_Services('GetTestRunWaferByID', TWKey)
|
||||||
|
TestWaferProdName = XLATE('TEST_WAFER_PROD', TRWRec<TEST_RUN_WAFER_TEST_WAFER_PROD_ID$>, TEST_WAFER_PROD_PART_NAME$, 'X')
|
||||||
|
Locate TestWaferProdName in TWUsageProds setting iPos then
|
||||||
|
TWUsageProds<1,iPos> = TestWaferProdName
|
||||||
|
TWUsageQtys<1,iPos> = TWUsageQtys<1,iPos> + 1
|
||||||
|
end else
|
||||||
|
TWUsageProds<1,-1> = TestWaferProdName
|
||||||
|
TWUsageQtys<1,-1> = 1
|
||||||
|
end
|
||||||
|
Next TWKey
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service WFR_STATUS(WMOKey)
|
||||||
|
|
||||||
|
Result = ''
|
||||||
|
WfrStatus = ''
|
||||||
|
WMOSlots = Xlate('WM_OUT', WMOKey, 'RDS', 'X')
|
||||||
|
WMOZoneProfile = Xlate('WM_OUT', WMOKey, WM_OUT_ZONE$, 'X')
|
||||||
|
WMORDSTestKeys = XLATE('WM_OUT', WMOKey, 'CASS_RDS_MET_KEYS', 'X')
|
||||||
|
for each RDSNo in WMOSlots using @VM setting sPos
|
||||||
|
|
||||||
|
ReactRunRec = Database_Services('ReadDataRow', 'REACT_RUN', RDSNo)
|
||||||
|
SlotZone = Xlate('WM_OUT', WMOKey, WM_OUT_ZONE$, 'X')<1, sPos>
|
||||||
|
//Get the RDS_Test for this slot.
|
||||||
|
//Find the right RDS Test Key
|
||||||
|
ThisSlotRDSTestKeys = ''
|
||||||
|
for each RDSTestKey in WMORDSTestKeys using @VM
|
||||||
|
RDSTestRec = Database_Services('ReadDataRow', 'RDS_TEST', RDSTestKey)
|
||||||
|
If RDSTestRec<RDS_TEST_ZONE$> EQ SlotZone AND RDSTestRec<RDS_TEST_RDS_NO$> EQ RDSNo then
|
||||||
|
ThisSlotRDSTestKeys<1, -1> = RDSTestKey
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
Next RDSTestKey
|
||||||
|
RDSTestDataEntered = XLATE('RDS_TEST', ThisSlotRDSTestKeys, 'MET_ENTERED', 'X')
|
||||||
|
If RDSTestDataEntered NE '' then
|
||||||
|
Locate False$ in RDSTestDataEntered using @VM setting iPos then Result = 'ULMET' else
|
||||||
|
MetOutOfSpec = Sum(Xlate('RDS_TEST', ThisSlotRDSTestKeys, 'OUT_OF_SPEC', 'X'))
|
||||||
|
If MetOutOfSpec then
|
||||||
|
//Check for an NCR
|
||||||
|
SlotNcr = Xlate('WM_OUT', WMOKey, 'WM_OUT_SLOT_NCR', 'X')<1, sPos>
|
||||||
|
If SlotNcr NE '' then
|
||||||
|
MetOutOfSpec = False$
|
||||||
|
end
|
||||||
|
end
|
||||||
|
If MetOutOfSpec then
|
||||||
|
Result = 'SPEC'
|
||||||
|
end else
|
||||||
|
Result = 'ULOAD'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
Result = 'ULMET'
|
||||||
|
end
|
||||||
|
|
||||||
|
WfrStatus<sPos> = Result
|
||||||
|
Next RDSNo
|
||||||
|
debug
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service Test()
|
||||||
|
Debug
|
||||||
|
RDSTestKeys = XLATE('WM_OUT', '172172*1*10', 'CASS_RDS_MET_KEYS', 'X')
|
||||||
|
TestDataEntered = XLATE('RDS_TEST', RDSTestKeys, 'MET_ENTERED', 'X')
|
||||||
|
//WMOWafers = XLATE('WM_OUT', '172172*1*10', 'WFR_STATUS', 'X')
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TestEquates()
|
||||||
|
debug
|
||||||
|
test = WO_MAT_MAKEUP_BOX$
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service GetWWInfo()
|
||||||
|
debug
|
||||||
|
WWInfo = Date_Services('GetWeekNum', '20345.12345')
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service PMINformation()
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service RGBToInt()
|
||||||
|
debug
|
||||||
|
R = 242
|
||||||
|
G = 156
|
||||||
|
B = 63
|
||||||
|
IntegerVal = (B * 65536) + (G * 256) + R
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TestPMMFS()
|
||||||
|
Debug
|
||||||
|
|
||||||
|
PMRec = Database_Services('ReadDataRow', 'PM', '10115')
|
||||||
|
Late = XLATE('PM', '10115', 'LATE', 'X')
|
||||||
|
SchedQty = XLATE('PM_SPEC', PMRec<PM_PMS_ID$>, 'LATE_START_QTY', 'X')
|
||||||
|
CompQty = PMRec<PM_COMP_QTY$>
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service AddComments()
|
||||||
|
debug
|
||||||
|
Response = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service Get5SPMs()
|
||||||
|
test = Pm_Services('Get5SPMs', True$)
|
||||||
|
end service
|
||||||
|
|
||||||
|
|
||||||
|
Service GetOnShiftSupervisor()
|
||||||
|
debug
|
||||||
|
Response = Lsl_Users_Services('GetShiftByDate', '8/23/2023 06:00')
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TriggerCassComp(WOMatKey)
|
||||||
|
debug
|
||||||
|
SAP_Services('AddCassCompTransaction', WOMatKey)
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TestGRProps(WOMatKey)
|
||||||
|
*172174
|
||||||
|
*1
|
||||||
|
debug
|
||||||
|
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
||||||
|
GRProps = obj_WO_Mat('GetGRProps',WOMatKey:@RM:WOMatRec)
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TriggerScrap(WorkOrderNo, CassNo, TransQty)
|
||||||
|
//172172
|
||||||
|
//1
|
||||||
|
//2
|
||||||
|
obj_SAP('AddTransaction','SCRAP_IN':@RM:WorkOrderNo:@RM:CassNo:@RM:TransQty)
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TriggerBatchMove
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TestOEE
|
||||||
|
keyId = '20259*35*5117*U442'
|
||||||
|
stopDTM = XLATE('DAILY_PERFORMANCE_REPORT', keyId, 'STOP_DTM', 'X')
|
||||||
|
OEE = XLATE('DAILY_PERFORMANCE_REPORT', keyId, 'OEE_CALCULATION', 'X')
|
||||||
|
Response = OEE
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TestZero()
|
||||||
|
debug
|
||||||
|
ShouldBeZero = 1 - 1
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service IsRDSMetOutOfSpec(RDSNo)
|
||||||
|
debug
|
||||||
|
*RDSNo = '586181'
|
||||||
|
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo)
|
||||||
|
RDSWaferZones = RDSRec<RDS_ZONE$>
|
||||||
|
ReactorType = Xlate('RDS', RDSNo, 'REACTOR_TYPE', 'X')
|
||||||
|
IsEpiPro = Xlate('RDS', RDSNo, 'REACTOR_TYPE', 'X') EQ 'EPP'
|
||||||
|
LSKeys = XLATE('REACT_RUN',RDSNo, REACT_RUN_RDS_LAYER_KEYS$, 'X')
|
||||||
|
for each LayerSpecKey in LSKeys using @VM setting lPos
|
||||||
|
LSRec = Database_Services('ReadDataRow', 'RDS_LAYER', LayerSpecKey)
|
||||||
|
IsMetOOS = XLATE('RDS_LAYER',LayerSpecKey,'TEST_OUT_OF_SPEC','X')<1, lPos>
|
||||||
|
IF IsMetOOS then
|
||||||
|
If IsEpiPro then
|
||||||
|
RDSTestKey = LSRec<RDS_LAYER_RDS_TEST_KEYS$, lPos>
|
||||||
|
RDSTestZone = XLate('RDS_TEST', RDSTestKey, RDS_TEST_ZONE$, 'X')
|
||||||
|
RDSTestLayer = XLate('RDS_TEST', RDSTestKey, RDS_TEST_LS_ID$, 'X')
|
||||||
|
WafersInZone = ''
|
||||||
|
|
||||||
|
for each WaferZone in RDSWaferZones using @VM setting wPos
|
||||||
|
If WaferZone EQ RDSTestZone then
|
||||||
|
WafersInZone<-1> = wPos
|
||||||
|
end
|
||||||
|
Next WaferZone
|
||||||
|
Response = RDSTestLayer : ' Zone ' : RDSTestZone : ' Out of Spec'
|
||||||
|
end else
|
||||||
|
Response = 'Out of Spec'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Next LayerSpec
|
||||||
|
* TestOutOfSpec = XLATE('RDS_LAYER',LSKeys,'TEST_OUT_OF_SPEC','X')
|
||||||
|
* MetOutOfSpec = SUM(XLATE('RDS_LAYER',LSKeys,'TEST_OUT_OF_SPEC','X'))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
|
|
||||||
|
Service TestCOMB_Status()
|
||||||
|
debug
|
||||||
|
|
||||||
|
|
||||||
|
RDSNo = '586181'
|
||||||
|
RDSWOMatKey = XLATE('RDS', RDSNo, 'WO_MAT_KEY', 'X')
|
||||||
|
WOMatRepStatus = XLATE('WO_MAT',RDSWOMatKey,'REP_STATUS','X')
|
||||||
|
RunStatus = XLATE('REACT_RUN',RDSNo,'RUN_STATUS','X')
|
||||||
|
RunStatus = OCONV(RunStatus,'[RUN_STATUS_CONV]')
|
||||||
|
Ans = ''
|
||||||
|
BEGIN CASE
|
||||||
|
CASE WOMatRepStatus NE '' AND RunStatus NE ''
|
||||||
|
Ans = WOMatRepStatus
|
||||||
|
|
||||||
|
CASE WOMatRepStatus = '' AND RunStatus NE ''
|
||||||
|
Ans = RunStatus
|
||||||
|
|
||||||
|
CASE WOMatRepStatus NE '' AND RunStatus = ''
|
||||||
|
Ans = WOMatRepStatus
|
||||||
|
|
||||||
|
CASE 1
|
||||||
|
Ans = ''
|
||||||
|
END CASE
|
||||||
|
CombStatus = Xlate('RDS', RDSNo, 'COMB_STATUS', 'X')
|
||||||
|
Response = CombStatus
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TestChatGPT()
|
||||||
|
Stop
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service getWOMat()
|
||||||
|
debug
|
||||||
|
effectedCassettes = ''
|
||||||
|
for WONo = 171809 to 172010
|
||||||
|
for CassNo = 1 to 99
|
||||||
|
WOMatKey = WONo : '*' : CassNo
|
||||||
|
WOMatQaRec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatKey)
|
||||||
|
Profiles = WOMatQaRec<WO_MAT_QA_PROFILE$>
|
||||||
|
DataPoints = WOMatQARec<WO_MAT_QA_DATA_POINTS$>
|
||||||
|
For each Profile in Profiles using @VM setting ProfIndex
|
||||||
|
If Profile EQ '1THICK_ONLY' then
|
||||||
|
|
||||||
|
List = DataPoints<1, ProfIndex>
|
||||||
|
IF DCOUNT(List, @SVM) LT 5 AND DCOUNT(List, @SVM) GT 0 then
|
||||||
|
debug
|
||||||
|
EffectedCassettes<-1> = WOMatKey : ',' : XLATE('WO_MAT', WOMatKey, 'RDS_NO', 'X') : CRLF$
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Next Profile
|
||||||
|
|
||||||
|
|
||||||
|
Next CassNo
|
||||||
|
Next WONo
|
||||||
|
OSWrite effectedCassettes To 'C:\users\ecouellette\desktop\effectedCassettes.csv'
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service ChangeCustNoByWO(WONo, NewCustNo, NewProdVerNo, NewPSNo)
|
||||||
|
// Update WO_LOG record
|
||||||
|
WOLogRec = Database_Services('ReadDataRow', 'WO_LOG', WONo)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
WOLogRec<WO_LOG_CUST_NO$> = NewCustNo
|
||||||
|
WOLogRec<WO_LOG_PROD_VER_NO$> = NewProdVerNo
|
||||||
|
Database_Services('WriteDataRow', 'WO_LOG', WONo, WOLogRec, True$, False$, True$)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
WOStepKey = WONo:'*1'
|
||||||
|
// Update WO_STEP record
|
||||||
|
WOStepRec = Database_Services('ReadDataRow', 'WO_STEP', WOStepKey)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
WOStepRec<WO_STEP_PROD_SPEC_ID$> = NewPSNo
|
||||||
|
Database_Services('WriteDataRow', 'WO_STEP', WOStepKey, WOStepRec, True$, False$, True$)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
// Update RDS Keys
|
||||||
|
RDSKeys = Xlate('WO_STEP', WOStepKey, 'RDS_KEY', 'X')
|
||||||
|
If RDSKeys NE '' then
|
||||||
|
For each RDSKey in RDSKeys using @VM setting vPos
|
||||||
|
RDSRec = Database_Services('ReadDataRow', 'RDS', RDSKey)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
RDSRec<RDS_CUST_NO$> = NewCustNo
|
||||||
|
RDSRec<RDS_PROD_SPEC_ID$> = NewPSNo
|
||||||
|
Database_Services('WriteDataRow', 'RDS', RDSKey, RDSRec, True$, False$, True$)
|
||||||
|
end
|
||||||
|
Until Error_Services('HasError')
|
||||||
|
Next RDSKey
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
If Error_Services('HasError') then
|
||||||
|
Error_Services('DisplayError')
|
||||||
|
end
|
||||||
|
|
||||||
|
return
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service GetRDSMovesByDays(Day, FilePath)
|
||||||
|
|
||||||
|
SelectSent = 'SELECT RDS WITH DATE_OUT EQ ':QUOTE(Day)
|
||||||
|
Set_Status(0)
|
||||||
|
RList(SelectSent, TARGET_ACTIVELIST$, "", "", "")
|
||||||
|
|
||||||
|
|
||||||
|
rdsArray = ''
|
||||||
|
IF @RecCount then
|
||||||
|
EoF = 0
|
||||||
|
NumKeys = @RecCount
|
||||||
|
Cnt = 0
|
||||||
|
|
||||||
|
Loop
|
||||||
|
ReadNext rds Else EoF = 1
|
||||||
|
until EoF
|
||||||
|
rdsMoves = XLATE('RDS', rds, 'WAFERS_IN', 'X')
|
||||||
|
rdsArray := rds : ',' : rdsMoves : CRLF$
|
||||||
|
Repeat
|
||||||
|
|
||||||
|
end
|
||||||
|
OSWrite rdsArray to FilePath
|
||||||
|
ClearSelect TARGET_ACTIVELIST$
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service DetermineNearShiftChange
|
||||||
|
debug
|
||||||
|
|
||||||
|
CurrTime = 64320
|
||||||
|
CurrHour = SRP_TIME('Hour', CurrTime)
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service OutPutSchedule(StartDate, EndDate)
|
||||||
|
debug
|
||||||
|
OutputData = ''
|
||||||
|
StartDateConv = IConv(StartDate, 'D')
|
||||||
|
EndDateConv = IConv(EndDate, 'D')
|
||||||
|
|
||||||
|
for i = StartDateConv to EndDateConv
|
||||||
|
//DayStartDTM = i : '.' : 21600
|
||||||
|
//NightStartDTM = i : '.' : 64800
|
||||||
|
DayStartDTM = SRP_Datetime('AddHours', i, 7)
|
||||||
|
NightStartDTM = SRP_Datetime('AddHours', i, 18)
|
||||||
|
|
||||||
|
DayShift = Lsl_Users_Services('GetShiftByDate', OCONV(DayStartDTM, 'DT'))<1,1>
|
||||||
|
NightShift = Lsl_Users_Services('GetShiftByDate', OCONV(NightStartDTM, 'DT'))<1,1>
|
||||||
|
OutputData := OConv(i, 'D4/H') : ',' : DayShift : ' and ' : NightShift : CRLF$
|
||||||
|
Next i
|
||||||
|
OSWrite OutputData to 'C:\Users\MESOuellette\Desktop\ShiftCalendar.csv'
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TestMassDates()
|
||||||
|
OutputData = ''
|
||||||
|
ExpectedCalRec = Database_Services('ReadDataRow', 'SYSLISTS', 'CAL_EXPECTED')
|
||||||
|
for i = 1 to DCOUNT(ExpectedCalRec<1>, @VM)
|
||||||
|
Dtm = ExpectedCalRec<1, i>
|
||||||
|
ExpectedShift = ExpectedCalRec<2, i>
|
||||||
|
ReturnedShift = Lsl_Users_Services('GetShiftByDate', Dtm)<1,1>
|
||||||
|
Pass = (ExpectedShift EQ ReturnedShift)
|
||||||
|
|
||||||
|
ExpectedCalRec<3,i> = ReturnedShift
|
||||||
|
ExpectedCalRec<4,i> = Pass
|
||||||
|
OutputData := Dtm : ',' : ExpectedShift : ',' : ReturnedShift : ',' : Pass : CRLF$
|
||||||
|
Next i
|
||||||
|
OSWrite OutputData to 'C:\Users\MESOuellette\Desktop\CalDataTestResults.csv'
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TestShiftCalendar
|
||||||
|
debug
|
||||||
|
shiftCalData = ''
|
||||||
|
for date = 20090 to 20454
|
||||||
|
|
||||||
|
DayShift = SRP_Datetime('AddHours', date, 12)
|
||||||
|
NightShift = SRP_Datetime('AddHours', DayShift, 11)
|
||||||
|
|
||||||
|
OnShiftDay = Lsl_Users_Services('GetShiftByDate', OCONV(DayShift, 'DT'), 1)
|
||||||
|
OnShiftNight = Lsl_Users_Services('GetShiftByDate', OCONV(NightShift, 'DT'), 1)
|
||||||
|
ShiftCalData := OCONV(DayShift, 'DT') : ',' : OnShiftDay<1,1> : ',' : OnShiftNight : CRLF$
|
||||||
|
Next date
|
||||||
|
|
||||||
|
OSWrite shiftCalData to 'C:\Users\MESOuellette\Desktop\CalData.csv'
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service GetInboundPending
|
||||||
|
debug
|
||||||
|
rv = Set_Status(0)
|
||||||
|
LookBack = 15 /* Days */
|
||||||
|
StartDate = OCONV(Date()-LookBack, 'D4/')
|
||||||
|
* SelectStatement = "SELECT WO_MAT WITH SAP_TX_DT >= ": Quote(StartDate) :" AND WITHOUT SAP_BATCH_NO"
|
||||||
|
RowCount = 0
|
||||||
|
SelectStatement = "SELECT WO_MAT WITH SAP_BATCH_NO EQ ''"
|
||||||
|
RList(SelectStatement, 5)
|
||||||
|
If @List_Active EQ 3 then
|
||||||
|
SelectStatement = "SELECT WO_MAT WITH SAP_TX_DT >= ": Quote(StartDate)
|
||||||
|
RList(SelectStatement, 5)
|
||||||
|
If @List_Active EQ 3 then
|
||||||
|
EOF = False$
|
||||||
|
Loop
|
||||||
|
ReadNext KeyID else EOF = True$
|
||||||
|
Until EOF
|
||||||
|
WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', KeyID)
|
||||||
|
If WOMatRow<87> EQ '' then RowCount += 1
|
||||||
|
Repeat
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service CheckForNew()
|
||||||
|
|
||||||
|
Response = True$
|
||||||
|
if xlate( 'NOTE_PTRS', @user4, 'NEW_MESSAGES', 'X' ) then
|
||||||
|
NotePtrRec = xlate( 'NOTE_PTRS', @user4, '', 'X' )
|
||||||
|
LOCATE 'Yes' in NotePtrRec<note_ptrs_new$> using @VM setting mPos then
|
||||||
|
* the top one is new meaning they got a new one
|
||||||
|
Response = True$
|
||||||
|
end else
|
||||||
|
Response = False$
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service GetNewNotes()
|
||||||
|
debug
|
||||||
|
void = Jonathan_Services('CheckForNew')
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TestGit()
|
||||||
|
debug
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service TestMessages()
|
||||||
|
debug
|
||||||
|
if xlate( 'NOTE_PTRS', @user4, 'NEW_MESSAGES', 'X' ) then
|
||||||
|
NotePtrRec = xlate( 'NOTE_PTRS', @user4, '', 'X' )
|
||||||
|
if NotePtrRec<note_ptrs_new$,1> = 'Yes' then
|
||||||
|
* the top one is new meaning they got a new one
|
||||||
|
MsgInfo = ''
|
||||||
|
MsgInfo<micon$> = '!'
|
||||||
|
Mtext = 'You have a new message from ':NotePtrRec<note_ptrs_from$,1>:'.'
|
||||||
|
MsgInfo<mtext$> = MText
|
||||||
|
MsgInfo<mcol$> = -2
|
||||||
|
MsgInfo<mrow$> = -2
|
||||||
|
Void = msg( '', MsgInfo )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
NotesSent = obj_Notes_Sent('GetUserKeys','LEHRICH')
|
||||||
|
NewMessages = XLATE('NOTE_PTRS','LEHRICH','NEW_MESSAGES','X')
|
||||||
|
//NotesSent = obj_Notes_Sent('GetUserKeys','JONATHAN_O')
|
||||||
|
IF NotesSent NE '' OR NewMessages > 0 THEN
|
||||||
|
Start_Window( 'NOTE_PTRS', @WINDOW, '*CENTER', '', '' )
|
||||||
|
END
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service GetSAPYield
|
||||||
|
debug
|
||||||
|
counts = Gan_Services('GetYieldInfo', 223271 , '')
|
||||||
|
end service
|
||||||
|
|
||||||
|
Service DoSomething()
|
||||||
|
|
||||||
|
Response = "Hello, World!"
|
||||||
|
|
||||||
|
End Service
|
||||||
|
|
||||||
|
Service DoSomethingWithParameters(Input, Ref Output)
|
||||||
|
|
||||||
|
Output = Input:", World!"
|
||||||
|
|
||||||
|
End Service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
171
LSL2/STPROC/TEST_DAKOTA.txt
Normal file
171
LSL2/STPROC/TEST_DAKOTA.txt
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
Function Test_Dakota(Param1)
|
||||||
|
#pragma precomp SRP_PreCompiler
|
||||||
|
|
||||||
|
Declare subroutine Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services
|
||||||
|
Declare subroutine Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window, FTP_Services
|
||||||
|
Declare subroutine EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables, obj_RDS
|
||||||
|
Declare subroutine Error_Services, RDS_Services, Dialog_Box, Insert, Unlock, QA_Services, Validate, Development_Services
|
||||||
|
Declare subroutine Update_Index, Database_Services, Obj_WO_Mat_QA, Fmt, Yield, WinYield, Sleepery, Qa_Services,
|
||||||
|
Declare subroutine Obj_Post_Log, GaN_Services, Excel_Services, obj_WO_React, Activate_Save_Select, Reduce, FSMsg
|
||||||
|
Declare subroutine SRP_Stopwatch, Copy_Record_To_SQL, SQL_Services, Material_Services, Messaging_Services
|
||||||
|
Declare subroutine Reactor_Services, Reactor_Services_Dev, SRP_Stopwatch, Btree.Extract, Set_Env, RDS_React_Run
|
||||||
|
Declare subroutine obj_Prod_Spec, Security_Services, Make.List, Write_OI_To_SQL, Send_Info, PSN_Services, Free_Class.Net
|
||||||
|
Declare subroutine Work_Order_Services, Test_Daniel2, obj_RDS_Layer, Report_Services, Pass_To_Sql, SRP_JSON, SRP_Run_Command
|
||||||
|
Declare subroutine Httpclient_Services, SRP_TcpClient, RTI_Set_Debugger, Sleepery, Set_Env, Extract_SI_Keys, Repository
|
||||||
|
Declare function Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists, Utility
|
||||||
|
Declare function Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Error_Services, RDS_Services
|
||||||
|
Declare function MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services, ErrMsg
|
||||||
|
Declare function Work_Order_Services, RetStack, Min, Max, Obj_Prod_Spec, Insert, SRP_Trim, Xlate, Obj_Wo_Mat
|
||||||
|
Declare function Security_Services, QA_Services, Database_Services, RowExists, Rti_Lh_Info, UNICODE_ANSI, UNICODE_UTF8
|
||||||
|
Declare function index, Httpclient_Services, SRP_Encode, SRP_Decode, DirList, Obj_Rds_Test, Tool_Parms_Services
|
||||||
|
Declare function SQL_Services, RDS_Services, Obj_WM_out, Schedule_Services, Obj_Tool, SRP_Sort_Array, ICONV
|
||||||
|
Declare function Development_Services, Obj_WO_Mat_QA, SRP_Join_Arrays, NextKey, Obj_Prod_Spec, FTP_Services, SQL_Format
|
||||||
|
Declare function DateTime, GaN_Services, SRP_Array, Excel_Services, EpiPro_Services, Repository, RTI_Task_Submit
|
||||||
|
Declare function RTI_Task_Status, Rds_Services, StartDotNet, Reactor_Services, SRP_Get_FileVersion, Direct_Print
|
||||||
|
Declare function obj_React_Run, RTI_Lock_Owner, obj_WM_In, Get_Repos_Entities, Get_Printer, Schedule_Services
|
||||||
|
Declare function Location_Services, Replication_Services, SRP_Logon, List_User_Locks, Start_Window, SRP_JSON
|
||||||
|
Declare function Httpclient_Services, SRP_TcpClient, GetTickCount, Repository, Select_Into, SQL_services_New, Database_Services
|
||||||
|
|
||||||
|
$INSERT LOGICAL
|
||||||
|
* $Insert RLIST_EQUATES
|
||||||
|
* $INSERT ENVIRON_CONSTANTS
|
||||||
|
* $Insert REVCAPI_EQUATES
|
||||||
|
* $INSERT MSG_EQUATES
|
||||||
|
* $INSERT APPCOLORS
|
||||||
|
* $INSERT WM_IN_EQUATES
|
||||||
|
* $Insert WM_OUT_EQUATES
|
||||||
|
* $INSERT WO_LOG_EQU
|
||||||
|
* $INSERT WO_STEP_EQU
|
||||||
|
$INSERT WO_MAT_EQUATES
|
||||||
|
* $INSERT ORDER_EQU
|
||||||
|
* $INSERT RDS_EQUATES
|
||||||
|
* $INSERT PROD_SPEC_EQU
|
||||||
|
* $INSERT NOTIFICATION_EQU
|
||||||
|
* $INSERT LSL_USERS_EQU
|
||||||
|
* $INSERT SECURITY_RIGHTS_EQU
|
||||||
|
* $INSERT POPUP_EQUATES
|
||||||
|
* $INSERT RTI_LH_INFO_EQUATES
|
||||||
|
* $INSERT WO_MAT_QA_EQUATES
|
||||||
|
* $INSERT CUST_EPI_PART_EQUATES
|
||||||
|
* $INSERT PRS_STAGE_EQUATES
|
||||||
|
* $Insert RLIST_EQUATES
|
||||||
|
* $Insert CLEAN_INSP_EQUATES
|
||||||
|
* $Insert TOOL_PARMS_EQUATES
|
||||||
|
* $Insert SCHEDULE_EQU
|
||||||
|
* $Insert SCHED_DET_EQUATES
|
||||||
|
* $Insert SCHEDULER_EQUATES
|
||||||
|
* $Insert NCR_EQUATES
|
||||||
|
* $Insert REACT_RUN_EQUATES
|
||||||
|
* $Insert TOOL_EQUATES
|
||||||
|
* $Insert TOOL_LOG_EQUATES
|
||||||
|
* $Insert PM_EQUATES
|
||||||
|
* $Insert WO_WFR_EQUATES
|
||||||
|
* $Insert REVDOTNETEQUATES
|
||||||
|
* $Insert REACTOR_EQUATES
|
||||||
|
* $Insert RDS_TEST_EQUATES
|
||||||
|
* $Insert RUN_STAGE_WFR_EQUATES
|
||||||
|
* $Insert RTI_DEBUG_COMMON
|
||||||
|
* $Insert DICT_EQUATES
|
||||||
|
* $Insert SRPMAIL_INSERTS
|
||||||
|
* $Insert SCHED_DET_NG_EQUATES
|
||||||
|
* $Insert RDS_LAYER_EQUATES
|
||||||
|
* $Insert PROD_VER_EQUATES
|
||||||
|
* $Insert PM_SPEC_EQUATES
|
||||||
|
* // 02/22/2023 48312 50112 ; // 5 hours = 14400 seconds
|
||||||
|
* // Reduce modes (for Select statement)
|
||||||
|
* Equ NEW_EXIST$ To 0
|
||||||
|
* Equ NEXT_CUR$ To 1
|
||||||
|
* Equ ADD_EXIST$ To 2
|
||||||
|
*
|
||||||
|
* EQU COL$QA_MET_PHASE_MIN TO 17
|
||||||
|
*
|
||||||
|
Equ Tab$ to \09\
|
||||||
|
Equ CRLF$ to \0D0A\
|
||||||
|
Equ LF$ to \0A\
|
||||||
|
Equ Comma$ to ','
|
||||||
|
*
|
||||||
|
* $INSERT PRINTSETUP_EQUATES
|
||||||
|
* equ REV_CREATE_ENGINE_NO_UI$ to 0x040
|
||||||
|
|
||||||
|
Main:
|
||||||
|
Debug
|
||||||
|
Locks = Database_Services('GetUserLocks')
|
||||||
|
Result = Database_Services('UnlockKeyID', 'RDS', '456789')
|
||||||
|
Debug
|
||||||
|
return
|
||||||
|
|
||||||
|
* LockList = Database_Services('GetUserLocks')
|
||||||
|
* debug
|
||||||
|
* If Error_Services('NoError') then
|
||||||
|
* ResponseJSON = ''
|
||||||
|
* If SRP_JSON(objJSON, 'New', 'Object') then
|
||||||
|
* If SRP_JSON(objReactArray, 'New', 'Array') then
|
||||||
|
* For each Row in LockList using @FM setting fPos
|
||||||
|
* If SRP_JSON(objRow, 'New', 'Object') then
|
||||||
|
* SRP_JSON(objRow, 'SetValue', 'ComputerName', Row<0, 1>)
|
||||||
|
* SRP_JSON(objRow, 'SetValue', 'Volume', Row<0, 2>)
|
||||||
|
* SRP_JSON(objRow, 'SetValue', 'Table', Row<0, 3>)
|
||||||
|
* SRP_JSON(objRow, 'SetValue', 'RecordKey', Row<0, 4>)
|
||||||
|
* SRP_JSON(objRow, 'SetValue', 'Exclusive', Row<0, 5>)
|
||||||
|
* SRP_JSON(objRow, 'SetValue', 'OSTableFile', Row<0, 6>)
|
||||||
|
* SRP_JSON(objReactArray, 'Add', objRow)
|
||||||
|
* SRP_JSON(objRow, 'Release')
|
||||||
|
* end
|
||||||
|
* Next Row
|
||||||
|
* SRP_JSON(objJSON, 'Set', 'Report', objReactArray)
|
||||||
|
* SRP_JSON(objReactArray, 'Release')
|
||||||
|
* end
|
||||||
|
* LockJSON = SRP_JSON(objJSON, 'Stringify', 'Styled')
|
||||||
|
* SRP_JSON(objJSON, 'Release')
|
||||||
|
* end
|
||||||
|
*
|
||||||
|
* end
|
||||||
|
*
|
||||||
|
* J = 5000
|
||||||
|
* NamePrefix = 'DJM'
|
||||||
|
* Table = 'RDS'
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* For I = 0 to 6000
|
||||||
|
* //If I = J then debug
|
||||||
|
* //debug
|
||||||
|
* RecName = NamePrefix : I
|
||||||
|
* NewRec = @FM: 20 :@FM
|
||||||
|
* Result = Database_Services("WriteDataRow", Table, RecName, NewRec, 1, 0, 1)
|
||||||
|
* Test = Xlate(Table, RecName, '','X', '')
|
||||||
|
* If Test = '' then debug
|
||||||
|
* Next I
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
////////////For Testing memory leak////////////////////////////
|
||||||
|
* Free_Class.Net()
|
||||||
|
*
|
||||||
|
* J = 2500
|
||||||
|
* *J = 500
|
||||||
|
*
|
||||||
|
* For I = 0 to 10000
|
||||||
|
* Result = SQL_Services('PostSQLRequest', 'SPC', 'SELECT * FROM RDS')
|
||||||
|
* If I = J then debug
|
||||||
|
* Result = ''
|
||||||
|
* //debug
|
||||||
|
*
|
||||||
|
* Result = SQL_Services('GetDataRows', 'SPC', 'SELECT TOP (10) * FROM [LSL2SQL].[dbo].[RDS]', 1)
|
||||||
|
* ConnString = Environment_Services("GetSQLScrapeConnectionString")
|
||||||
|
* //Set_Property('CLIPBOARD', 'TEXT', ConnString)
|
||||||
|
* QueryString = 'SELECT [key],[col1],[col2] FROM [LSL2SQL].[dbo].[OI_TESTING] '
|
||||||
|
* QueryString := 'USE [LSL2SQL] GO INSERT INTO [dbo].[OI_TESTING]([key],[col1],[col2])VALUES(<key, int,>,<col1, varchar(max),>,<col2, varchar(max),>) GO'
|
||||||
|
*
|
||||||
|
* Obj = Sql_Services("GetConnectionObject", "Scrape DB Test", 1, ConnString)
|
||||||
|
* //SQL_Services('PostSQLStatement', 'Scrape DB Test', QueryString)
|
||||||
|
* //Res = Sql_Services("PostSQLRequest", "Scrape DB Test", QueryString)
|
||||||
|
* //Result = SQL_Services("ProcessSQLRequests")
|
||||||
|
* If Result = '' then debug
|
||||||
|
* //Free_Class.Net()
|
||||||
|
* SQL_Services('ExecuteQuery',
|
||||||
|
* Groups = SRP_Logon('GetADGroups', 'StieberD', 'Infineon')
|
||||||
|
*
|
||||||
|
* Next I
|
||||||
|
* debug
|
||||||
|
/////////////////////////////////////////////////////////////////
|
3962
LSL2/STPROC/TEST_DANIEL3.txt
Normal file
3962
LSL2/STPROC/TEST_DANIEL3.txt
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user