Hi,
I've been struggling with this issue quite many times and haven't find a solution yet.
It's easiest to show the issue by little code:
%macro Message(message = , caller = &sysmacroname);
%put ERROR: &caller - &message;
%mend Message;
%macro CallerMacro;
%Message(message = Text)
%mend CallerMacro;
%CallerMacro;Issue here is that &sysmacroname resolves to MESSAGE, not CALLERMACRO. Is there any way to automatically determine which macro was a caller macro? End users doesn't like to write "caller = CallerMacro" for every message.
Which SAS-version are you using? In 9.4 you can use SysMExecName to get the right macro-name.
Which SAS-version are you using? In 9.4 you can use SysMExecName to get the right macro-name.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.