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

Originally used codes to create a macro variable:

%let class = A B C;
%global class;

Now tried to use Prompt Manager to achieve the same result above:

Screenshot - Prompt Manager

Users will be required to select from the list. If he/she selects B & C:

Screenshot - Prompt Manager2

Then the value for the macro variable 'class', I hope, is "B C".

Clearly the Log shows:

8          %LET class0 = %nrstr(2);
9          %LET class1 = %nrstr(B);
10         %LET class2 = %nrstr(C);
11         %LET class_count = %nrstr(2);
12         %LET class = %nrstr(B);

which is not what I need.

 

How to fix it?

1 ACCEPTED SOLUTION

Accepted Solutions
MichaelLarsen
SAS Employee

You will need a macro to resolve the user selections into a single macro variable.

I have created a macro function the will resolve the values for you.

You may want to enhance it, using %symexist, to check if the specified macro varable actually exists.

 

%macro GetPromptValues(
  promptvar /* Name of the macro variable containing the prompt selections */);
  %let SelectedValues=;
  %do i=1 %to &&&promptvar._COUNT;
    %let SelectedValues=&SelectedValues &&&promptvar.&i;
  %end;
&SelectedValues
%mend;
%let NewClass=%GetPromptValues(Class);
%put NewClass=&NewClass;

 

View solution in original post

2 REPLIES 2
MichaelLarsen
SAS Employee

You will need a macro to resolve the user selections into a single macro variable.

I have created a macro function the will resolve the values for you.

You may want to enhance it, using %symexist, to check if the specified macro varable actually exists.

 

%macro GetPromptValues(
  promptvar /* Name of the macro variable containing the prompt selections */);
  %let SelectedValues=;
  %do i=1 %to &&&promptvar._COUNT;
    %let SelectedValues=&SelectedValues &&&promptvar.&i;
  %end;
&SelectedValues
%mend;
%let NewClass=%GetPromptValues(Class);
%put NewClass=&NewClass;

 

ayin
Quartz | Level 8
Exactly what I need. Thank you so much!

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

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
  • 1359 views
  • 1 like
  • 2 in conversation