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);
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.