Desktop productivity for business analysts and programmers

Basic Queries on EG

Reply
Occasional Contributor
Posts: 13

Basic Queries on EG

Hi,

I have SAS EG 4.1 installed in my Laptop and connect to a SAS server (HP 64 Unix based).I have a couple of queries and am asking all of them within this post itself:-

a) If a read in raw data in to a SAS data set, by default the new table name is IMPW or some variaton of the same. Any significance for the name IMPW?

b) Each time I create a new data set the data set opens up. I unchecked the option in tools for "Open generated data/results automatically" Since am connecting to a server in US (from India) so its not feasible for me to open data sets over network. So, I turned this option off. But because of this my output doesnt open automatically and am forced to go to project explorer and double click on listing. Isnt there an easier way? Also why didnt SI create 2 radio button for not opening data and results seperately?

c) When I create new library I see that we can have Name of library and also libref. In PC-SAS these 2 were one and the same but in EG these may also be different. Why is this designed so?

d) If I create a new data set in my permenant library then the server list on my right hand side doesnt get updated automatically by showing the new data set. Why? I am forced to right click--> refresh and then reopen the SASMAIN tree and then expand my library. Isnt there an easy way?

e) When I use EG menu option to import raw files then the code generated by EG have this line "%eg_conditional_dropds(work.IMPW)" Im just curious to know as to whether it is possible for me to see the macro definition?

f) Presently I have saved the project in Server and the codes have also been saved individually in server. Each time I save the code it asks for "Do you want to save the code". I want to override thi annoying option

g) Also, when I delete a code I want to override the pop-up for confirmation regarding delete

h) What is the meaning of a red cross mark in the top of tabbed window on code editor?

i) How to clear the project log and code log quickly. Ctrl + N doesnt work

j) If am importing raw file and want the code behind the import process, then I have to follow a circuitous process. First build the parameters of the imort using Menu,then finally press on Save button. An import task gets created on which I do right click and select "Add as code template". Isnt there a direct way to get this final code. I would have expected to have a Paste Code button (like in SPSS) when we are the stage of completed query building.

k) Do we have a Results window in EG? In PC SAS I could run frequency on all variables in my data sets and then navigate to the concerned variable's frequency. But I cant see such facility in EG?

l) I have EG 4.1. Do I need to install any service packs on the client machine?

m) Im facing lots of issues in speed of reponse from EG because the SAS server is located in US while am accessing the same from India. Something as simple as changing the setting in Tools -- options and when I say OK for changes to take place, it takes almost 20 seconds for the menu window to go away. Can this be somehow speeded up by tweaking some setting in my client/server (Cant get a server in India)

n) Continuing to m), it takes atleast 3/4 minutes even for 500 KB data set on server to open up. And each time I press scroll it again takes time to refresh etc. Is there some setting by which we can retrieve lets say only 20 or 30 rows at a time from SAS server. Would this solve the problem to some extent? Are there any better ways.

Please guide me.

Regards,
HP
India
Occasional Contributor
Posts: 13

Re: Basic Queries on EG

Hi,

Could somebody please clear some of my doubts in the previous post.

Regards,
HP
India
Community Manager
Posts: 2,889

Re: Basic Queries on EG

HP,

It's quite a daunting list! I'll do my best though. If you have follow-up questions I suggest posting them individually instead of in a large list like this.


a) If a read in raw data in to a SAS data set, by default the new table name is IMPW or some variaton of the same. Any significance for the name IMPW?

Answer:
It's simply using a prefix of IMPW for "Import Wizard". Most tasks in EG use a similar task-specific prefix to avoid potential name conflicts.


b) Each time I create a new data set the data set opens up. I unchecked the option in tools for "Open generated data/results automatically" Since am connecting to a server in US (from India) so its not feasible for me to open data sets over network. So, I turned this option off. But because of this my output doesnt open automatically and am forced to go to project explorer and double click on listing. Isnt there an easier way? Also why didnt SI create 2 radio button for not opening data and results seperately?

Answer:
You can submit that as a suggesting to tech support and we'll consider it. We actually used to have these options separate in EG 3, but found that customers had trouble locating the option that they wanted (they usually wanted to suppress opening data AND results), so we combined them.


