HI Team,
I am customizing the code to run the job in all environments. Below is sample code existing today.
%macro DATA_CONN_DEV;
%PUT "It's a DEV ";
%mend DATA_CONN_DEV;
Now I have modified the code to customize.
%let reg=dev;
%macro DATA_CONN_®.; ---> Here macro name should contain environment name like dev,uat or prod
%PUT "It's a ®,";
%mend DATA_CONN_®.;
%DATA_CONN_®.;
If I mention environment values in %let statement above code should work for all DEV,UAT,PROD.
But I am getting below error. Please suggest me what is the better way to customize this code.
ERROR: Expected semicolon not found. The macro will not be compiled.
ERROR: A dummy macro will be compiled.
Just use a macro parameter:
%macro data_conn_dev(reg);
%put "It's a ®.";
%mend data_conn_dev;
%let reg=DEV;
%data_conn_dev(®.);
Note that ®. is local within the macro, so it's safe to use the same name in the global macro context.
You would not do it like that. The line:
%macro DATA_CONN_®.;
This is the macro signature, it needs to be fixed, you cannot macrotize macro!
What you want is a macro parameter:
%macro data_conn (env=); %put Its a &env.; %mend data_conn; %data_conn (env=dev); %data_conn (env=prod);
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.