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.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.