In the default sasv9.cfg in the SASPP folder of our installation (Windows Server, 9.4 TS1M7), there is the following line:
-insert set sasautos "SASEnvironment/SASMacro"
We modify, in our sasv9_usermods.cfg, the sasinitialfolder value to a location in the user space which of course does not have a SASEnvironment/SASMacro location in it. We add the correct location for the SASEnvironment\SASMacro folder in our sasv9_usermods.cfg, but this leaves the "bad" folder location in the sasautos concatenated file, which leaves a lot of warnings in code submitted by users, and in SAS VA data queries always appear to fail, with "WARNING: [sasinitialfolder]\SASEnvironment\SASMacro is missing from concatenation."
I could simply remove the line from the sasv9.cfg, but the whole idea of usermods is to not edit that file, and it would add additional things to do any time we update the server. Is there a way to "remove" the folder from SASAUTOS? Is it safe to -set sasautos instead of -insert set sasautos in our sasv9_usermods.cfg (and just include the full list from the original sasv9.cfg in \nls\en)? What's the best practice here?
As you've said the reason for not modifying sasv9.cfg is to avoid changes being overwritten during software upgrades. If there is only one config file to be modified and it is just one line being removed or commented (probably better) then I wouldn't have too much of a problem with that. If you wanted a less risky approach you could consider putting your SAS config files into the change control tool of your choice. We do that with SAS AUTOEXEC files and it ensures we keep a history of all changes made and reduces the possibility of getting things wrong.
As you've said the reason for not modifying sasv9.cfg is to avoid changes being overwritten during software upgrades. If there is only one config file to be modified and it is just one line being removed or commented (probably better) then I wouldn't have too much of a problem with that. If you wanted a less risky approach you could consider putting your SAS config files into the change control tool of your choice. We do that with SAS AUTOEXEC files and it ensures we keep a history of all changes made and reduces the possibility of getting things wrong.
I wonder why you are getting messages. We have a non-existent path in our sasautos, and do not get messages,
You end up with the equivalent of
options sasautos=('goodpath1' 'badpath1')
?
What is the message? Does it occur every time a macro is compiled from sasautos, or once at the beginning of the program?
Yes - we end up with the sasautos fileref [not the option, which contains the sasautos fileref as usual] containing {goodpath badpath otherpaths} (lots of other paths are loaded by default, of course).
The message was exactly as in my original post - "WARNING: [sasinitialfolder]\SASEnvironment\SASMacro is missing from concatenation." It happens any time a macro is used in a submission (usually only the first time a macro is used, but lately I've seen it pop up more than once). And - not necessary for a macro to be in sasautos to get this warning, only necessary I suspect for SAS to have reason to *check* sasautos for a macro.
The SAS Users Group for Administrators (SUGA) is open to all SAS administrators and architects who install, update, manage or maintain a SAS deployment.
Learn how to install the SAS Viya CLI and a few commands you may find useful in this video by SAS’ Darrell Barton.
Find more tutorials on the SAS Users YouTube channel.