How do I put the dsn info and message from below program into a dataset A? For example;
DSN Message
d:\test\test.xlsx TEST_B
%macro checkds(dsn);
%if %sysfunc(fileexist(&dsn)) %then %do;
%put TEST_A;
%end;
%else %do;
%put test_B;
%end;
%mend checkds;
%checkds(d:\test\test.xlsx)
Thanks.
Do you mean :
%macro checkds(dsn);
%if %sysfunc(fileexist(&dsn)) %then %do;
data test_a;
dsn = "&dsn";
output;
end;
%put TEST_A;
%end;
%else %do;
%put &dsn Does not exit;
%end;
%mend checkds;
%checkds(d:\test\test.xlsx)
So why have you jumped straight into macro? You can do this very simply in a datastep:
%let dsn=sashelp.bmt; data want; dsn="&dsn."; message=%sysfunc(exist(&dsn.)); run;
If you really need to then wrap the datastep in a macro call, but obviously only do this if needed. No point adding macro for no purpose.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.