open-insight/LSL2/STPROC/ENVIRONMENT_SERVICES.txt

537 lines
21 KiB
Plaintext

Function Environment_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 : Environment_Services
Description : Handler program for all module related services.
Notes : Service module to support environmental state issues. Environmental refers to the state of the
operating system, which includes version, client vs. server, and path to critical systems.
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
Metadata :
History : (Date, Initials, Notes)
11/18/17 dmb Original programmer.
06/21/18 dmb Update various services to support the MESSA005 server (Application Server). Refactor
various services to use the GetServer service instead of parsing @STATION and to use the
GetLocalRootPath service instead of hardcoding the drive letter. - [IREPIOI-50]
06/21/18 dmb Update various services to support the MESST1002 and MESST1003 terminal servers.
- [IREPIOI-50]
06/22/18 dmb Update GetLocalRootPath service to use V: for the terminal servers. - [IREPIOI-50]
06/22/18 dmb Update GetApplicationRootPath service to use the GetApplicationRootIP service.
- [IREPIOI-50]
07/03/18 dmb Add GetLabelPrintMethod service. - [IREPIOI-54]
08/06/19 fdr Added GetMetrologyProductionPath
09/25/23 djs Updated services to support Stealth migration.
***********************************************************************************************************************/
#pragma precomp SRP_PreCompiler
$insert LOGICAL
$insert SERVICE_SETUP
$insert SRPMail_Inserts
Common /EnvironmentServices/ Unused1@, Unused2@, Unused3@, Unused4@, Unused5@, Unused6@, Unused7@, Unused8@, Unused9@, Unused10@
Declare function Environment_Services, Memory_Services, SRP_List, SRP_FastArray, SRP_Array, Database_Services
Declare function Active_Directory_Services, SRP_Send_Mail, RTI_GetNetworkUserName, Utility
Declare subroutine Environment_Services, Memory_Services, SRP_List, SRP_FastArray, Database_Services, GetTempPath
GoToService else
Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
end
Return Response OR ''
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Service Parameter Options
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Options BOOLEAN = True$, False$
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Services
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------------------------------------------------
// GetServer
//
// Returns the current server name. Note: this assumes that the current Process ID has been apended to @STATION.
// Therefore, this will be removed before returning to the caller.
//----------------------------------------------------------------------------------------------------------------------
Service GetServer()
NumFields = DCount(@Station, '_')
Server = Field(@Station, '_', 1, NumFields - 1)
Response = Server
end service
Service IsProd()
Machine = Environment_Services('GetServer')
IsProd = False$
If Machine _NEC "messa012" and Machine _NEC "mestsa01ec" and Machine _NEC "MESTST1010" and Machine _NEC "MESTST1009" then
IsProd = True$
end
Response = IsProd
end service
//----------------------------------------------------------------------------------------------------------------------
// GetApplicationRootPath
//
// Returns the application's root path. If this is a server, the shared folder will be included.
//----------------------------------------------------------------------------------------------------------------------
Service GetApplicationRootPath()
RootIP = Environment_Services('GetApplicationRootIP')
ApplicationRootPath = RootIP : '\Apps'
Response = ApplicationRootPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetApplicationRootIP
//
// Returns the application's root IP.
//----------------------------------------------------------------------------------------------------------------------
Service GetApplicationRootIP()
Machine = Environment_Services('GetServer')
Begin Case
Case Machine EQ 'MESSA005' ; ApplicationRootIP = '\\messa005.infineon.com'
Case Machine EQ 'MESTSA01EC' ; ApplicationRootIP = '\\10.95.140.13'
Case Machine EQ 'MESSA012' ; ApplicationRootIP = '\\10.95.176.50'
Case Machine EQ 'MESST5201' ; ApplicationRootIP = '\\10.95.140.14'
Case Machine EQ 'MESST5202' ; ApplicationRootIP = '\\10.95.140.14'
Case Machine EQ 'MESTST1009' ; ApplicationRootIP = '\\10.95.140.13'
Case Machine EQ 'MESTST1010' ; ApplicationRootIP = '\\10.95.140.13'
Case Otherwise$ ; ApplicationRootIP = '\\10.95.140.14'
End Case
Response = ApplicationRootIP
end service
//----------------------------------------------------------------------------------------------------------------------
// GetFTPRootPath
//
// Returns the FTP root path. This is where the scripts and FTP transfer files will be located.
//----------------------------------------------------------------------------------------------------------------------
Service GetFTPRootPath()
Machine = Environment_Services('GetServer')
RootPath = Environment_Services('GetLocalRootPath')
Begin Case
Case Machine EQ 'MESIRWAP001' ; FTPRootPath = RootPath
Case Machine EQ 'MESSA005' ; FTPRootPath = RootPath : '\FTP'
Case Machine EQ 'MESSA01EC' ; FTPRootPath = RootPath : '\FTP'
Case Machine EQ 'MESST6501' ; FTPRootPath = RootPath : '\FTP'
Case Machine EQ 'MESST6502' ; FTPRootPath = RootPath : '\FTP'
Case Otherwise$ ; FTPRootPath = RootPath : '\FTP'
End Case
Response = FTPRootPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetReportsRootPath
//
// Returns the Reports root path. This is where various reports will be located.
//----------------------------------------------------------------------------------------------------------------------
Service GetReportsRootPath()
RootPath = Environment_Services('GetLocalRootPath')
Response = RootPath : '\OIReports'
end service
//----------------------------------------------------------------------------------------------------------------------
// GetUserDataRootPath
//
// Returns the user data root path. This is where various reports will be located.
//----------------------------------------------------------------------------------------------------------------------
Service GetUserDataRootPath()
UserDataRootPath = '\\messdv002.na.infineon.com'
Response = UserDataRootPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetUserDataProductionPath
//
// Returns the user data production path. This is where various reports will be located.
//----------------------------------------------------------------------------------------------------------------------
Service GetUserDataProductionPath()
ProductionPath = Environment_Services('GetUserDataRootPath') : '\IT'
Response = ProductionPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetSpcFilesharePath
//
// Returns the SPC data path.
//----------------------------------------------------------------------------------------------------------------------
Service GetSpcFilesharePath()
IsProd = Environment_Services("IsProd")
If IsProd EQ True$ then
Response = '\\mesfs.infineon.com\EC_SPC_Si_Import\TXT'
end else
Path = Environment_Services('GetApplicationRootPath'):'\SPC_Data'
MakeDirSuccess = Utility("MAKEDIR", Path)
Response = Path
end
end service
//----------------------------------------------------------------------------------------------------------------------
// GetSPCDataPath
//
// Returns the SPC data path.
//----------------------------------------------------------------------------------------------------------------------
Service GetSPCDataPath()
IsProd = Environment_Services("IsProd")
If IsProd EQ True$ then
Response = '\\messa04ec.infineon.com\OI_SPC_Data_Transfer'
end else
Path = Environment_Services('GetApplicationRootPath'):'\SPC_Data'
MakeDirSuccess = Utility("MAKEDIR", Path)
Response = Path
end
end service
//----------------------------------------------------------------------------------------------------------------------
// GetMetrologyViewerURL
//
// Returns the Metrology Viewer URL.
//----------------------------------------------------------------------------------------------------------------------
Service GetMetrologyViewerURL()
ProductionPath = 'http://messa010ec.infineon.com/'
Response = ProductionPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetWaferMapProductionPath
//
// Returns the wafer map production path.
//----------------------------------------------------------------------------------------------------------------------
Service GetWaferMapProductionPath()
ProductionPath = '\\mesfs.infineon.com\EC_Metrology_Si\MetrologyAttachments\TencorRunData'
Response = ProductionPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetMetrologyProductionPath
//
// Returns the Metrology data production path.
//----------------------------------------------------------------------------------------------------------------------
Service GetMetrologyProductionPath()
ProductionPath = 'messqlec1.infineon.com\PROD1,53959'
Response = ProductionPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetControlPlanProductionPath
//
// Returns the Control Plan production path.
//----------------------------------------------------------------------------------------------------------------------
Service GetControlPlanProductionPath()
ProductionPath = 'iqsdms1'
Response = ProductionPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetWaferTrackProductionPath
//
// Returns the Wafer Track data production path.
//----------------------------------------------------------------------------------------------------------------------
Service GetWaferTrackProductionPath()
ProductionPath = 'IQSDMS1'
Response = ProductionPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetLocalRootPath
//
// Returns the local root path. This is where the scripts and FTP transfer files will be located.
//----------------------------------------------------------------------------------------------------------------------
Service GetLocalRootPath()
Machine = Environment_Services('GetServer')
Begin Case
Case Machine EQ 'MESIRWAP001' ; LocalRootPath = 'C:'
Case Machine EQ 'MESSA005' ; LocalRootPath = 'D:'
Case Machine EQ 'MESSA012' ; LocalRootPath = 'D:'
Case Machine EQ 'MESSA01EC' ; LocalRootPath = 'D:'
Case Machine EQ 'MESTSA01EC' ; LocalRootPath = 'D:'
Case Machine EQ 'MESST6501' ; LocalRootPath = 'C:' ; // This is a map to the user's actual C drive.
Case Machine EQ 'MESST6502' ; LocalRootPath = 'C:' ; // This is a map to the user's actual C drive.
Case Machine EQ 'MESTST1006' ; LocalRootPath = 'C:' ; // This is a map to the user's actual C drive.
Case Machine EQ 'MESTST1007' ; LocalRootPath = 'C:' ; // This is a map to the user's actual C drive.
Case Otherwise$ ; LocalRootPath = 'C:'
End Case
Response = LocalRootPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetLabelPrintMethod
//
// Returns the method that label programs should use for printing (i.e., OIPI or DirectPrint).
//----------------------------------------------------------------------------------------------------------------------
Service GetLabelPrintMethod()
LabelPrintMethod = Database_Services('ReadDataRow', 'APP_INFO', 'LABEL_PRINT_METHOD')<1>
Locate LabelPrintMethod in 'OIPI,DirectPrint' using ',' setting cPos else LabelPrintMethod = 'OIPI'
Response = LabelPrintMethod
end service
//----------------------------------------------------------------------------------------------------------------------
// GetDispositionReportPath
//
// Returns the path to where disposition reports are stored. This is used for GaN Run Data Sheets.
//----------------------------------------------------------------------------------------------------------------------
Service GetDispositionReportPath()
! Deprecated - GaN
ReportPath = '\\messdv002.na.infineon.com\Characterization\Disposition Reports'
Response = ReportPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetPrintServerPath
//
// Returns printer server UNC path.
//----------------------------------------------------------------------------------------------------------------------
Service GetPrintServerPath()
ServerPath = '\\messp1002.na.infineon.com\'
Response = ServerPath
end service
//----------------------------------------------------------------------------------------------------------------------
// GetDispositionReportPath
//
// Returns the path to where GaN reactor schedule excel spreadsheets are stored.
//----------------------------------------------------------------------------------------------------------------------
Service GetGaNSchedulePath()
! Deprecated - GaN
ReportPath = '\\messv02ecc1.ec.local\EC_MOCVD\Aixtron Reactor Schedulers'
Response = ReportPath
end service
//----------------------------------------------------------------------------------------------------------------------
// SetServerCanary
//
// Sets a datetime stamp into the APP_INFO table and the canary.txt file to establish the last time it was successful in
// accessing the database.
//----------------------------------------------------------------------------------------------------------------------
Service SetServerCanary()
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
Lock hSysLists, ServiceKeyID then
DateTimeStamp = Oconv(Date(), 'D4/') : ' - ' : Oconv(Time(), 'MTHS')
Database_Services('WriteDataRow', 'APP_INFO', 'CANARY', DateTimeStamp, True$, False$, True$)
If Error_Services('NoError') then
OSWrite DateTimeStamp to Environment_Services('GetApplicationRootPath') : '\LogFiles\Canary\Canary.txt'
// Call SRP Send Mail to make sure it is already cached.
Result = SRP_Send_Mail('', '')
end else
Error = Error_Services('GetMessage')
Message = ''
Message<1> = 'Message from the ' : Service : ' service.'
Message<2> = 'oinotify@infineon.com'
Message<3> = 'dstieber@srpcs.com,dbakke@srpcs.com,Dan.Crisp@infineon.com,4805890050@vtext.com,7143924402@tmomail.net,jonathan.ouellette@infineon.com'
Message<7> = 'TEXT'
Message<8> = 'Error in ' : Service : ' service. Message: ' : Error
Message<9> = ''
Config = ''
Config<1> = SendUsing_Port$
Config<3> = 25
Config<4> = 'mailrelay-external.infineon.com' ; //'appmail.eu.infineon.com'
Config<5> = True$
Config<6> = 'oinotify@infineon.com'
Config<7> = 'oinotify1'
Config<8> = False$
Result = SRP_Send_Mail(Message, Config)
end
Unlock hSysLists, ServiceKeyID else Null
end
end service
Service GetSAPPath()
Machine = Environment_Services('GetServer')
Environment = 'QA'
Begin Case
Case Machine EQ 'MESSA005' ; Environment = 'PRD'
Case Machine EQ 'MESSA01EC' ; Environment = 'PRD'
End Case
Response = Environment
end service
Service GetSQLScrapeConnectionString()
Machine = Environment_Services('GetServer')
Begin Case
Case Machine = 'MESSA01EC'
// PROD SQL Servers
ConnectionString = 'Provider=MSOLEDBSQL.1;Password=0okm9ijn;Persist Security Info=True;User ID=srpadmin;Initial Catalog=LSL2SQL;Data Source=MESSQLEC1.infineon.com\PROD1,53959;Initial File Name="";Trust Server Certificate=True;Server SPN="";Authentication="";Access Token=""'
Case Machine = 'MESTSA01EC'
// DEV SQL Servers
ConnectionString = 'Provider=MSOLEDBSQL.1;Password=Fisql2023!;Persist Security Info=True;User ID=fisql;Initial Catalog=LSL2SQL;Data Source=10.95.140.27\TEST1,50572;Initial File Name="";Trust Server Certificate=True;Server SPN="";Authentication="";Access Token=""'
Case Otherwise$
// Default to DEV SQL Servers just in case
ConnectionString = 'Provider=MSOLEDBSQL.1;Password=Fisql2023!;Persist Security Info=True;User ID=fisql;Initial Catalog=LSL2SQL;Data Source=10.95.140.27\TEST1,50572;Initial File Name="";Trust Server Certificate=True;Server SPN="";Authentication="";Access Token=""'
End Case
Response = ConnectionString
end service
Service GetUserDesktopPath()
Response = ''
UserRootPath = ''
UserName = RTI_GetNetworkUserName()
Machine = Environment_Services('GetServer')
If Machine EQ 'MESST5201' OR Machine EQ 'MESST5202' OR Machine EQ 'MESTST1009' OR Machine EQ 'MESTST1010' then
RootPath = '\\tsclient\C\Users\'
end else
RootPath = 'C:\Users\'
end
If UserName NE '' then
Response = RootPath : UserName : '\Desktop\'
end
end service
Service GetTempPath()
TempDirectory = Str(\00\, 1024)
GetTempPath(Len(TempDirectory), TempDirectory)
Convert \00\ to '' in TempDirectory
Response = TempDirectory
end service
Service GetMonaResource()
If Environment_Services("IsProd") then
Response = "OPENINSIGHT_MES_OP_FE"
end else
Response = "OPENINSIGHT_MES_OP_FE_DEV"
end
end service
Service GetMonInBufferedWorkerApiUrl()
If Environment_Services("IsProd") then
Response = "https://messa014.infineon.com:7851"
end else
Response = "https://mestsa008.infineon.com:7851"
end
end service
Service GetProveInApiUrl()
If Environment_Services("IsProd") then
Response = "https://messa014.infineon.com:8851"
end else
Response = "https://mestsa008.infineon.com:8851"
end
end service
Service GetIfxEmailServer()
Response = 'smtp.intra.infineon.com'
end service
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Internal GoSubs
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////