c) When I create new library I see that we can have Name of library and also libref. In PC-SAS these 2 were one and the same but in EG these may also be different. Why is this designed so?

Answer:
When you define a library in SAS 9 metadata, you can give the library a descriptive name. It's for display purposes only and doesn't relate to traditional libname syntax. If you find it confusing, you can simply make the name and libref the same value.


d) If I create a new data set in my permenant library then the server list on my right hand side doesnt get updated automatically by showing the new data set. Why? I am forced to right click--> refresh and then reopen the SASMAIN tree and then expand my library. Isnt there an easy way?

Answer:
EG refreshes the displayed list of libraries only when you click Refresh -- this is inpart to conserve on the network traffic that might be caused when reacting to server events such as data added/removed. With your situation over a relatively slow connection, I think you would prefer this to the alternative.


e) When I use EG menu option to import raw files then the code generated by EG have this line "%eg_conditional_dropds(work.IMPW)" Im just curious to know as to whether it is possible for me to see the macro definition?

Answer:
File->Export->Export All Code: that should include the macro definitions used within the project. This particular macro deletes a table that you are about to overwrite.


f) Presently I have saved the project in Server and the codes have also been saved individually in server. Each time I save the code it asks for "Do you want to save the code". I want to override thi annoying option

Answer:
You can explicitly save the code by going to File->Save -- that will update the server file with your current program. The prompt is meant to ensure that your program changes are not lost. When you submit a program that you've modified, it's not automatically saved. This allows you to modify a program and submit it without committing it to disk and overwriting what's already there.


g) Also, when I delete a code I want to override the pop-up for confirmation regarding delete

Answer:
You can submit that as a suggestion. EG errs on the side of caution.


h) What is the meaning of a red cross mark in the top of tabbed window on code editor?

Answer:
Most likely that there is an error in the SAS log returned from running the program.


i) How to clear the project log and code log quickly. Ctrl + N doesnt work

Answer:
There are currently no keyboard shortcuts for these operations -- only menu items.


j) If am importing raw file and want the code behind the import process, then I have to follow a circuitous process. First build the parameters of the imort using Menu,then finally press on Save button. An import task gets created on which I do right click and select "Add as code template". Isnt there a direct way to get this final code. I would have expected to have a Paste Code button (like in SPSS) when we are the stage of completed query building.

Answer:
You can also right-click and select "View Code" -- but then you need to copy/paste it to make use of it.


k) Do we have a Results window in EG? In PC SAS I could run frequency on all variables in my data sets and then navigate to the concerned variable's frequency. But I cant see such facility in EG?

Answer:
Are you talking about something like a table of contents for each results item, so you can navigate directly to a subset of the results? No, EG 4.1 doesn't have such a feature.


l) I have EG 4.1. Do I need to install any service packs on the client machine?

Answer:
Not currently, but there is a forthcoming hotfix for EG 4.1 to address some specific issues.


m) Im facing lots of issues in speed of reponse from EG because the SAS server is located in US while am accessing the same from India. Something as simple as changing the setting in Tools -- options and when I say OK for changes to take place, it takes almost 20 seconds for the menu window to go away. Can this be somehow speeded up by tweaking some setting in my client/server (Cant get a server in India)

Answer:
Probably not. Other customers with similar remote deployments use terminal server to log into a Windows PC remotely, and performance is improved because then EG and the server are much closer to each other, network-wise.

n) Continuing to m), it takes atleast 3/4 minutes even for 500 KB data set on server to open up. And each time I press scroll it again takes time to refresh etc. Is there some setting by which we can retrieve lets say only 20 or 30 rows at a time from SAS server. Would this solve the problem to some extent? Are there any better ways.

Answer:
EG already retrieves only as many rows as necessary to fill the grid display. It does not retrieve the entire data. You might want to contact tech support and describe your data access issues, including the type of data/library you are using, to see if performance can be improved.

Chris
Occasional Contributor
Posts: 13

Re: Basic Queries on EG

Thanks Chris for each of your responses. It will be very helpful.

I have one more query which I posted in SAS google groups but havent had a response.

