8月 232016

After posting a couple of blogs on the subject of dates and date formats in Visual Analytics Designer, I got a question from a user who wondered how to compare data for a selected date to data from the same day of the previous year. Here’s one way to do this.

The example report enables a user to type in a date value in a variety of formats and displays the sale amount for the specified date, along with the sale amount for the same day of the previous year.

Working with dates in SAS Visual Analytics

The data source includes information on thousands of orders. Irrelevant data items have been hidden, with the items of interest shown below. Transaction Date has an associated MMDDYYYY format and Transaction Weekday is simply a duplicate of the date with an associated Day of Week format.

Working with dates in SAS Visual Analytics02

A parameter, Param date, is associated with the Parameter role of the Text input field and will store the value typed in the field.

Working with dates in SAS Visual Analytics03

Working with dates in SAS Visual Analytics04

Several calculated data items are created for ‘behind the scenes’ filtering and Ref Date is a data item that will store the date converted from the entered text version of the date.

Working with dates in SAS Visual Analytics05

Note that the ANYDTDTE informat is a great one to use when you are uncertain as to exactly how users will be typing in a date value.
Ref Date (Yr-1) is the ‘same day a year ago’ date.

Working with dates in SAS Visual Analytics06

A filter on the list table completes the report:
( Ref Date = Transaction Date ) OR ( Ref Date (Yr-1) = Transaction Date )
The data items below are now used to populate the report showing the data for the specified date for comparison with the data for the same day of the previous year.

Working with dates in SAS Visual Analytics07

Working with dates in SAS Visual Analytics08

With the addition of a few more calculated data items and filters, some additional report objects can offer alternate ways of displaying the data.
Prod Sale (ref date) and Prod Sale (Yr-1) are calculated as below:

Working with dates in SAS Visual Analytics09

The addition of the two new data items allow the information to be presented in the list table below, with this filter applied:  (Prod Sale (ref date) NotMissing OR Prod Sale (Yr-1) NotMissing)

Working with dates in SAS Visual Analytics10

The same filter (Prod Sale (ref date) NotMissing OR Prod Sale (Yr-1) NotMissing) can be applied to a crosstab object to produce the result below:

Working with dates in SAS Visual Analytics11

The addition of one additional calculated data item, Date, and a new crosstab object with a filter on Date, enables still a different display.

Working with dates in SAS Visual Analytics12

I found this to be an interesting example–both the problem and the solutions. I hope this blog will give you more ideas about using your dates to the best advantage in report.

tags: SAS Professional Services, SAS Visual Analytics

Working with dates in SAS Visual Analytics: Comparing to the previous year was published on SAS Users.

8月 202016

ProblemSolversIf you are using the second maintenance release of SAS 9.3 (TS1M2) or later, you might have noticed that you have several map-related libraries that are defined for you.

  • The MAPS library contains the old map data sets that have been provided with SAS/GRAPH® software for many years.  The source for these data sets was mainly freely available data or purchased data. As a result, it became difficult or impossible to provide updates to this data.
  • The MAPSGFK library contains new map data sets that are licensed through GfK Geomarketing and that are provided as part of SAS/GRAPH software.
  • The MAPSSAS library points to the same location as the MAPS library.

Determining which library to use

You should use the MAPSGFK data sets to produce your maps.  There are several advantages to using the MAPSGFK data sets:

  • The older MAPS library data sets contain outdated data, and this library will not be updated.
  • The MAPSGFK data is updated more frequently.
  • The MAPSGFK data sets standardize the variables in the data set. For example, the X and Y variables always contain the projected values, and LONG and LAT always contain the unprojected values.

Each of the data sets also contains the ID variable, as shown in the following example, to enable you to create a map without knowing about the boundaries that are contained in the data set.

proc gmap data=mapsgfk.ireland_attr map=mapsgfk.ireland;
id id;
choro idname;

