Hello,
I am using a unix command such as nohup sas maindriver.sas &
which call many sas macro functions , one at the time...
I would like to add a unix command into on of these sas macro functions to stop execution because I am trying to make some troubleshooting and I want the process stop, until I have found where the problem come from?
You mean that the program should stop itself when it detects a certain condition (e.g. &syscc ne 0)?
%macro mainfunc; %m1; %m2; %m3; %m4; %m5; %mend mainfunc; %mainfunc;
Suppose that my mainfunction call m1, m2 , m3, m4, m5
So imagine that in m3, for example, I need to make a libname statement and if the libname does not exist, how can I abort the %mainfunc;
Abort when an error state is detected:
%if &syscc. ne 0 %then %do;
%abort abend 2;
%end;
You could also try the SAS option ERRORABEND which is good for batch jobs.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.