I store the code of my project as a shortcut only in my *.egp as I would like to independently transfer codes to my local PC and do some offline code writing (when am at home etc) and next day I would transfer the new code to the server location.

In this scenario when I run any code then a copy of the code gets created within the project as well and this just confuses me as I may end up making changes in code in some other copy of the code (rather than making changes in the shortcut) and also I would be forced to delete the newly created copies.

When I used the above duplicate code to run a part of their codes, further duplicates gets created.

Is there anyway I can supress this multiplicity?

Regards,
HP
India
Frequent Contributor
Posts: 81

Re: Basic Queries on EG

Hari,

Are you answering the question "Would you like to replace the results from the previous run?" with No? If so, then this duplicates the program node and runs this instead.

If you answer the question with Yes, then the updated(?) original code is run, and will be saved back to the original file on Saving/Exiting.

.......Phil
Message was edited by: prholland at Aug 25, 2006 9:10 AM
Occasional Contributor
Posts: 13

Re: Basic Queries on EG

Phil,

Thanks a lot for this tip. This was troubling me a lot.

Actually I was annoyed with this message pop up in EG, so under tool--> options --> results general --> Managing Results --> I had selected "Do not Replace"

I want to understand the logic behind having such a message pop up/Option in EG. In case of PC-SAS the new results would get appended to the old one by default and I can just use the tree branches in results explorer to navigate to the required results.

In EG neither do we have the tree like results explorer and one is presented with an option which would either create new output files (and code) or it will overwrite the previous results.

Why dont we have the option of stacking new results along with old. It would make sense to me because I would have scenarios where from a single code file I run the first few lines of code and depending on output I would run the next few lines of code and would like to see both these results in the same output.

Wasn EG designed from this point of view?

regards,
HP
India
SAS Super FREQ
Posts: 8,820

Re: Basic Queries on EG

Hari:
The big difference between the 2 interfaces is that in PC-SAS Display Manager, the Results Viewer is providing an output manager for viewing your output files. Those output files are created with code that you write in the Program Editor or the Enhanced Editor. You said:
"In case of PC-SAS the new results would get appended to the old one by default and I can just use the tree branches in results explorer to navigate to the required results."

While this behavior is true of what you see in the Output/Listing window (that new results seem to get appended to existing results) -- it is NOT true of destinations other than Listing. For example, if you create HTML, RTF or PDF output, you either create separate and unique file names and then the Results Viewer points you to that file location OR if you choose to automatically allow SAS to create HTML output (using Tools --> Preferences --> Results), then SAS generates a unique name of the form sashtml.htm for the first job, sashtml2.htm for the second run, sashtml3.htm, etc, etc.

EG does NOT have a Results Viewer like PC SAS. It uses a different paradigm -- that of a Project to organize all your work -- tasks, logs, output files -- together. Consider that in PC-SAS, once you log off or close your session, the only track of your session are the .SAS program files that you saved and the .HTML, .PDF or .RTF files that you created and/or the .LST files that you may have saved from the Listing Window.

The majority of EG users are NOT programmers. The majority of EG users do NOT write huge chunks of code -- they do not submit a few lines of code, check the results and then submit more code. So, the project approach allows the EG user not to worry about how to organize their tasks, logs and output. When the project is opened a second time, all the work is organized inside the project. EG was designed for the majority of non-programmer users. This design simplifies project organization because the EG user is generally submitting creating queries and tasks without seeing the underlying code.

It sounds like you prefer the PC-SAS paradigm with the Results Viewer instead of the EG paradigm with the Project Folder. One thing you could do inside your EG project would be to have multiple code nodes for the various code snippets that you want to submit separately.

cynthia
N/A
Posts: 0

Re: Basic Queries on EG

Cynthia

as an old Display Manager type sas-programmer, I was interested in your point that

> The majority of EG users are NOT programmers. The
> majority of EG users do NOT write huge chunks of code
> -- they do not submit a few lines of code, check the
> results and then submit more code.

I recognise from this description that I may not be among the majority of EG users.

Is there a future paradigm (or SAS IDE) for sas-users such as me, or no future ;-) ?

Is there a more practical way to create stored processes than through SAS Enterprise Guide?