As mentioned above, the MAPSGFK library data sets contain both projected and unprojected values, which is helpful when you use annotation with maps or when you create a subset of a map.

  • The MAPSGFK.PROJPARM data set contains the parameters that were used when the projected data was created for each of the data sets.  You can use these parameters with the GPROJECT procedure when you project an annotate data set. For more information about projecting an annotate data set using MAPSGFK.PROJPARM, see the sample code that appears in the section Code to Project Annotate Data with a GfK Map Data Set ("Chapter 37: GMAP Procedure") in SAS/GRAPH® 9.4: Reference, Fourth Edition.
  • Many of the MAPSGFK data sets include a lower level of hierarchy  for boundaries than was available previously in the map data sets, as shown in this example:
proc gmap data=mapsgfk.africa1 map=mapsgfk.africa1;
   id id;
   choro id / nolegend;

This code sample generates the following output:


You can use the GREMOVE procedure to remove internal boundaries that you don’t want as part of your map.

  • In earlier releases, the names of the map data sets in the MAPS library were limited to eight characters. The MAPGSFK data sets do not have that restriction, so you can use longer names. The longer data-set names enable you to determine the map data-set content more easily.

Determining which MAPSGFK data sets to use

To help you determine which data set to use to create your map, you can use dictionary tables in the SQL procedure to generate a list of the data sets that are contained in the MAPSGFK library, along with their associated labels.

This example illustrates how you can view the dictionary table for selected data sets (in this case, MEMNAME and MEMLABEL):

proc sql;
   select memname, memlabel from dictionary.tables
          where libname='MAPSGFK';

The following output is a partial display of the results:


The data sets that end in _ATTR are the attribute data sets for the map data set of the same base name. You can use the attribute data sets to obtain names and other information that is associated with variables in the map data set.

You can determine more information about the contents of the data sets using the DICTIONARY.MEMBERS dictionary table in PROC SQL.

proc sql;
   select name, type, length, label from dictionary.columns
          where libname='MAPSGFK' and memname='NAMERICA';

The following output shows the results:


In some cases, changing your existing PROC GMAP code to use the MAPSGFK data sets rather than the MAPS data sets might be as simple as changing the data set name in the MAP= option of the PROC GMAP statement. In other cases, this changing data sets can include changing the variables that are listed in the ID statement of PROC GMAP, including using a GREMOVE procedure step to remove a lower-level map boundary to or remove or modify a GPROJECT procedure step. You can find tips about modifying your existing PROC GMAP code to work with MAPSGFK data sets in the section Using GfK Map Data Sets with Existing Code ("Chapter 37: GMAP Procedure") in  SAS/GRAPH® 9.4: Reference, Fourth Edition.

You can find more information about the new map data sets and modifying your existing map programs to use the MAPSGFK data sets in the SAS Global Forum paper The New SAS® Map Data Sets (by Darrell Massengill) and in the SAS/GRAPH Concepts section of SAS/GRAPH® 9.4: Reference, Fourth Edition.

tags: Problem Solvers, SAS Programmers

MAPS, MAPSGFK and MAPSSAS, Oh my! was published on SAS Users.

8月 162016

Reference lines on a visualization are used to help identify goals or targets, acceptable or unacceptable ranges, etc; basically any metric that puts a frame of reference around the values on the visualization.

The Percent of Total of a metric is used to help identify a part-to-whole relationship. It answers the question, how much of the whole does this piece represent?

In this blog, let’s take a look at how you can use both the Percent of Total metric and Reference Lines  to enhance your data visualizations using SAS Visual Analytics.

Example 1

In this section, we are reporting on the Percent of Total for Revenue. First, look at the single select List control object. You’ll see I have displayed the available Product Lines and their corresponding frequency percent. This allows the report viewer to quickly understand the number of rows associated with that Product Line when compared to the whole of the data.

Next, under the List control object, we have a Stacked Bar Chart graphing the Revenue (Percent of Total) which allows the report viewer to understand the part-to-whole relationship of the Products that make up that Product Line. While we can clearly see that the Board Product, colored in blue, is outperforming the other two Products, it may be difficult to tell which remaining Product is pulling in the higher Revenue.

The Grouped By Bar Chart in the middle of the report can be used to quickly compare the performance of each Product. I added a reference line so that the report viewer can quickly identify which Products are pulling in more than 25% of the Revenue for that Product Line.

Percent of Total and Reference Lines

Here are some additional views from this report:

