I'm running a long loop and I want to update the log every now and again so I can keep track of it's progress however Enterprise guide 5.1 running on a Linux server will only output once the datastep has completed, is there an option to force my put statements to output to the log when they happen?
Thanks
data _null_; do i = 1 to 10; do y = 1 to 100000000; end; put i; end; run;
Hi
Have a look at this blog entry Tracking progress in your program with SAS Enterprise Guide: another trick by @ChrisHemedinger
It shows how to use the DOSUBL functtion together with the SYSECHO statement. Together they will do what you need.
Bruno
Even with logparm="write=immediate", the putlog entries will only appear after the data step has finished (SAS 9.2, EG 7.11).
Hi
Have a look at this blog entry Tracking progress in your program with SAS Enterprise Guide: another trick by @ChrisHemedinger
It shows how to use the DOSUBL functtion together with the SYSECHO statement. Together they will do what you need.
Bruno
I like it, this line does what I want;;
with a set statement;
rc = dosubl(cats('SYSECHO "OBS N=',_n_,'";'));
in a loop;
rc = dosubl(cats('SYSECHO "OBS N=',i,'";'));
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.