在SAS Data Intergration中,创建用户编写的转换以跳过进一步的作业执行,而在某些条件为真时不会出错

时间:2016-01-07 19:18:47

标签: sas sas-macro sas-dis

我想创建一个用户编写的转换,以便在某些条件为真时跳过进一步的作业执行。 我试过了代码

        %abort;
        %abort cancel;

但是这些语句会产生错误,比如因为%abort语句而停止处理。 我不希望显示错误消息,只是跳过剩余的作业执行。例如如果我的源表没有任何观察结果,则在不记录错误消息或警告的情况下退出作业。

1 个答案:

答案 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命令 - 这可能是你要找的部分。