In this view, we have selected the Action Figure Product Line and it makes up 57.32% of the Frequency Percent. We can see that not one individual Product in the Action Figure Product Line reaches 25% of the Revenue’s Percent of Total and that they are all hovering near 15%. By using the Revenue (Percent of Total) metric all of the data is normalized and the static reference line allows for quick and easy comparison over all of the Product Lines.
Percent of Total and Reference Lines

And in this view, for the Promotional Product Line which makes up 7.05% of the Frequency Percent of the data, we can see that there are a few Products that are outperforming the others. As these are promotional products this can be expected as trends and styles fluctuate.

Percent of Total and Reference Lines

After examining this report about Revenue (Percent of Total), you can easily think of other reports that would be useful to an organization. For the high and low Revenue (Percent of Total) values, are the number of employees assigned to the Products and/or Product Lines appropriate? What about the Expenses both Operational and Material for your most and least revenue generating Products and/or Product Lines, is the spending reasonable? Are the Product Material Costs justified?

Using a part-to-whole comparison visualization can help identify other areas of business that may need further investigation.

Example 2

Here is another report example using the Revenue (Percent of Total) metric with reference lines. In this example, we plotted Revenue (Percent of Total) against the months of the year. Here we can see how the Revenue (Percent of Total) is dispersed across the months. I’ve also added a Percent of Total and Reference Lines

As the Promotional Product Line lends itself to the most fluctuation, we can see the breakdown of the Revenue (Percent of Total) and how it maps to the different months. Like the other report, this can then lead to additional reports to answer questions of if there is any seasonality to the spikes, or pair these findings with other market events. The Revenue (Percent of Total) for iPhone Covers is higher in July 2011, was there a new iPhone release that month? It may also be good to learn what was happening in April 2011 as the Revenue (Percent of Total) for Backpacks increased.

Percent of Total and Reference Lines

Combining the results of these reports with other groups in the organization can help determine which business decisions are having the desired impact on the bottom line results. Are the marketing strategies effective? Are the planned expense reductions are being met? Are we making better use of our product material waste?

Reference lines can help by making it easy to quickly identify whether or not targets are being met. And by using the Revenue (Percent of Total), a single reference line can be used across several categories since the scale has been adjusted to 100%.

tags: business intelligence, SAS Administrators, SAS Professional Services, SAS Programmers, SAS Visual Analytics

Use Percent of Total and Reference Lines to ask better business questions was published on SAS Users.

8月 112016

Locating Modified ContentAs a SAS administrator, you may face situations where you need to locate content that has been modified in the system since a given point in time. If the system has many content developers, discovering all of the folders, libraries, tables, reports, explorations, and similar items that have been modified can be a daunting task. Fortunately, the ExportPackage command from the SAS Platform Object Framework provides just what we need for tackling this sort of question.

Having a command line utility that combs metadata for objects modified or created based on a date criteria can be helpful in many situations.  For example:

  • The administrator oversees a system where full backups are not scheduled to run every day. However, to minimize lost work in the event of a system failure, the administrator would like to create a package of all content that was modified each day so that it could be restored if necessary.
  • A content developer contacts the administrator saying that she would like to create a package of everything she has modified since yesterday but cannot recall everything that she has done.
  • It is Thursday and a problem has arisen that requires reverting the system to its state as of Sunday night which was the last backup. Before reverting the system from the backup, the administrator would like to create a package of any content modified since Monday morning so that it can be restored after the reversion.

The ExportPackage utility can help in all of these situations. To see how, I am going to run the command on my system to locate all of the content I have created today in the /Enterprise folder tree, which is where I store content for testing.

Locating Modified Content

