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

Hi experts,

 

I have the following macro and I want the macro to assign correct values.

 

%Macro Month_Pre_Selection (close, period1);

%if &Close. = 1 %then %do;

	%let input_contracts = CONTRACT_&period1.; 
	%let input_customers = CUSTOMER_&period1.;
	%let input_object = OBJECT_&period1.;
	%let input_payplan = PAYMENTPLAN_&period1.;

%end;

%if &Close. = 2 %then %do;

	%let input_contracts = CONTRACT_&period1._PRE; 
	%let input_customers = CUSTOMER_&period1._PRE; 
	%let input_object = OBJECT_&period1._PRE;
	%let input_payplan = PAYMENTPLAN_&period1._PRE;

%end;

%mend;

when I run it with following code 

 

%Month_Pre_Selection (1, 201805);

%put &input_contracts;

I get the following message in the log

WARNING: Apparent symbolic reference INPUT_CONTRACTS not resolved.
&input_contracts

What am I doing wrong?

 

Thanks in advance.

 

1 ACCEPTED SOLUTION

Accepted Solutions
Ksharp
Super User
%Macro Month_Pre_Selection (close, period1);
%global input_contracts ;
...........

View solution in original post

2 REPLIES 2
Ksharp
Super User
%Macro Month_Pre_Selection (close, period1);
%global input_contracts ;
...........
PaigeMiller
Diamond | Level 26

Or move the %PUT statement inside the macro.

--
Paige Miller
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
  • 1276 views
  • 2 likes
  • 3 in conversation