PeterC
SAS Super FREQ
Posts: 8,820

Re: Basic Queries on EG

Peter:
I've been using SAS and Display Manager on various systems since SAS 5.18 on the mainframe. And I like seeing and submitting code, too. Sometimes I really MISS the old LINE commands, like MM and >> and IB...but the enhanced editor has won me over and EG is winning me over, too.

However, as the co-author of the Stored Process course, I have to tell you that I use EG a LOT for creating and registering Stored Processes. I don't see Display Manager going away. There's still a place for Display Manager, but EG beats the manual creation/registration method for stored processes (where you write your code in Display Manager or Notepad, and then manually register the stored process in SAS Management Console).

Why?? Because EG lets you create the stored process AND register the stored process from within one interface AND EG will scan your SAS code for macro variables in order to aid you in creating your stored process input parameters. That whole scanning piece is just too cool for words.

Now that I understand how stored processes work and what things work, what overrides to use, how to use %GLOBAL, etc, I do most of my work in Display Manager, pre-testing or correcting my code and adjusting it -- doing that last final test -- before turning it into a stored process. Then I switch over to EG and create a stored process from inserted code, scan for macro vars, turn the macro vars into parameters and then I'm good to test the stored process from all the client apps that use them.

The hardest thing for me to do when I first started using/creating stored processes was realizing that I had to split some of my programs into two pieces -- the "data bashing" piece and the "report" piece. You know what that "data bashing" piece is -- it's all the data step/merge/format/exclude stuff that you do -before- the report piece happens.

If I needed to create a stored process for reporting and the stored process depended on the "data bashing" piece of code, I had several choices: move the data bashing piece of code into Data Integration Studio -- which has a lovely IDE for building new tables and and transforming columns and making new colums (and, even better -- getting the tables in the metadata *yay!!*) and/or making an Information Map that hid the data bashing from the end users.

I might use one of both of these client apps to "manage" the data depending on who was going to be using the report stored process and which client app they were going to use. I don't use EG tasks all that much, but I do understand their appeal -- PROC TABULATE needs a lot of code to produce a really nice looking table -- but using the Table designer in EG is a more pleasant way to generate the TABULATE code, if you're a business analyst and not a programmer.

On the other hand, I'm not a business analyst -- one of my first jobs as a programmer was helping somebody generate HUNDREDS of PROC TABULATE tables -- from code -- with percents -- in the days before ROWPCTSUM and COLPCTSUM (and you know what that meant). In my former life, as a report person, I would satisfy ad-hoc report requests -- you know the "I want mailing labels, but I want the count of past contributions in parentheses in the lower left corner of the last line of the label" or the "I need to see each of the plaintiffs in the class action on a separate line with their salary and bonus for each year split out. Then show me separately, the names of the plaintiffs who got more than the average amount for a bonus."

Sadly, my mailing label person might not have been able to use a stored process, but my plaintiff person -could- generate that report his or her self if I designed the data right. My point is that there will ALWAYS be some requests that are truly ad-hoc requests and will have to have some programming done to satisfy the request. But, EG has code nodes to serve that purpose. The code nodes, however, are NOT Display Manager. But I don't think they were ever intended to be.

When I said that the majority of EG users do not write huge chunks of code, I really should have qualified what I said. EG users write ENORMOUS chunks of code depending on their project and how many tasks they have in their project -- but the majority of EG users never need to worry about the code that EG is generating for them behind the scenes.

I think that EG IS the best way to create stored processes. I understand that if you are starting from an existing EG project, or designing tasks from scratch making the stored process will be easier than converting legacy programs. Your legacy programs may not fit into a stored process right out of the box and you may have to do some redesign work to convert them to stored processes.

Sorry for the long post. I didn't realize I had so much to say on the topic. ;-)
cynthia
N/A
Posts: 0

Re: Basic Queries on EG

Cynthia

don't apologise about the length of response. It is very helpful to establish and position expectations and roles and responsibilities, in the big SAS-BI picture.

Many Thanks

Peter
Ask a Question
Discussion stats
  • 9 replies
  • 1507 views
  • 0 likes
  • 5 in conversation