As you can see, the ExportPackage command takes several arguments that allow me to control the scope of metadata that is searched for content and to filter that content on a date specification. The key arguments in my command are:

  • -profile “SASAdmin” – I am using the SASAdmin metadata connection profile to identify my metadata server and to provide a user and password rather than specifying each value individually on the command line.
  • -since “Today” – This is the magic. I just want today’s changes so the keyword “Today” is perfect. It also makes scripting this command much easier as I do not have to know the current date. Of course, if I needed to specify an exact date I can certainly do that here as well, or I can use any of the other keywords such as “Yesterday,” “Week to date,” “Month to date” and “Year to date.”  There is also a -before argument if we ever need to discover objects created or modified before a certain date.
  • -includeDep – This adds dependent objects into the package. For example, if I created a new report which is dependent on a specific table, both objects will be added.
  • -package “C:TempnewObjects.spk” – Names the package that will be created with my modified objects. This argument is required.
  • -objects “/Enterprise” – Specifies the folder where I want to start the search. This argument can also filter for specific types of objects if needed.
  • -noexecute – Lists the objects to export but does not create the package. I used this so we could see what the package would contain.

Continue reading »

8月 102016

Mastering SAS programming techniques at WUSSWhen I think of the Western Users of SAS Software conference, I think of my first event in 1994. I was just starting to learn SAS and wanted to meet others in my region who were also excited about the software. Meeting and discussing SAS topics face to face at the three day conference not only was a lot of fun, but helped me enhance my programming skills. I remember meeting SAS experts who went out of their way to explain concepts such as ODS, and provide practical examples. I also learned from SAS employees giving live demos and answering my technical questions. Finally, I took advantage of free technical support by taking my SAS programs with warnings and notes to the Code Doctors for a full examination.

Through this conference and others like it and years of experience, I developed some programming techniques that have saved me hours of time. And like those SAS experts at my first WUSS, I now share my knowledge at SAS conferences.

I’ve also contributed to SAS blogs, and my most popular online tip Something for Nothing – Adding Group Descriptive Statistics has over 9,000 views. When I presented this tip at a conference, it was standing room only. Below is the tip that easily adds SEXN variable, the number of males or females. This example gives you a flavor of the type of valuable insights I'll be sharing at this year’s WUSS conference and become more productive back in the office.

proc sql;
create table class2 as
   select a.*, b.sexn                                     /* add group count variable */
   from sashelp.class as a
   left join                                                       /* keep all records */
   (select sex, count(sex) as sexn               /* create group count variable */
    from sashelp.class where sex gt ' '       /* apply condition as needed */
    group by sex                                             /* group by variable */
   ) as b on;                               /* link by detail variable */

Want to learn more tips like these? If so, I encourage you to join fellow SAS programmers at WUSS.  As a presenter and SAS author, I personally enjoy helping others apply SAS syntax to solve real-world programs. I especially like techniques to standardize and automate process.

This year’s Western Users of SAS Software Educational Forum and Conference takes place from September 7-9 at the Grand Hyatt on Union Square in San Francisco. Join me there to learn more about my SAS tips.

Register now. It’s a great three days of educational opportunities, 100+ presentations, classes, workshops, networking and more. Visit for more information.

Hope to see you there!

Mastering SAS programming techniques at WUSS was published on SAS Users.

8月 082016

Passcode security for SAS Mobile BIMobile devices travel with humans pretty much anywhere that humans want to go. Unlike desktop computers that stay fixed and grounded within brick and mortar walls, mobile devices are used in all sorts of locales – offices, homes, cars, planes, swimming pools, soccer fields, movie theaters – the list goes on. So, it’s no surprise that your SAS administrator would want to protect SAS Visual Analytics reports that are viewed from the SAS Mobile BI 7.33 app running on mobile devices.

Several security strategies are available for SAS Mobile BI users. Let’s take a look at how passcode security, along with Touch ID for Apple devices, protects access to the app.

Required vs. Optional Passcode

There are two ways to apply passcode protection to SAS Mobile BI. Your administrator can enforce a passcode requirement for the server where the SAS Visual Analytics reports reside. On the server, this is done by enabling the Require Passcode on Mobile Devices capability and adding users as members of the group that is required to create and use a passcode for accessing SAS Mobile BI.

If a passcode is not required by your administrator, you can create an optional passcode to protect access to the app on your mobile device. In either scenario, if your mobile device is used by someone other than you, then you have the peace of mind that only you can access SAS Mobile BI by entering your passcode.

Creating an Optional Passcode

To set up an optional passcode for SAS Mobile BI, go to Settings for the app. Tap on the toggle switch for Passcode lock and create a passcode.

