Tuesday, January 27. 2009SAS Enterprise Guide for SAS programmersTrackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
I know it's come a long way, but there have been many more bugs in EG than in the program editor. It's galling that the Unix base sas editor hasn't been modernized, and there's still no java client - we still need an x-windows manager for our Base SAS users. I use vi instead of the default editor when I don't have EG. EG won't install everywhere, has a multitude of annoying messages and has a project metaphor that is generally overkill. It won't install on Vista Home, which means fewer of our SAS users working from home. The easy ability to take content to the web, the much improved 'filter and query' interface and the task list are really nice.
Not having auto-save (which Program editor has), autocomplete on table and column names and parentheses highlighting in this day and age is terrible. There are many freeware programs that do these minimum things. And how many times a day do I have to be told 'This data file already exists in the project'? How many program files has EG just deleted? Why does a client running on Windows hang up when I'm querying a database from the Unix server? Thanks for the feedback (hey, I asked for it). Let me respond to a few of your comments.
The "program editor" you refer to is what you see in SAS display manager. SAS for Windows and SAS Enterprise Guide actually use the same program editor for display SAS programs (color-coding, etc). While everything you do in EG happens in a project, you don't have to save projects. You can open SAS programs, run them, edit them, save the programs back to disk, and discard the project. Auto-save for projects/programs is coming in our 4.2 release, which will be available Really Soon Now. And autocomplete/parenthesis matching is a project we are working on. If you come to SAS Global Forum this year, we may be able to show you a preview of that. EG 4.1 does support Vista now with an updated release last April. It's officially supported on Vista Business, but it should work on Vista Home just as well -- that's how we support SAS OnDemand for Academics. And as for the annoying messages, I hear you. We've removed those in our 4.2 release. If you are having data performance problems with your Unix database, please contact SAS tech support. It's not supposed to be slow, nor is it expected to be slow. Tech support is very good at diagnosing these sorts of issues. What gets my goat with the SAS 'Enhanced Editor' and EG is the simple lack of support for all of the things I love in Visual Studio:
- Intellisense - Parentheses matching - Error highlighting - The ability to stop a program while running and see values (I am tired of using put statements for debugging) - Watch window - Float over help - Tab statement completion (related to Intellisense) - Snippets - Auto-formatting - on and on... It would be good if EG would set the pace and delivered true editor support for SAS code. I seem to code in UltraEdit almost as much as anything else because the SAS editors seem to be basic text editors. That is not how it should be, especially today. How long has it been since SAS released any enhancement to its editor? 5 years maybe? More? EG is better, I concur there, but that isn't saying a lot. Alan, thanks for the comments.
I use Visual Studio every day, almost as often as I use EG! So I know exactly what you mean. Even today's SAS enhanced editor has several "hidden" features that you might find useful. That's a good topic for another blog post, I think. We are working on projects to support many of the features you mention. Stop by our demo area at SAS Global Forum this year and I'll give you a preview of what we're working on. Chris Chris,
i am probably going to miss SGF this year. The venue is pretty far away and way out of the city. I'll just have to catch up on what you guys are doing at a later point. if you are striving to do more VS like stuff, thank you, thank you. VS is hard to beat or match but any move in that direction is surely welcome. I am just tired of having the SAS editors be so inferior to the other editors I work with. I feel like a dinosaur when it comes to SAS Enterprise Guide. Having boosted myself to SAS9.2, it was disappointing and inconvenient to have to wait another year for the new guide.
Having tried in earlier releases to cross the divide to guide, I found the following early on: Wizards are not up to the capability I would like, E.g. for example, I wanted to create an embedded informat so that the csv file from terradata with ? for missings could quietly import. Not available! Not possible to customise the appropriate parts of the code generated by the proc format wizard. I take for granted this nested/embedded informat method for dealing with special missing values. So, I'm back to the code window. [does the do-end and parentheses matching with keyboard features alt+ and cntl+ and bracket key, not work as in the enhanced editor in old-sas on widows?] Some enhancement of the wizard environment seemed in order, but I then discover I'll need to step outside of my comfort zone! In DI studio I can create generic user transforms with base SAS. For SAS Enterprise Guide, I must program on some variety of C. Shame, I need to reassess what I should learn and why. The convincing has yet to get through to clients. Those I support have yet to see any real benefit of transition...... because a guesture of faith will cost (not as much in SAS licencing fees but) in validating the impact of adding the new client to the desktop infrastructure and the creation of new packaging for roll-out. Once the real users see how their modelling can become not only much more diverse, but especially, under their own control, then demand for the SAS Enterprise Guide client can be based on real benefit and will demolish "old-way resistance". Maybe I'm seen too much as a dinosaur Peter,
Dinosaurs cannot use a keyboard nearly as well as you can. There are shortcut keys and commands that live as hidden gems in the enhanced editor. I'll have to dig those out for another blog post. Chris For me that "let SAS EG do the heavy lifting" is the most persuasive argument. I don't see myself giving up coding any time soon, but the option of being able to write code AND using EG, and it being pretty effortless to switch between the two, that is a major advantage.
The project flow might be a turn-off for some people. A lot of the excellent technical people I know have made a career of avoiding going into management. Anything resembling Microsoft Project induces a Pavlovian reflex of disgust. Or maybe that's just me. AnnMaria,
A project-view-as-Gantt-chart -- what a great idea! (..kidding...I'm kidding you -- still, others will probably lobby for it) It's difficult to categorize SAS users in general, but I have definitely noticed two types of EG users. I'll call them (project)-tree-huggers and go-with-the-(process)-flow people. Some folks hop back and forth between the tree and the flow, but most people seem to favor one over the other. Believe me, as much as you dislike the flow view, we have other customers who live in it and love it. Thanks for the comments. Chris I have been using this product for two years, and I can say that there are some points of frustration
First, it is not easily to change the input to a query. I have to open the query, delete a table, and enter a new table. When a project grows to have many process flows, searching for a term in one of the code nodes or a dataset becomes tedious, whereas I can search a single SAS file in seconds. I do like having several code nodes with each code node having a single idea. Process trees can still grow unwiedly. There is such a thing as spaghetti processes as well as spaghetti code. EG is not a magic bullet. It is FASTER to write a series of short SAS steps than to build an entire tree. Your SAS/GRAPH point is well taken, but I typically resort to using the code template because it is faster for me to tweak than it is to figure out task roles, point and drag, and remember. In addition, SAS ODS Graphics addresses the need for easy graphics as well. People who are textually oriented do not enjoy asking "what window did they hide the text box I need to adjust this proc". We want it all on a single page in front of us. Michael,
Thanks for the comments. I know that many SAS programmers find it faster to simply open a code window and write a program and submit it. None of this pointy-clicky stuff for them. That's fine -- I just like to make sure folks know that they can do that within EG. As far as finding which tasks support which SAS procedures, you can look in the task list (menu: View->Task List), and select Tasks by Name to see the list of tasks with the SAS procedures beside it. That list will also make a good future blog post for me... Chris I also find it frustrating trying to change the input to a query - if I design a complicated join/sort/filter with calculated columns etc, and realise I need to use table "data_11" instead of "data_10", all that work can be lost. If I convert it to code, I can search-and-replace easily enough, but then I can't go back to the EG query tool.
My work-around: before creating a complex query step, I use a code step to generate input tables for that query (usually as copies of pre-existing data, e.g. set table input_for_joining_a equal to work_data_010109). I then create the query based on the new tables. If I decide later that I want to use work_data_010209 instead, it's trivial to change the code step. Geoffrey,
We've made this much easier in EG 4.2. When you open the query, you can right-click on the table in the query builder (on the left-hand side that lists the data sources and available columns), select Properties, and change the source of the input table. Actually, we made this available in an early EG 4.1 hotfix as well. Try it! Chris Chris,
You know, as much as anyone else, what makes VS2008 so great. Leave the flow in, the graph creator, etc. but give me what a coder needs. I need code snippets and, above all else, Intellisense. I also need refactoring, and a lot of the stuff I mentioned before. I tell my clients to use EG but I face the same challenges as you do: coders don't like it. Personally, I agree: I don't care for it because it is an analyst's environment, not a programmers. Sweeten it up with some of the sugar that is VS and coder's will cotton to it more. I am ready but I would like to see more programmer-centric toolsets. What I was trying to say is that I know where to find, say how to do a PROC ANOVA using EG. I found that menu. What I was saying is different - when it comes time to tweak options on my ANOVA, I find it easier to transform the task to SAS Code using the 'Add as Code Template' option.
There may be people whose brains are tuned differently than mine. It is good to have several ways to approach SAS. My concern is that people who never learn how to do a MERGE statement might spend hours trying to build just the right query with a series of SQL Nodes. If you don't know *both*, you won't know which is better. I tend to like the task nodes for unfamiliar tasks, but when I get good at them, I translate it to SAS Code. I've only been using SAS seriously for a few years, about 6 (used to be in the Construction Industry in good ol godzone (NZ) on the end of a hammer. A bit of a change...although I could quite happily take my hammer to the computer at times..), and have been using base and Enterprise Guide 2.1 until around 2 years ago we moved to V9 and Enterprise Guide 4.1.
What a vast improvement that was and in my current work environment all of the ETL developers use DI Studio for the ETL and EG 4.1 to test the data. I develop the BI reports, which includes building the Info maps and WRS reports and also use EG to test the maps and reports. I also provide data on the organisation to anyone who requests it and the predominant tool for this is EG if the data isn't readily accessable from our Portal. Admittedly there are some buggy things about EG such as assigning horrendous labels to the output from tasks, but this can be worked around by inserting extra code in the task, but again this can be confusing to other people who run the projects, they may be looking for a particular dataset that doesn't appear to exist. The process flows are excellent as it allows you to, so long as you think about what you are trying to achieve, see exactly what is happening to the data. You have to get into the habit of using sensible names for tasks and output so you don't end up with a name like "query_for_query_for_queryxxxx". The ordered lists are also good value, although we don't use them much anymore. We used to have vbscripts that opened the EG2.1 projects and run the tasks. Somebody mentioned searching for something. If you turn on the project log can't you search through this and find where in the project the item you are looking for is It may be a bit harsh and will probably upset some users, but it seems this is the way SAS is heading for the future, so don't we either keep up with the times or ......... Keep up the good work Chris and I can't wait for 4.2 although as we use some solutions that aren't going to be available for some time yet it is going to be a long wait. Derek,
Thanks for the comments. You will be happy to know that we've fixed the way that the query builder generates output data names in 4.2. No more query_for_query_for_query_and_so_on. Chris I suggested to Shelli Sessoms that SAS Press come up with a switchers' guide sort of like windows people who adopt macs have available. I've also put this in the fish bowl at the publishing booth for 2 or 3 years now. I keep meaning to go through switcher books/guides and find a model to adapt, but then I don't know EG well enough to even write a user group paper on it, let alone a book.
I'm picturing something that lets us get existing code up and running in EG. Just having my .sas and .log in one project file is a benefit - learning the additional benefits of the GUI and tasks will come... Can I as a coder confidently open any existing code I have in EG and know my production jobs will run? What's involved in converting things? I want to know how to set up EG to work more like the SAS environ we already use - or at least highlight the differences or let us know key tweaks we have to make to our code for it to run well in the EG world. The project metaform seems nice but I cannot figure our how to extend it to real life problems. I need a project that can be worked on simulatenously by 4 or 5 programmers from remote locations. I think perhaps it is just a limitation of the client-server model versus a multi-user operating system. The project involves producing between 20 and 1000 different reports on a data library. With audit trails, QC and validation.
Once that is working how can I then use these projects as a template to be replicated thousands of times. Each one referencing its own data library and set of user choices for presentation and analysis decisions? PS You can only see the spam prevention image if you push the preview button. Tom,
Thanks for the comments. I can appreciate your desire to use a project as a way to collaborate on work among multiple users, but as you know, it's not designed to work that way right now. You can think of a project file similar to a Word document file. You can store it in a shared location and multiple people can contribute to it, but only one at a time. (And I realize the analogy here goes only so far, because EG doesn't have a "track changes" feature in place.) Some of the features you mention are part of SAS Data Integration Studio, but that is geared towards the ETL process more than the reporting process. Some customers use EG as a way to create content building blocks, such as SAS stored processes, and then use SAS Add-In for Microsoft Office and SAS Web Report Studio as a way to reuse those building blocks among a wider audience. Chris Chris,
From my point of view the biggest trouble with projects in EG 4.1 is lack of any kind of flow refactoring. Simple use case: creating some reports based on data from few tasks linked one by one. That's true that EG helps creating first implementation fast and in easy way but if I want to modify, extend, change existing flow or switch some tasks to another sublfow... troubles are raising. In consequences work with EG projects with tasks its more *time consuming*, more expensive than simple codding. These two markers are essential from project profitability perspective. Why using tool which not improve your productivity? Chris,
First of all thanks for more points on why programmers should use EG. I've programmed in SAS for 18 years and now with my customer facing role I literally have this conversation with long time SAS programmers (who are our customers) almost daily. I position EG two ways: 1 as a productivity tool for a programmer like you mention and 2 as a way to introduce the power of SAS to non-programmers and business analysts. We need more than programmers using SAS and EG is vital in growing the use of SAS beyond an IT environment. In addition to that I have had long time customers tell me they love SAS but that their internal user base of SAS is literally retiring or dying off and the younger or new workers coming in to replace them expect not to program so EG is needed to keep SAS useage spreading. I realize that no GUI will surface the entire power of the SAS programming language, but it is a great way to open people's eyes to want to learn more while at the same time providing programmers an interface that can be used to shorten many routine tasks such as inputting files, merging, sorting, and not having to look up syntax for SAS/GRAPH. It also allows a base SAS programmer a window into using more SAS/STAT as well as a great tool for creating stored processes. Looking forward to 4.2 and beyond. David Dear Guru of all things Enterprise Guideish,
Based on your persuasive challenge to programmers, my desire to always avoid stinkin' thinking, and a stated preference to use SAS (when appropriate) in ISD, my thought is "OK, what could it hurt to give Enterprise Guide another try?" So rather than bumbling around, I thought also that I would check into some training. I've had good experience with our e-Learning in the past, so I consulted our e-Learning offerings. There are five e-Learning entries related to Enterprise Guide, from beginning to querying, reporting and analyzing with Enterprise Guide. Since there are so many references in your blog and comment responses to recent Enterprise Guide improvements and "coming soon" improvements, my question is: Will the current e-Learning offerings be sufficiently up to date to be useful? Please keep in mind, I have used some e-Learning in the past only to find that the new version of the software was so different that what I had learned barely transferred knowledge forward to the new version. So, please let me know what you think. If the current e-Learning offerings are not sufficiently up to date, I won't give up. I'll look for an alternative. But I sure don't want to stack the deck against my success in giving Enterprise Guide another fair try. Thanks for all the effort you make to evangelize for Enterprise Guide and other fascinating SAS topics. Jerry,
Thanks for the comments. Both the instructor-based training and the self-paced e-learning are being updated for EG 4.2, which will be released Very Soon Now. These 4.2 materials may lag the software availability for a bit. In the meantime, there are several self-paced e-learning courses, instructor-based classroom and web courses, plus several books that cover Enterprise Guide 4.1 from various angles: new to SAS, new to programming, statistician/analyst, etc.. Most of the skills/techniques you learn in EG 4.1 will transfer to EG 4.2. There are some big differences, but my hope is that they are not too disruptive for the current EG customers. [BTW, in the interest of full-disclosure, Jerry P -- the commenter -- works for SAS.] Chris Dear Chris, dear all,
we are using EGuide 4.1 as our "SAS-IDE" daily since we startet with SAS in 2005. Though it really is a great product there is one issue which annoys us: when a table is open in the data grid it will be locked exclusively by EGuide. Until today we couldn't find a solution to prevent our (batch-) jobs to run into the problem of not getting a lock to a required table. Does anyone know if this will be solved in EGuide 4.2 or any other idea? br Thomas I faced the same problem as Thomas mentioned. There is a workaround solution is to 'kill' all active EG sessions when updating data in data library. It's not the efficient way as many users will leave their program overnight ( I started batch job at midnight) but it's the only way to I can figure out. Any other ways?
Another problem I faced it's some of my EG project will be executed in batch mode and sometime SAS will prompt a 'Credential Required' screen to request user to key in user name and password. This issue will caused my batch job fail as no one was monitoring it at midnight. Any solutions? I have been able to get some converts by showing the process flow and how one can select part of branch to execute. From code, we often just rerun the entire code. So in code, if you want to run just part of the code, you have to figure out the relational dependencies (merges, sort, etcs - highlight and run). In EG you can see the dependencoes and run just part of the branches that you need.
The other things, I show to Unix users... suppose you have a local text file how do you prcoess it.. FTP upload the text file, telnet, vi a program, submit, FTP your results (and maybe the program) back down, print. Well, EG can do the upload/downloads and utilize a gui editor with the magic of IT. Just download your results automatically is usually a big winner. So...I would agree But, one problem that EG is hard pressed to address... legacy code. Yes, you can include code into your project, but now you have a bunch of data node populating your project with no idea of which are related. (Be nice if there was task that would break step boundaries into code nodes, so the user could go back and setup the correct interdependencies, I digress). Another issue that is hard to solve... MACRO programs. How do you run a code node through a macro loop contains several different proc/data steps. So I ask... how many SAS programmer do you know that DON'T use macros. And yes, you could develop the code with EG task, extract the code, and reuse in a macro loop and customize ODS to create multiple output object but will EG save development time?. So...as a good two handed economist... on the other hand, I also disagree. I think that sometimes EG is mis-positioned/understood as a DIS tool or a WRS(AMO) solution. EG project don't share well (change management and WRS or AMO can create reports like EG, with less flexible (client) interface than EG. But when you do need to access local data or need to do light data management (query/merge), or developing SP, EG is real handy, The things that EG really ropes in...the SAS cowboys. Programmer need to grow to fit the new enterprise model. We as programmers need to get with the adminstration...metadata registration. It's just old and easy habit are hard to break... Thanks Chris for all your hard work over the years. Like the Oldsmobile saying, today's EG is not your father's EG anymore. I'm a technical support for part-time learner of Statistics. Our department introduced EG to them since 3.0 version and they were amazed with the interface which let them finished their tasks very easily . The problem is that as Vista OS is getting popular. Our students have problem the installation problems (4.1.0.471). Even there are EG 4.1.0.1000 or 4.2, the SAS HK office got no responseto our problem. Either I got the wrong contact on SAS HK or those products are not on the HK market yet.
Well, my point is, EG is excellent to new comer on statistical analysis but our students cannot enjoy yet. Urgently looking forward to new release in Hong Kong. Julian. Julian,
Thanks for the feedback. EG 4.1 has supported Vista since a re-release around April of 2008. I've forwarded your message to our technical support department; I expect they will open a track for you. Chris Chris,
Thanks. I'm looking forward for your new book on creating EG custom tasks. Julian I have been using SAS for over 5 years, EG definitely a big leap for SAS package, however, as a programmer, I found there are several awkard for me to use it, first I cannot highlight a piece of code and only run this part, second there is no favorite folder option for me to put my folder linkage in, and also server list does not work as goof as windows explorer for me to copy data among diffrent folder and it won't support shortcut linkage that most each for me to use.
Thomas,
Thanks for your comments. You can highlight a selection of code in EG and submit just the selection. Select the statements that you want to submit, right-click, and choose "Run Selection On " (for example, it might read "Run Selection on Local". Chris You admit that Enterprise Guide does not support the "DDE" option for working with Excel files. I have base SAS applications that use DDE to read specified rectangles from specified pages in Excel work books. I update the resulting SAS datasets and then paste them back into the pages. Finally, I paste today's date in specified cells in the workbook. The entire sequence of work is performed by invoking one SAS script file while the workbooks are open. The updated workbooks are the products my customers want to see. Is there a work-around that allows one to accomplish this task in one keystroke (once it is set up) using Enterprise Guide?
The process diagrams in EG should be able to be run backward as well as forward. That is, if I had a dataset at the right side of a process diagram and wish to rebuild it, SAS should run those branches necessary to rebuild the data set but only those branches.
Michael,
Thanks for the comments. That's a great idea -- to allow you to pick a spot in the flow and select "Run up until this point". It is on our futures list. Chris Hi, Chris. I have been using EG for about 8 months now. It has its good and bad parts. What I don't like (related to Thomas' comment), is when testing new code by highlighting and running only that section, EG does 2 things:
1. Gives me a separate section of code (I often find when I am typing corrections to my code, I've put it into the "wrong" tab and closed it!) 2. Always returns to the top of the code, so when my 'problem piece' is near the bottom, I am contantly having to scroll down to run that piece. Are there ways to get around either/both of my issues? (I have not had any real training in EG, just what I have picked up by using it and playing with it) One of the most annoying aspects of EG that is in the regular SAS GUI is the inability to pop open a dataset and apply a where clause to get a subset of data. Why not include this in EG?
Tim,
Thanks for the feedback. I agree; it would be nice to have a place to specify a simple WHERE statement and have it applied to your data view. It's something we are considering for a future release. In the 4.2 release (just about to ship), we added a simple Filter and Sort window that lets you select the columns you want and build a simple WHERE clause. It's a step closer to what you're asking for, I think. Chris a feature of the SAS System Viewer provides remote network access to SAS data sets (at least using ftp). Could this be implemented within the SAS Enterprise Guide client?
I've been working with SASEG for about one year now, and I'm one of those programmers who does not want to give up the "old" style of programming.
Some of the issues that I have had with EG include: 1. a dataset cannot be brought into a project without opening it which takes hours for my huge (>100,000,000 obs) files, 2. I still don't know how to process arrays, 3. there is a merge bug (feature?) where only the first record per byvarlist in the first file gets a value from the second file, 4. reading and writing transport files must be done "old' style, and 5. cannot control variable type and length when importing Excel files. Perhaps these issues are a result my lack of time to play around with EG, but then again, the info is too hard to find since I haven't found it yet. We don't have EG here and there is little prospect of getting it. So, my worry is that SI will put so much into EG that the poor old-fashioned types like me will be left behind.
I want two things: 1) As with others above, intellisense. Compared to which templates and wizards crawl. 2) A debugger upgrade. The SAS interactive debugger is not only downmarket (to say the least) but I cannot remember the last time it has been improved. I understand SI's desire to expand its market by making it possible to use SAS with less up-front effort investment. Well and good. But let's face it: for the foreseeable future most SAS development will be done by programmers. Chris,
In my company they are some users who regret the command line on SAS PC (analyse data). They can't select interactively rows with sql statement. Do you know if there's add-in whith the same fonctionnality or if i must create it ? Thanks Xavier Xavier,
You mean like VIEWTABLE? There isn't currently a task for this, although it is on our future feature list to support. In the meantime, yes, a custom task could be used to provide something like this. Chris |
ABOUT CHRIS Chris Hemedinger is a senior software manager in SAS R&D. He's part of the team that builds SAS Enterprise Guide and SAS Add-In for Microsoft Office. He's also co-author of the popular SAS for Dummies book and moderator of the SAS Enterprise Guide discussion forum.
QuicksearchOther SAS BlogsBI and Chicken Pot PieConversations and Connections Data Flux Community of Experts Closing the Intelligence Gap In Other Words In the Final Analysis JMP Blog Key Happenings at support.sas.com The New Lending System The Text Frontier SAS Global Forum Blog sascom Voices Blog A Shot in the Arm All SAS Blogs Recent postsUsing the X and SYSTASK commands from SAS Enterprise Guide
19Nov2009 Learn about ODS Statistical Graphics 06Nov2009 Hooo-ray for Hollywood 03Nov2009 Where to find ODS Statistical Graphics in SAS Enterprise Guide 23Oct2009 Welcome sasCommunity visitors! 21Oct2009 Do me a favor: stop doing me favors 20Oct2009 You can use it for evil, too 16Oct2009 The CIO perspective from MWSUG 13Oct2009 SAS 9.2 and SAS Enterprise Guide 4.2 on Windows 7 01Oct2009 SAS 9.2 support for Windows Server 2008 30Sep2009 BOOKS & VIDEOSSAS for Dummies -- If you want to learn to be productive using the latest SAS tools and technologies in your daily work, but don't necessarily want to learn SAS programming, then this book was written for you! ![]() Efficient Data Access with SAS Enterprise Guide (YouTube) -- Shows the best way to access data in a DBMS from SAS Enterprise Guide, using M&Ms as a prop. ![]() Exciting combinations: SAS and Microsoft Office (YouTube) -- A metaphor for the exciting features you get when you add the SAS Add-In for Microsoft Office to your desktop.
The blog content appearing on this site does not necessarily represent the opinions of SAS. Your use of this blog is governed by the Terms of Use.
|