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 ...
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.