BookmarkSubscribeRSS Feed

How Many Shades of Guide: SAS® Enterprise Guide® 8.3 and SAS® Studio 3.81 With SAS® 9.4

Started ‎03-15-2021 by
Modified ‎10-25-2021 by
Views 5,300
Paper 125-2021
Author

 

 Philip R. Holland, Holland Numerics Limited, UK

 

 

 

 

Abstract

I began with SAS Enterprise Guide 1.1.1 in 2001, and SAS Studio 3.1 in 2013. SAS Enterprise Guide 8.3 and SAS Studio 3.81 have developed immensely from their original releases. This presentation discusses how both products have progressed toward becoming the perfect SAS development environment. If you are not yet using SAS Enterprise Guide or SAS Studio, then your IT department may be unnecessarily overworked, and you are missing out on some very useful programming features.

 

Watch the presentation

Watch How Many Shades of Guide: SAS® Enterprise Guide® 8.3 and SAS® Studio 3.81 With SAS® 9.4 by the author on the SAS Users YouTube channel. The video presentation associated with this paper, due to time constraints, only includes the sections on SAS Enterprise Guide.

 

 

Introduction

I will talk about each version of Enterprise Guide and SAS Studio that added new features, and whether these features improved the environment, or not. In particular the convergence of Enterprise Guide and SAS Studio will be discussed, and where differences and omissions still exist.

 

Enterprise Guide

Enterprise Guide projects can be saved in files, but are not compatible with previous versions, so a previous version of Enterprise Guide can not open a project file saved by a later version. Older SEG (*.seg) project files could only be opened up to Enterprise Guide version 4.1, but EGP (*.egp) project files can be opened by later version, and will be converted to that Enterprise Guide version’s file format, thereby preventing them from being reopened by previous version.

 

Version 1 - In the beginning

The first version of Enterprise Guide that I used was version 1.1.1. Enterprise Guide created SEG project files in versions 1 and 2, which could still be opened by later versions up to version 4.1. The Code Window (see Figure 1. Code Window) used the same Windows object as interactive SAS for Windows, and continued to do so up to version 4.1, so the editing experience was familiar for SAS users.

 

 

hollandnumerics_13-1616684544303.png

Figure 1. Code Window

 

Enterprise Guide was originally marketed as a GUI replacement for SAS/ASSIST®, which had provided packaged SAS code for non-programming SAS users, and included Microsoft Agents Peedy (parrot, see Figure 2. Peedy the Microsoft Agent helper) and Merlin (wizard), and others, as program helpers, but they were removed in version 2. For me this was a sad time when they were removed, as I had got used to Peedy recommending what I should be typing.

 

 

hollandnumerics_14-1616684576237.png

Figure 2. Peedy the Microsoft Agent helper

 

Supplied with SAS version 8.1, Enterprise Guide version 1.1 used SAS views to subset SAS data sets through the Query task, which minimized the size of the work files created. For the small files used to demonstrate Enterprise Guide functionality this was fairly quick, but this could be extremely slow when the original SAS data set was large. Views on views were even slower!

 

When version 1.2 was introduced with SAS version 8.2, Enterprise Guide was changed to create subsets SAS data sets, which improved its performance significantly.

 

Version 2 - User-written tasks

Before version 2.0 Enterprise Guide users were limited to the tasks supplied in the SAS installation, so it was a big step forward when Custom Tasks could be written by users using Microsoft Visual Basic and C++ 6.0. These could be installed using an Add-In Manager inside Enterprise Guide, or by copying the *.dll files into specific installation or user profile folders.

Version 2.0 was supplied with SAS version 8.2, but version 2.05 was bundled with SAS version 9.0 and version 2.1 was bundled with SAS version 9.1.3.

 

Version 3 - Conversion to .Net

Still using SAS version 9.1.3, Enterprise Guide version 3.0 was redeveloped to use Microsoft .Net, and introduced EGP project files. Custom Tasks could now be written using Microsoft Visual Basic .Net and C# .Net.

 

In Enterprise Guide any program node or nodes can be converted into a Stored Process, which can be run on a Stored Process Server via a web page. Enterprise Guide can also generate a VBS file that is scheduled as a Windows Scheduled Task to run a whole EGP project file. The VBS script can also be run manually to run the project when required.

 

Version 4 - Linking items together