Passcode security for SAS Mobile BI

Optional Passcode Lock in Settings.

When presented with the Passcode dialog, create a 4-digit passcode for SAS Mobile BI.

Passcode security for SAS Mobile BI01

Creating a Passcode

By default, anytime that you access SAS Mobile BI after 5 minutes of inactivity (or for the period of inactivity that is set by your administrator), you are prompted by the Passcode dialog to enter your passcode.

Passcode security for SAS Mobile BI02

Entering Your Passcode to Access the App

If the passcode is mandated and not optional, then your administrator can customize and set a different inactivity timeout before a passcode needs to be entered.

What Happens If You Enter Incorrect Passcodes?

If you enter an incorrect passcode, you are given a total of 10 attempts to enter your correct passcode. This is the default behavior when you have an optional passcode for the app. Administrators that mandate the need for a passcode with the Require Passcode on Mobile Devices capability on the server can customize the settings for the server to determine the number of wrong passcode attempts.

Passcode security for SAS Mobile BI03

Entering an Incorrect Passcode

If you enter an incorrect passcode 10 times, you are locked out for 15. When the lock-out expires, you are prompted again to enter your passcode.

Passcode security for SAS Mobile BI04

Application Reset

When the lock-out expires, you are prompted again to enter your passcode.  On the second attempt, if you exceed the allowed number of passcode entry attempts, SAS Mobile BI removes all reports, data, and server connections from your mobile device. The app is reset to its default settings.

Passcode security for SAS Mobile BI05

Just Can’t Remember Your Passcode?

If you forget your passcode, the easy thing to do is delete the app, download and reinstall the app, create a new passcode, and set up your connections to the servers with SAS Visual Analytics reports.

Touch ID for Apple Devices

If you are an Apple device user who has simplified life further by using a Touch ID instead of a passcode, you can use the Touch ID to access the SAS Mobile BI app. To enable Touch ID on your iPhone or iPad, follow these instructions from Apple to add your fingerprint and create a Touch ID for your Apple device.

If Touch ID is enabled for your device, and there is an inactivity period with SAS Mobile BI, the app prompts you for your Touch ID fingerprint:

Passcode security for SAS Mobile BI06

Touch ID Prompt for SAS Mobile BI on Apple Devices

If your Touch ID fingerprint is incorrect, then the app prompts you to enter your passcode:

Passcode security for SAS Mobile BI07

Passcode Prompt if Touch ID is Incorrect

Now, you are familiarized with securing access to SAS Mobile BI on your devices. We will continue this journey to learn about various other security options available for the app.



tags: SAS Mobile BI, security

Passcode security for SAS Mobile BI was published on SAS Users.

8月 052016

SASCaresDo you need help finding product information or navigating the SAS website or options for getting started with SAS? Do you need, information about course availability and registrations, training discounts, and certifications? Would access to sample code be helpful? How about, event-related support, assistance identifying and connecting with the right person at SAS, or maybe just someone to listen to your feedback and ensure it is shared with the appropriate parties within SAS?  The Customer Contact Center can help with these and more!

When customers are looking for information from their business partners, they want the ability to self-serve or receive quick assistance. We recognized that it was not always easy for our customers to find information or reach the right person here at SAS. To help in this regard, we empowered our Customer Contact Center to provide consistent frontline support across inbound channels. We also streamlined our 1-800 phone lines and expanded our customer service resources all with the goal of better serving our customers.

When you need help, reach out to our knowledgeable Customer Contact Center Engagement team. You can reach us via phone, email, live chat, web contact form and social media. If we don’t have the ability to resolve your issue, we’ll guide you to the right place (perhaps a SAS Communities conversation or a document on our web site, for example), we’ll refer you to a subject matter expert (Sales, Tech Support, Education Operations, Contracts, just to name a few).

Our mantra is availability and consistency. We’re available from 8am – 8pm Mon-Thurs and 8am-5pm on Friday (US Eastern time). And we are global, supporting the Americas (all countries) and EMEA  (UK, Ireland and Italy, with plans to expand across other countries). A positive customer experience is a key focus and your feedback is encouraged and shared. Regardless of your role or area of interest we are here to serve you.  If you need help but aren’t sure where to start just give us a call (or chat with us, or complete a web form or send an email, or reach out on social media). We look forward to serving you!

