Date: Thu, 17 Jan 2008 22:30:38 -0500
Reply-To: "Howard Schreier <hs AT dc-sug DOT org>" <nospam@HOWLES.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Howard Schreier <hs AT dc-sug DOT org>" <nospam@HOWLES.COM>
Subject: Re: How to Bypass 100s of Steps
On Thu, 17 Jan 2008 14:20:16 -0500, Andy Arnold <awasas@COX.NET> wrote:
>I can trap errors any number of ways. But...
>How do I tell SAS to NOT process any following steps but to also keep the
SAS session/environment alive?
>QUIT is not the answer because it halts a datastep but runs the next proc
or datastep - probably with disasterous results.
>ABORT is not the answer because it kills the entire SAS environment, taking
down my work datasets and some of the log. Most of my logs are PRINTTO-ed
to external files.
>GOTO and %GOTO are not the answer because they have limited scope.
>What I really want is a macro that behaves like this:
>%IF &SYSERR > 4 %THEN %DO;
> SKIP ALL REMAINING STEPS;
> DO NOT SHUT DOWN SAS;
>I'm running both SAS8 and SAS9 under WinXP. The specific job that raised
this issue sometimes gets an OUT OF MEMORY error. The job runs 2+ hours and
writes 600+ excel workbooks. When I get the OOM error, SAS kills the
offending step and keeps running; that wastes a lot of time. More important
is that I'm not aware of the error until an hour or more later. The source
code contains 750+ RUN statements, and that's before the macros are
expanded. There's no way I can re-write the job to repeatedly say "If no
error, then run next step.".
>Thanks for your reading time and your ideas.
Sounds like you are using Display Manager. You might find it advantageous to
run in batch instead. That should be compatible with most of the other
suggestions people have offered.
As to keeping yourself informed: there are remedies. For example, in most
environments it's possible to text yourself immediately when some condition