Hi everyone
One problem we are facing with SAS is the governance of macros (programs and variables) that we were building lately.
We have a lot of macros and we want to inform our sas users their existence and push them to use it. Any thoughts about it?
Set your macros up in AUTOCALL libraries then add a SASAUTOS option in your SAS server's AUTOEXEC to point to these automatically for all SAS sessions:
libname OURAUTOS "OurAUTOCALLMacroLibraryFolder";
options sasautos = (OURAUTOS, SASAUTOS);
Putting your macro library first will ensure your resolve before the SAS ones.
Documenting them on a web page so it is easy for SAS users to find is worth considering.
Agree with the autocall route and documenting the macros on a web page.
I wrote a paper a long time ago about automating generation of an html index of a macro library by having a standardized code header in each .sas file, and then using SAS to read in the headers and parse them and write a report via ODS HTML. https://www.lexjansen.com/nesug/nesug04/po/po04.pdf
But I think rather than roll your own, you might look into something like Doxygen https://www.doxygen.nl/index.html for building documentation from code. I think that is what @AllanBowe uses to build documentation for his macro library. If you open any of the .sas files in https://github.com/sasjs/core/tree/main/base. You can see the @ tags for the data in the header.
I also find that having a help call for macros where %macroname(help) works for all macros,and prints a help page helps.
You could also write a %macrolist macro that lists the available macros and a short description.
Finally, having sensible and coherent names helps too.
@ChrisNZ wrote:
I also find that having a help call for macros where %macroname(help) works for all macros,and prints a help page helps.
You could also write a %macrolist macro that lists the available macros and a short description.
Finally, having sensible and coherent names helps too.
There are examples of one way of accomplishing this in the SAS supplied %SGANNO macro (and the %annomac if SAS Graph is available)
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.