在SAS数据集成中,当某些条件为真时,创建用户编写的转换以跳过进一步的作业执行而不给出错误

在SAS数据集成中,当某些条件为真时,创建用户编写的转换以跳过进一步的作业执行而不给出错误,sas,sas-macro,sas-dis,Sas,Sas Macro,Sas Dis,我想创建一个用户编写的转换,在某些条件为真时跳过进一步的作业执行。 我已经试过密码了 %abort; %abort cancel; 但这些语句给出了错误,类似于由于%abort语句而停止处理。 我不希望显示错误消息,只需跳过剩余的作业执行。e、 g.如果我的源表没有观察值,那么在不记录错误消息或警告的情况下退出作业。Hmm,不确定这在SAS DI中是否有效(我没有测试它),但我们使用的是以下宏: %macro stop_sas; %if "&syse

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

        %abort;
        %abort cancel;
但这些语句给出了错误,类似于由于%abort语句而停止处理。
我不希望显示错误消息,只需跳过剩余的作业执行。e、 g.如果我的源表没有观察值,那么在不记录错误消息或警告的情况下退出作业。

Hmm,不确定这在SAS DI中是否有效(我没有测试它),但我们使用的是以下宏:

%macro stop_sas;
  %if "&sysenv" eq "FORE" %then %do;
    %abort cancel;
  %end;
  %else %do;
    endsas;
  %end;
%mend;
它基本上检查SAS是否作为批处理作业运行,如果是,则悄悄退出SAS。如果SAS在交互模式下运行,那么它将中止提交的代码,而不关闭IDE


这里的关键语句是
endsas
命令-这可能是您正在寻找的部分。

有没有直接跳转到邮政编码的方法,执行它并在用户编写的转换将条件评估为真时完成工作我不相信有这种方法。SAS的错误处理选项列表非常糟糕。请注意,上面的宏不适用于EG或SAS Studio。