%macro ship_to(customer);
%global deliver method;
%let deliver=;
%let method=;
%if &customer ne %then %do;
%if %substr(&customer,1,1)=X %then
%let deliver=expedite;
%if %substr(&customer,2,1)=A %then
%let method=air;
%end;
%mvarprt
%mend ship_to;
________________________________________________________________________
%macro mvarprt;
%local __countn;
/* Check to see that MSYMTABMAX=0. */
proc sql noprint;
select count(*) into: __countn
from dictionary.options
where optname='MSYMTABMAX' and setting="0";
quit;
/* 1 means that MSYMTABMAX=0. */
%if &__countn=1 %then
%do;
/* Get names and values. */
proc sql flow=40;
select objname label='Macro Variable Name',
input(substr(memname,6),2.) as mlevel
label='Nesting Level',
symget(objname) as value
label='Macro Variable Contents'
format=$char.
from dictionary.catalogs
where libname='WORK' and memname like 'SASST%'
and objtype='MSYMTAB'
and objname not in ('SQLOBS' 'SQLOOPS'
'SQLRC' '__COUNTN')
/* Display in this order. */
order by objname,mlevel
;
quit;
%end;
%else %put ERROR: MSYMTABMAX must be set to zero.;
%mend mvarprt;