04-29-2014 02:12 PM
Currently I am working on a project for migrating codes written in SAS 9.2 to SAS 9.4. Can someone help me on what all code changes have to made for this migration . SAS is on UNIX platform. Is there any changes in the way program is called using a Shell script ?
Appreciate your help on this
04-29-2014 07:00 PM
I would think SAS code written for 9.2 would run fine in 9.4 without modification. Off the top of my head, can't remember huge changes in 9.3 or 9.4 for base SAS. You might want to check the "what's new" for 9.3 and 9.4
But I'd just ruin the code in 9.4, and compare results to what you got from 9.2.
04-30-2014 06:43 AM
Interesting how I interepreted the question differentlhy than others.
If the question is "I have a SAS program written for SAS 9.2 that I need to run on SAS 9.4, what will I need to change in my code?", the answer is likely very little. Of course it depends on what your code does. As RW9 points out, one place where I think SAS does not put as much emphasis on backwards compatibility is ODS output. Thus the suggestion to compare the results as part of your validation. If the code is an ETL job with no reporting, I would expect it to run fine without any changes (still validate per whatever your procedures are, PROC COMPARE is your friend).
SASKiwi's points also well made. If the quesions is "I need to set up a 9.4 environment ..." that is an even bigger question. If you already have a validated 9.4 environment then migrating your 9.2 code to run in 9.4 shouldn't take too much.
04-29-2014 11:47 PM
It would be considered best practice to test ALL migrated "Production" code when moving from SAS 9.2 to SAS 9.4.
This is to confirm that all aspects of your SAS 9.4 environment have been set up correctly, so this is not just a code compatibility issue. Does your 9.4 environment function the same as your 9.2 one and does everything work?
For example can you access all of your external databases, have security and permissions been set up correctly, can you output to Excel, Word HTML, PDF......the list does on....
04-30-2014 04:26 AM
To add to the previous, its highly advised to compare outputs from both. We migrated from 9.2 to 9.3 sometime back and noticed that there were differences in the templates, for instance, which caused slight differences in outputs. I would assume there is a test plan in place, user acceptance etc. to follow?
04-30-2014 07:28 AM
If you have code that has to connect to the metadata server, you may have to deal with the following:
- is 9.4 installed on a completely different server? Then you probably have to change hostnames, unless you just use localhost
- is it installed on the same server? Then you may need to change the port number, because the new(additional) metadata server instance is running on a different port
With a new SAS version, it is prudent to make tests regarding CL parameters like memsize. A new version may require more memory to work properly.
We have also experienced different treatment of special characters when migrating. IE when importing data from the mainframe, with 9.2 I had to translate the German umlauts after reading with $ebcdic, with 9.4 it worked correctly on its own.
04-30-2014 08:14 AM
If the question is: "Is there any changes in the way program is called using a Shell script ?" The focus on the shell-script, than the interpretation can be quite different.
- Is the SAS metadata involved? A lot has been changed on that part with a very complicated usermod approach for each kind of service. There are even failures in the SAS expectations for that part of configuration.
- I is just batch-scripting (ETL) for base-SAS? All new naming conventions on the new machine/version name could be different.
- Still wanting to use DMS with personal scripting? Same kind of changes as with the batch approach.
- Wanting to do a SAS-studio implementation? Did not exist with 9.2.