Contact us.

tags: sas cares, sas customer contact center

Who ya gonna contact? Customer Contact Center! was published on SAS Users.

8月 042016

Testing EMC Storage and Veritas shared file systemsIn my current role I have the privilege of managing the Performance Lab in SAS R&D. Helping users work through performance challenges is a critical part of the Lab’s mission. This spring, my team has been actively testing new and enhanced storage arrays from EMC along with the Veritas clustered file system.  We have documented our findings on the SAS Usage note 42197 “List of Useful Papers.”

The two different flash based storages we tested from EMC are the new DSSD D5 appliance and XtremIO array.  The bottom line: both storages performed very nicely with a mixed analytics workload.  For more details on the results of the testing along with the tuning guidelines for using SAS with this storage, please review these papers:

As with all storage, please validate that the storage can deliver all the “bells and whistles;” you will need to support your failover and high availability needs of your SAS applications.

In addition to the storage testing, we tested with the latest version of Veritas InfoScale clustered file system.  We had great results in a distributed SAS environment with several SAS compute nodes all accessing data in this clustered file system.  A lot of information was learned in this testing and captured in the following paper:

My team plans to continue testing of new storage and file system technologies throughout the remainder 2016.  If there is a storage array or technology you would like to have tested, please let us know by sharing it in the comments section below or contacting me directly.


tags: performance, storage

Testing EMC Storage and Veritas shared file systems was published on SAS Users.

8月 042016

Color Names, Formats, Macros, ODS, Excel®, and PROC REPORTNot too long ago I had a report generation request from an Alaska state agency. The request had some very specific requirements that detailed the use of user defined colors (by name), data driven control of the report, and Excel delivery using ODS and PROC REPORT. Along the way I had to: determine what colors are known to SAS by name; develop a user tool for color selection that would feed uniformly into a data driven table; construct formats based on the data that would match the user selected colors to specific types of report cells; and deliver the report using Excel. The process was interesting enough that it has resulted in two papers, which I will present at WUSS, September 7-9 in San Francisco.

In these two papers the process for discovering how to name, select, and display the colors is described. Formats are built from the color names and the reported data (DATA steps with two SET statements are used to perform a data merge). Traffic lighting is used is used at the cell level in PROC REPORT, and the whole process is driven by macros. Talk about a fun project! For those of you unable to join me in San Francisco for the full talk, here are two quick tips on how to do this.

Extracting color names from the SAS Registry

The names of available colors are stored in the SAS Registry. They can be extracted to a file through the use of PROC REGISTRY. The following REGISTRY step writes the list of color names and their HEX definitions to the text file COLORNAMES.TXT.

proc registry export= "colornames.txt" 

Displaying a list of colors

If a list of color names is stored in a SAS data set, those colors can be displayed using PROC REPORT. In the following REPORT step, an Excel spreadsheet is created that shows the list of available colors that are stored in WORK.COLORS both with and without the color in the cell background.

proc report data=work.colors;
  column  colorname colorname=clr; 
  define colorname/ 'Color Name';
  define clr  / 'Color';
  compute clr /char length=35; 
     call   define(_col_,'style','style={background='||colorname||'}');

I hope you enjoyed these tips. Please join me for the complete talk at the Western Users of SAS Software Educational Forum and Conference, September 7-9 at the Grand Hyatt on Union Square in San Francisco.  Discounted registration is still available through August 8th! Register now. It’s a great three days of educational opportunities, 100+ presentations, classes, workshops, networking and more.

Visit for more information.

Editor's note: If you can't attend WUSS 2016 but would like to view Art's paper in it's entirety, the conference has plans to publish conference proceedings after the event.  

tags: ods, PROC REPORT, SAS ODS, US Regional Conferences, wuss

Tips for working with Color Names, Formats, Macros, ODS, Excel®, and PROC REPORT was published on SAS Users.

8月 022016

