BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
robm
Quartz | Level 8

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

1 ACCEPTED SOLUTION

Accepted Solutions
BrunoMueller
SAS Super FREQ

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

View solution in original post

2 REPLIES 2
BrunoMueller
SAS Super FREQ

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

Astounding
PROC Star

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

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1572 views
  • 1 like
  • 3 in conversation