In previous versions of Enterprise Guide the selected items in the Project Designer window (later renamed to the Process Flow window) could only be run from top-left to bottom-right, but Enterprise Guide version 4.1 introduced linking of items to form a flow diagram, which could be run as a whole (see Figure 3. Project Designer window with linked items), or from a selected item (see Figure 10. Run to selected item or Run from selected item in Enterprise Guide version 8.1).

 

 

hollandnumerics_15-1616684605545.png

Figure 3. Project Designer window with linked items

 

Custom Tasks still utilized Microsoft .Net: Visual Basic and C#, but also any other language that uses the .Net API, which was introduced in Enterprise Guide version 4.1 (see Figure 4. Custom Task SAS data set viewer written in Visual Basic .Net).

 

 

hollandnumerics_16-1616684660315.png

Figure 4. Custom Task SAS data set viewer written in Visual Basic .Net

 

There was a difference between the workspace servers accessed by Enterprise Guide in SAS versions 9.1.3 and 9.2, so version 4.1 could access SAS version 9.1.3 local and remote servers, and version 9.2 local servers. Enterprise Guide version 4.2 removed access to SAS version 9.1.3 servers, but could access both SAS version 9.2 local and remote servers.

 

hollandnumerics_17-1616684702819.png

Figure 5. Server Window

 

Version 4.2 - Escape from Interactive SAS

A bigger advance came with version 4.2, as it started using its own code editor, as the interactive SAS Enhanced Editor development had been frozen. Another smaller advance, but still useful for larger process flows, was the introduction of Conditional Processing, allowing nodes to be run only when specific conditions are met, for example, macro variables had specific values or specific data sets existed.

 

Enterprise Guide version 4.3 added Code Window options with SAS syntax help pop-up windows and code-complete (see Figure 6. Enhanced Editor Options).

 

 

hollandnumerics_18-1616684830839.png

Figure 6. Enhanced Editor Options

 

Version 4.3 also extended access to include SAS versions 9.2 and 9.3 local and remote servers, and added a Code Analyzer to the Code Window menu to create process flow of program using PROC SCAPROC.

 

Version 5 - 64-bit and Data Explorer

A 64-bit version of Enterprise Guide became available in version 5.1. Both 32-bit and 64-bit releases could access SAS versions 9.2, 9.3 and 9.4 local and remote servers, and included a Data Explorer tool, which did not automatically add the SAS data set to the project.

 

From Enterprise Guide version 1 there had been Import and Export wizards to convert non-SAS file formats to and from SAS data sets, without the need to license SAS/ACCESS®, by using Microsoft Data Access Components installed with Enterprise Guide in Windows. In version 5.1 the Export wizard could export SAS data sets as XLSX files.

 

Version 6 - Log Summary

In version 6.1 the Data Explorer tool introduced in version 5.1 was updated, so that the SAS data sets could be optionally added to the project. This was supplied with SAS version 9.4.

 

When any program is run in Enterprise Guide, the SAS Log and output files are automatically saved in the EGP project files. In version v6.1 a Log Summary tool was introduced to analyze the program logs. However, it came with no control over when the log analysis is done. By default the last SAS Log that was open when the project was saved, was reanalyzed when the project was reopened. This proved to be its Achilles heel, as closing a project with a very large log open would reanalyze that Log on reopening that project, which effectively locked out the project until completed. The only way to avoid this happening was to deliberately open a program with a small Log file before saving the project.

 

Version 7 - Updater and controllable Log Summary

I was delighted to install Enterprise Guide version 7.1, as it included an updated Log Summary tool with a check box to switch it off when running programs that generated large Logs. The other useful feature, but which only worked with programs stored inside a project, was an interface to Git repositories for retaining program development history, so a version of a program could be saved in Git, and then compared with later versions to see where changes had been made. However, my favourite new feature was the ability to integrate external file comparison tools, like WinMerge, to compare SAS programs.

 

Version 7.11 added the SAS Enterprise Guide Updater, so that Enterprise Guide can be updated by users without requiring the manual downloading of update files (see Figure 7. SAS Enterprise Guide Updater). For all of the corporate maintenance teams, who are now very concerned about this: there is also a configuration switch to disable this feature!

 

 

hollandnumerics_19-1616684890525.png

Figure 7. SAS Enterprise Guide Updater

 

SAS Studio Tasks can be shared with Enterprise Guide from version 7.1 from a Single-User Edition of SAS Studio installed on the same PC. The ability to share SAS Studio Tasks from a remote Enterprise Edition of SAS Studio was added in Enterprise Guide version 7.11 (see Figure 8. SAS Studio Tasks in Enterprise Guide version 7.11).

 