One of the jobs of SAS Administrators is keeping the SAS license current.  In the past, all you needed to do was update the license for Foundation SAS and you were done. This task can be performed by selecting the Renew SAS Software option in the SAS Deployment Manager.

More recently, many SAS solutions require an additional step which updates the license information in metadata. The license information is stored in metadata so that middle-tier applications can access it in order to check whether the license is valid. Not all solutions require that the SAS Installation Data file (SID) file be stored in metadata, however the list of solutions that do require it is growing and includes SAS Visual Analytics. For a full list you can check this SASNOTE. To update the license information in metadata, run the SAS Deployment Manager and select Update SID File in Metadata.

Recently, I performed a license renewal for a Visual Analytics environment. A couple of days later it occurred to me that I might not have performed the update of the SID file in metadata. That prompted the obvious question: how do I check the status of my license file in metadata?

To check the status of a SAS Foundation license you can use PROC setinit. PROC setinit will return the details of the SAS license in the SAS log.

proc setinit;run;

steps to update your SAS License

The above output of PROC setinit shows the:

  • Expiration Date as 25MAY2017
  • Grace Period ends on 09JUL2917
  • Warning Period ends on 04SEP2017

This indicates that the software expires on 25MAY2017, however nothing will happen during the Grace Period. During the Warning Period messages in the SAS log will warn the user that the software is expiring. When the Warning Period ends on 04SEP2017 the SAS Software will stop functioning. PROC setinit is only checking the status of the Foundation SAS license, not the license in metadata.

If the foundation license is up-to-date but the license stored in metadata is expired the web applications will not work. It turns out SAS Environment Manager will also monitor the status of the SAS license. But is it the Foundation license or the license stored in metadata?

To see the status of the license in SAS Environment Manager, select Resources then select Browse > Platforms > SAS 9.4 Application Server Tier. The interface displays:

  • Days Until License Expiration:  the number of days until the license expires.
  • Days Until License Termination: the number of days until the software stops working.
  • Days Until License Termination Warning: the number of days until the Grace period.

steps to update your SAS License

Some testing revealed that Environment Manager is monitoring not the status of the foundation license but the status of the license in metadata. This is an important point, because as we noted earlier not all SAS solutions require the SID to be updated in metadata. Since Environment Manager monitors the license by checking the status of the SID file in metadata, administrators are recommended, as a best practice, to always update the SID file in metadata.

Environment manager with Service Architecture configured also will generate events that warn of license termination when the license termination date is within a month.

In addition, as of SAS 9.4 M3, SAS Management Console has an option to View metadata setinit details. To access this functionality you must be a member of the SAS Administrators Group or the Management Console: Advanced Role.

To check on a SID file in metadata open SAS Management Console and in the plug-ins tab:

1.     Expand Metadata Manager

2.     Select Metadata Utilities

3.     Right- click and select View metadata setinit details

steps to update your SAS License

Selecting the option gives details of the current SID file in metadata, with similar information as PROC setinit displays including the expiration date, the grace period and the warning period.  In addition it displays the date the SID file was last updated in metadata.

steps to update your SAS License

The takeaway: to fully renew SAS software, and ensure that SAS Environment Manager has the correct date for its metrics on license expiration, always use SAS Deployment Manager to both Update the SAS License, AND Update the SID File in Metadata.

To check if your SAS Deployment license has been fully updated, do the following:

1.     Run PROC setinit to view the status of the SAS Foundation license.

2.     Use SAS Management Console or SAS Environment Manager to check if the SID file has been updated in metadata.

For more information on this topic see the video, “Use SAS Environment Manager to Get SAS License Expiration Notice” and additional resources below:


SAS® Deployment Wizard and SAS® Deployment Manager 9.4:User’s Guide: Update SID File in Metadata
SAS® Deployment Wizard and SAS® Deployment Manager 9.4:User’s Guide: Renew SAS Software
SAS(R) 9.4 Intelligence Platform: System Administration Guide: Managing Setinit (License) Information in Metadata
SAS® Environment Manager 2.5 User’s Guide

tags: configuration, SAS Administrators, SAS architecture, SAS Environment Manager, SAS Professional Services

Two steps to update your SAS License and check if it is updated was published on SAS Users.