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,'";'));
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.