Hi folks, I'm new to SAS, but not to programming, and am hoping you guys could help me out here! I am trying to automate some monthly reports via windows task scheduler, and a batch file. I'm running into an odd issue where I can run my sas script in the sas editor with no problem. However, if I run this same script through a batch file, the ODS PDF functions don't work. The batch file outputs the final dataset as a list file, and the data is correct, so the meat of the script is working correctly, it's just the ODS that I'm having trouble with. I'm using SAS 9.3 on a windows 7 machine. The code is as simple as it can be: ODS PDF file="C:\Users\user\Desktop\&sysdate..pdf";
proc print data=finalname;
run;
Ods PDF close; The batch file looks like this: pushd %~dp0\monthly\horseshoe
:: ----------------------------APPEND THE DATE TO THE FILENAME---------------------------------------------------
set reportname=Horseshoe_Monthly_Report_
set filename=%reportname%%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%
::--------------------------------------------------------------------------------
"C:\Program Files\SASHome\x86\SASFoundation\9.3\SAS.exe" -sysin "Script.sas" -NOSPLASH -ICON -PRINT logs\%reportname%.lst -LOG logs\%filename%.log The log file and the list file write, and the script does properly execute(except for the ods output). The log file does show a few notes at the begining, these notes do not show if I run this script through the editor: NOTE: Unable to open SASUSER.REGSTRY. WORK.REGSTRY will be opened instead.
NOTE: All registry changes will be lost at the end of the session.
WARNING: Unable to copy SASUSER registry to WORK registry. Because of this, you will not see registry customizations during this
session.
NOTE: Unable to open SASUSER.PROFILE. WORK.PROFILE will be opened instead.
NOTE: All profile changes will be lost at the end of the session.
[Note about license redacted]
NOTE: This session is executing on the W32_7PRO platform. And finally, a few notes appear around the proc print: 443 ODS PDF file="C:\Users\user\Desktop\&sysdate..pdf";
NOTE: Writing ODS PDF output to DISK destination "C:\Users\user\Desktop\06JUN16.pdf", printer "PDF".
NOTE: This SAS session is using a registry in WORK. All changes will be lost at the end of this session.
444 proc print data=finalname;
445 run;
446 Ods PDF close; A few caveats: First, I am not an administrator on the machine, which is what I am guessing the registry issues are from. Secondly, I am not married to this work flow, it is just my initial experiment. Lastly, I have tried other ods outputs, such as csv (assuming something was wrong with my pdf print drivers), and it will just write an empty csv file, albeit named correctly and in the correct directory. Any thoughts or ideas on directions I can take? Thanks for your help!
... View more