hollandnumerics_20-1616684929761.png

Figure 8. SAS Studio Tasks in Enterprise Guide version 7.11

 

Still in version 7, but even later than version 7.11, version 7.13 added an interface to the SAS Data Step debugger, with windows similar to those seen in interactive SAS.

 

Version 8 - Welcome to the Start Page

Enterprise Guide version 8.1 changed the initial view when it was opened by adding a Start Page (similar to Microsoft Visual Studio and other IDEs (Integrated Development Environments), see Figure 9. Start Page in Enterprise Guide version 8.1) to direct users to recent projects.

 

hollandnumerics_21-1616684970433.png

Figure 9. Start Page in Enterprise Guide version 8.1

 

The Code Editor was updated to allow selected text to be changed to lower-case with [Ctrl‑Shift‑L] or to upper-case with [CtrlShift‑U], and table and column names could be dragged from the server window and dropped into programs. The Process Flow was also enhanced. In version 4.1 linked branches of items could be run from a selected item, but in version 8.1 items up to a selected item could be run instead (see Figure 10. Run to selected item or Run from selected item in Enterprise Guide version 8.1).

 

 

hollandnumerics_22-1616685011046.png

Figure 10. Run to selected item or Run from selected item in Enterprise Guide version 8.1

 

There were also improvements made to how a user could arrange the individual windows within Enterprise Guide, and the examples in the drop-down list helped users to choose their preferred screen layout (see Figure 11. Screen splits in Enterprise Guide version 8.1).

 

 

hollandnumerics_23-1616685049116.png

Figure 11. Screen splits in Enterprise Guide version 8.1

 

Enterprise Guide version 8.2 now allows windows to float (like my custom task, see Figure 4. Custom Task SAS data set viewer written in Visual Basic .Net) or be docked, and added an optional dark theme.

 

Finally, for now, Enterprise Guide version 8.3 appears to only be a maintenance release.

 

SAS Studio

All versions can access SAS version 9.4 local and remote servers, and are accessed using a web browser, so no local installation or maintenance is necessary. The SAS Programmer perspective looks similar to the interactive SAS layout, showing tabs for programs, with CODE, LOG and RESULTS sections associated with each program. SAS University Edition includes SAS Studio as its development interface. SAS Studio data import wizards require a SAS/ACCESS for PC Files licence on the SAS server to read Excel and Access files, unlike in Enterprise Guide, because of the browser platform used may not have any access to the Microsoft Data Access Components.

Each release has added more Tasks and Snippets, and users can write their own Custom Tasks using just XML and the Velocity Template Language. As was mentioned earlier, SAS Studio Tasks can be shared with Enterprise Guide from version 7.1 from a Single-User Edition of SAS Studio installed on the same PC, and from a remote Enterprise Edition of SAS Studio from version 7.11 (see Figure 8. SAS Studio Tasks in Enterprise Guide version 7.11).

 

Versions 3.1 and beyond

The first public version of SAS Studio (previous known as SAS Web Editor) was version 3.1, which was included in SAS 9.4 M1 in 2013 as an alternative programming environment to Enterprise Guide and interactive SAS. The only available perspective was later called the SAS Programmer perspective, including expandable sections for Folders, Tasks, Snippets, Libraries and File Shortcut, and tabbed windows for Code, Log and Results (see Figure 12. SAS Programmer perspective in SAS Studio 3.2).

 

hollandnumerics_24-1616685091630.png

Figure 12. SAS Programmer perspective in SAS Studio 3.2

 

In SAS Studio version 3.5 the Visual Programmer perspective was added to provide a process flow view of the programs (see Figure 13. Visual Programmer perspective in SAS Studio 3.5), similar to that in Enterprise Guide, which can be saved as, and loaded from, a CPF (*.cpf) file. Like SEG and EGP files, CPF files are zipped collection of XML files, but are currently not readable by Enterprise Guide.

 

hollandnumerics_25-1616685141254.png

Figure 13. Visual Programmer perspective in SAS Studio 3.5

 

SAS Studio version 3.6 included an experimental feature to import Enterprise Guide project files into SAS Studio, with the caveat that only SAS Studio-compatible Enterprise Guide nodes are imported, which was upgraded to a production feature in version 3.7.

 

