I tried this
%macro getserver;
%LET x=index(&_srvname, "uview");
%IF x > 0 %THEN %LET server=https://&_srvname&_url; %ELSE %LET server=http://&_srvname:&_srvport&_url;
%mend;
x seems to evaluate to "index(sas2.domain.com,"uview");" how would I get it to evaluate to a numeric value
Since you are using the macro language you also have to use macro functions like %INDEX
Please note, that in the macro language you do not need the quotes around text. So your example would look like:
%LET x = %index(&_srvname, uview);
Bruno
Since you are using the macro language you also have to use macro functions like %INDEX
Please note, that in the macro language you do not need the quotes around text. So your example would look like:
%LET x = %index(&_srvname, uview);
Bruno
Building upon what Bruno has mentioned ...
Once you follow his advice, you would need to change the way you refer to the macro variable X by adding an ampersand:
%if &X > 0 %then ...
Alternatively, just get rid of X entirely:
%if %index(&_srvname, uview) > 0 %then ...
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.