We call it the "metadata profile", but really it's like a telephone number that connects you to your SAS environment. Just as a telephone number has component parts (country code, area code, exchange), the metadata profile contains information that allow you to "dial in" to your SAS servers. This information includes:
- a host name (node name or IP address of your SAS metadata server)
- a port number (the TCP/IP port that the SAS metadata server uses to accept connections)
- your credentials (the user ID and password that identify you when you connect)
All of this is captured under a friendly name, which you assign when you define the profile. This is similar to the way that you would file a colleague's information in your Rolodex (still have that?) or contacts list.
When you're connected to a SAS environment in SAS Enterprise Guide, you'll see some of that profile information reflected in the status bar:
![]()
To activate a different profile or to define a new one, you can click on the Connections link in the status bar. This invokes the Connections window, showing all of your available profiles and their details.

The profile name is important, because you can make use of this name as a shortcut (similar to "speed dial") to direct SAS Enterprise Guide to a particular metadata environment automatically. To learn more, read about how to use SAS Enterprise Guide with different SAS environments.
You can also use the profile name in SAS Enterprise Guide automation scripts, as shown in this example about running SAS programs in batch.
My objective in this blog post (and I'm taking a while to get to it) is to show how to use an automation script to list the available profiles that you have defined for your installation of SAS Enterprise Guide. In this VBScript program, I use the Application.Profiles collection to obtain the details of each defined profile. To set an active profile in script, use the Application.SetActiveProfile() method. Note that if you want to run in "no profile" mode (not connected to metadata, simply using your local SAS installation), you specify "Null Provider" as the profile name. (Aside: "Null Provider" would make a great name for a rock band, or maybe for a blog.)
Here's the VBScript program:
' force declaration of variables in VB Script Option Explicit Dim Application ' Create a new SAS Enterprise Guide automation session Set Application = WScript.CreateObject("SASEGObjectModel.Application.4.3") WScript.Echo Application.Name & ", Version: " & Application.Version ' Discover the available profiles that are defined for the current user Dim i Dim oShell Set oShell = CreateObject( "WScript.Shell" ) WScript.Echo "Metadata profiles available for " _ & oShell.ExpandEnvironmentStrings("%UserName%") WScript.Echo "----------------------------------------" For i = 1 to Application.Profiles.Count-1 WScript.Echo "Profile available: " _ & Application.Profiles.Item(i).Name _ & ", Host: " & Application.Profiles.Item(i).HostName _ & ", Port: " & Application.Profiles.Item(i).Port Next Application.Quit
And here's an example of the output:
C:\Examples>cscript ShowProfiles.vbs Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved. Enterprise Guide, Version: 4.3.0.0 Metadata profiles available for sascrh ---------------------------------------- Profile available: Null Provider, Host: , Port: Profile available: t2817, Host: t2817, Port: 8562 Profile available: uitsrv02, Host: uitsrv02.na.sas.com, Port: 8561 Profile available: uitsrv04, Host: uitsrv04.na.sas.com, Port: 8561

15 Comments
A good modification to EG is to display the connected profile name somewhere in the status bar rather than the server name as a number of users don't know what server name is what etc.
Barry, good suggestion! In the upcoming EG 5.1 release, the display is a little bit different, using a tooltip to show you all of the details.
Looking forward to it :)
I have recently started to read your blog and I find useful topics.
I want to make you a SAS/EG performance question:
I have started to work with SAS/EG a few ago, I have worked a lot with SAS/BASE, but not SAS/EG.
I have a doubt about SAS/EG. I know the main features of the tool, but I don’t know how it works with high volume of data and a lot of number of projects.
I am starting a project with SAS/EG 4.3. We have to migrate JCL-Cobol process to SAS/EG. The process are typical process of reading files, sorting data, merging data, filtering data, aggregating data…, typical ETL steps. The process are typical process yo can do with SAS/EG.
The problem is the volume. The volume of process and the volume of data used in the process.
We have to migrate 500 processes. There are process that move files of 100 Gb.
If I make 500 .egp projects in guide, ¿can we have them in a unique metadata or server?, ¿do I have to share out between several servers/metadata?. ¿How many projects can manage a metadata with good performance?.
If you have to work with 100Gb files, would you use SAS/BASE or SAS/EG. I know, that I can modify code in my SAS/BASE programs to have a better performance, shorter processing times (objects like indexes, data in memory, etc..), but in SAS/EG I think I can modify less things….am I wrong?
Other question:
I will make the project in a windows server but I want to deploy it in a Unix server, the process will be scheduled in a Unix server and will be called from a .sh Unix shell script. Is it possible?, I think so…., but I prefer to make the question.
As you can see my english is not profiency. I hope my questions are clear…
Any advice will be greatly appreciated.
Thanks in advance
Juan: hola y mucho gusto.
Your questions are good and valid. I cannot provide a specific recommendation for your scenario, but I hope to provide a little bit of information to help.
EG does not read all data into the client session, so the fact that you are using EG to access large data should not be a problem. EG accesses the column metadata (variable names, types, and formats) and only the amount of records needed to display a screen's worth of data. (However, very wide data with thousands of columns can be slower, so beware of that.)
It's true that you have less control over the process when you use EG's tasks to represent your work. EG generates syntax that is designed to work well with databases or SAS data sets, but for the best optimization you might still want to maintain the work in SAS programs. If you have SAS programming expertise, this will probably be how you are most productive.
You can still drive those programs within EG projects. Use EG to organize the programs into logical flows, so it's easy to understand how the process fits together. You can maintain the programs in files on your Unix OS, as long as EG can connect to a SAS session on UNIX.
This allows you to use EG for editing and testing your programs, but use your UNIX OS for scheduling via cron or whatever your preference is. You can also use EG automation for scheduling, but that must be driven via a Windows process, as EG is a Windows-based application.
Hi Chris, thank you very much for your help. As you can see you have followers in Spain…
I have more questions...
Deployment in Unix:
You design a .egp project in SAS/EG environment -> generate SAS code -> transfer the .sas to the Unix server -> run this .sas from a .sh shell script. (scheduled ).
Is this the best way to operate if you have to execute in Unix?
If I have understood you well, you can only scheduled process from the SAS/EG environment in Windows, am I wrong??
Metadata management:
Have you worked with a large amount of .egp projects in the same metadata/server?.
We are going to build a large amount of projects.., at least 500..., and can be 20 users al the same time accesing...
what do you recomend??.
Your help is greatly appreciated.
Have a nice weekend!!
data.have;
set nice.weekend;
run;
Juan,
Yes, if you want a UNIX based scheduling process, then you will have to either:
- maintain the SAS programs in the UNIX file system (but you can still use EG to develop and test), or
- have the SAS programs in EG projects, and extract the programs before placing them in a production scheduled job on UNIX.
As far as maintaining hundreds of EG projects - yes, that's possible. You can use either SAS metadata folders or UNIX file system folders. SAS metadata folders provide a logical folder structure and metadata permissions, BUT they do not provide an easy way to access the project files outside of SAS tools. UNIX file system folders are flexible in that regard, and you can rely on UNIX permissions to help manage access. And if you need to move the EGP files or reorganize, you can do so easily. So, given the little I know about your scenario, I think you would be happier if you kept the EGP files in the file system and not in metadata.
Simultaneous access to the system by multiple users is no problem, but only one user can have a project file open for EDIT at a time. Multiple users cannot *change and save* a project file simultaneously, but multiple users may *run* the same project file.
Enjoy your weekend!
Hi Chris,
I have another question:
Can I have the SAS/EG metadata in a Unix server??
I would like to work from win clients that connect to a SAS Server in Unix, that SAS Server content the metadata (projects definitions, libraries, etc..).
Thanks in advance
Juan,
Yes, SAS Enterprise Guide can connect to SAS metadata servers on UNIX, Windows, and z/OS (mainframe). And SAS workspace servers can be on the same. So the only tier where you must use Windows is on the desktop where your end users run SAS Enterprise Guide.
Thank you very much for your help Chris.
More questions....
We have some JCL jobs in maniframe that we want to migrate to SAS/EG process.
That mainframe job has about 20 JCL steps by average. This steps are read files, data sorts, data filtera, merge of files, agregations process,and some calls to Cobol programs with no-complex business logic.
Thi jobs move files of 100Gb. aprox and are scheduled in a Control-M. The performance is good.
The idea si create a .egp SAS/EG project with all that steps. Ths simple steps like sorts, reads, merges we are going to make with SAS/EG components and the Cobol programs will be translated to SAS/BASE.
We will generate the SAS/BASE code of the .egp projects, move tha .sas file to Unix and call it by a .sh shell script or schedule in Unix Control-M. The Unix server will be a good machine, with necessaty resources.
My doubts are ¿is SAS/EG a suitable tool to replace maninframe JOBS?, ¿its has any limitationes with his components?. For example, the read component of SAS/EG has few optiones compared with an input read step os SAS/DI.
¿Can we have performance problems?. ¿are Unix systems and SAS process as solid and robust like mainframe environment process?
Any advice will be greatly aprecciatted.
Thanks in advance. Chris..
Juan,
I know that many SAS customers have done just what you are doing: migrated from mainframe COBOL-based jobs to SAS programs. That's a well-proven path.
You can use EG to develop/test/run these SAS programs against your UNIX server. Other than the work of converting your programs, it should be a straightforward process.
The area to be careful about is when you use point-and-click tasks in EG to replace some of the programs that you need, especially for work such as importing data. You *can* use EG to import text files, but the EG Import Data task brings some of that work into the client tier. Instead, to maintain a server-centric approach, you should use SAS programs to do that work.
For answers on questions that are specific to your environment, I suggest that you work with SAS Technical Support or other SAS consultants from your local SAS office. I can provide only limited advice/guidelines in this blog forum, of course...
Chris,
We have an environment with 3 SAS Servers (Test, Dev & Prod). How do I register/set up these servers so EG can utilize these Base SAS 9.2 servers?
Currently my EG session says: "No Metadata profile selected". How do you create profiles?
Jim,
A metadata profile allows you to connect EG to a SAS metadata server and SAS workspace server. These are made possible by setting up SAS Integration Technologies (which you might have on its own or as part of a larger solution, such as SAS BI Server).
To create a new profile, click on the "No profile selected" link in the EG status bar. That brings up the Connections window. You then click Add, which brings you to Create Profile. You'll need the host name of the metadata server, the port that it's listening on, and user credentials to connect. If you have a true dev/test/prod environment, you'll have a different metadata server instance for each environment (though they can all be on the same host, with different ports).
Hi Chris,
Thank you very much for your help and answers...
A new question for you:
I know that SAS/EG has a job scheduler in windows, but I don't know if it's possible to schedule a job
in Unix using SAS/EG, is that possible??
Thanks
Juan, no, there isn't a UI method in EG that can interface with a UNIX scheduler. You can schedule an EG project using the Windows scheduler, and that project can have content that *runs* on UNIX, but it still requires the Windows client in the mix.