BookmarkSubscribeRSS Feed
Quartz | Level 8

Hi ,

I have been using the the following ods statement to output a histogram using proc sgplot. This code is contained within a macro which is placed  in another large macro and is activated when certain conditions are met...i.e:

%macro example;



ods listing gpath = "&out." ;   /

/* create PNG image file */

ods graphics on / reset=index imagename = "histogram" ;

proc sgplot data=out.&summary.;

histogram xyz;

xaxis thresholdmin=1  thresholdmax=1;


%mend example;

Within the larger code there is a statement that says:

%macro largemacro;

several sas codes--------------------



if a in (1,2,3) then %example;


%mend largemacro;

I ran it for different examples of data and this is the first time I noticed this problem. I am able to get the dataset '&summary' and it has the variable xyz in it. I also tried removing the ods_all_close statement but it still doesn't work. I don't think the ods_all_close statement affects ods grahics ( It was placed to ensure all output destinations are closed for subsequent program runs ). There are several such ods_all_close statement in the entire code. As I mentioned it works for other examples. I would appreciate your help. Thanks !

Super User

Your %example macro is inheriting which ever ODS destination(s) is open. If none are open at the time it is called you'll get this message.

If your largemacro is calling other macros that would be a likely place to look for an ill placed _all_ close.



Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

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.

Get the $99 certification deal.jpg



Back in the Classroom!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 1 reply
  • 2 in conversation