SAS Studio version 3.8, available with SAS 9.4 starting from the M4 release, included an experimental interface to Git repositories for retaining program development history. This could be updated to the production version with a hot fix (downloadable from http://ftp.sas.com/techsup/download/hotfix/HF2/D8F.html#D8F002). This is now fully in production in SAS Studio version 3.81, which is the latest version and available with SAS 9.4 starting from the M7 release.

 

Similarities between Enterprise Guide 8.3 and SAS Studio 3.81

While the original versions of Enterprise Guide and SAS Studio were very different to each other, the latest versions of the two SAS applications have many similarities:

 

  • Syntax-coloured program editors with context-sensitive help, code reformatting, and load programs from, and save programs to, disk.

  • Log and results viewers, including viewers for image formats, HTML and PDF files.

  • Process flow display of program nodes allowing individual or all nodes to be run in sequence.

  • Data can be displayed from SAS libraries, or platform folders and file references.

  • SAS programs are run in a local or a remote SAS Workspace server from both applications.

  • Programs are run in a SAS session that only closes when the session is explicitly terminated, so the environment (macros, macro variables, options, etc.) created by each program will still exist when the next program is run.

  • Both applications can generate PROC SQL code using a drag-and-drop window.

  • The folder where each program is run must be specified before any program is submitted, otherwise the applications will use the default folder specified by the server, which may not be as expected.

  • Interface to Git repositories (production in Enterprise Guide 8.1 and SAS Studio 3.8+hot fix) for saving program development history.

  • There are no facilities to run SAS command line statements.

  • It is not possible to run interactive SAS programs, for example, %WINDOW, %DISPLAY, %INPUT and SAS/AF windowed programs.

 

Missing features

  • SAS Studio can not use Enterprise Guide Custom Tasks.

  • Enterprise Guide can not read SAS Studio projects from CPF project files.

  • There is currently nowhere for Snippets to be saved in Enterprise Guide.

  • SAS Studio can not generate Stored Processes.

  • SAS Studio can not schedule project files by generating VBS scripts.

  • Enterprise Guide Custom Tasks are compiled libraries that are difficult to copy. This allows vendors to develop and market their own Custom Tasks for Enterprise Guide without exposing their internal processing. SAS Studio Custom Tasks are plain text files, so can easily be copied. This could discourage vendors from developing and marketing their own Custom Tasks for SAS Studio.

  • Attempting to run programs that use interactive SAS windows generates errors in the SAS Log, and so can not be used, although SAS/AF and interactive macro windows are rarely used now.

 

Conclusion

Those readers used to developing programs in IDEs, such as Microsoft Visual Studio, Eclipse, R-Studio, or Android Studio, would probably not consider Enterprise Guide (now 21 years old) or SAS Studio (now 8 years old) to be a proper IDE yet. There are, however, features appearing in both SAS applications that approximate to functionality in the other IDEs, so maybe it won’t be long before one or both of them can be included in that category. Having used both applications since their introduction, I no longer use interactive SAS very often, and find their editing features to be far superior to those I used in interactive SAS. I am left wondering why the SAS marketing department decided to position Enterprise Guide primarily as a programming environment for non-programmers!

 

References

 

Recommended Reading

 

Contact Information

Your comments and questions are valued and encouraged. Contact the author at:

Name: Philip R Holland

Company: Holland Numerics Limited

Phone: +44-7714-279085

E-mail: phil@hollandnumerics.org.uk

Web: blog.hollandnumerics.org.uk

 

SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.

Other brand and product names are trademarks of their respective companies.

Comments

The original program for controlling Peedy was written in Visual Basic 6 and accessed the Microsoft Agent 2.0 ActiveX objects directly. The version you’ve seen in my video is an updated version written in Visual Basic .Net, which acts as a wrapper for the ActiveX objects.

 

An evaluation .Net version can be downloaded for free from my blog site (along with sample scripts and the Microsoft Agent 2.0 characters and libraries): https://hollandnumerics.org.uk/wordpress/shop/woo-other/msagent-actor-evaluation/.

 

In the spirit of the “Curiosity and Collaboration” theme of SASGF 21, please try out this evaluation version. Letting me know if the libraries install correctly on your Windows PC, as I don’t want to release the full version until I’m sure that the installation has been thoroughly tested.

 

The evaluation version is the same program as the full version, but with in-built text added to the start of each script saying that it is an evaluation version!

Version history
Last update:
‎10-25-2021 01:49 PM
Updated by:
Contributors

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Article Labels
Article Tags