我想创建一个用户编写的转换,以便在某些条件为真时跳过进一步的作业执行。 我试过了代码
%abort;
%abort cancel;
但是这些语句会产生错误,比如因为%abort语句而停止处理。 我不希望显示错误消息,只是跳过剩余的作业执行。例如如果我的源表没有任何观察结果,则在不记录错误消息或警告的情况下退出作业。
答案 0 :(得分:2)
嗯,不确定这是否适用于SAS DI(我没有测试),但我们使用的是下面的宏:
%macro stop_sas;
%if "&sysenv" eq "FORE" %then %do;
%abort cancel;
%end;
%else %do;
endsas;
%end;
%mend;
它基本上检查SAS是否作为批处理作业运行,如果是,则静静地退出SAS。如果SAS以交互模式运行,那么它将在不关闭IDE的情况下中止提交的代码。
这里的关键语句是endsas
命令 - 这可能是你要找的部分。