The standalone SAS snippet code below worked for me, as well. You will need to add some diagnostics to your SAS program (similar to the %PUT below) and test the macro variable value at points in your program execution -- pay attention to how global and local macro variable resolution works - topic referred to as "scope of macro variables" and can be found at the SAS support
http://support.sas.com/ website for your reference.
Scott Barry
SBBWorks, Inc.
data _null_;
call symput ('today',put(today(),date7.));
run;
%put _global_;