SAS Data integration Studio 4.6空数据集

SAS Data integration Studio 4.6空数据集,sas,sas-dis,Sas,Sas Dis,在一个作业中,当它读取一个空数据集时,我希望它不要因为错误而中止该作业,而是转到下一个计划作业。有没有关于如何做到这一点的建议 如果您先运行此代码,以检查数据集是否存在以及观察值是否超过0,SAS将以errorlevel 0退出,您的计划程序应继续: %let endsas=; data _null_; if not exist("sashelp.class2") then call symputx("endsas","endsas"); run; &endsas; /*Since

在一个作业中,当它读取一个空数据集时,我希望它不要因为错误而中止该作业,而是转到下一个计划作业。有没有关于如何做到这一点的建议

如果您先运行此代码,以检查数据集是否存在以及观察值是否超过0,SAS将以errorlevel 0退出,您的计划程序应继续:

%let endsas=;
data _null_;
  if not exist("sashelp.class2") then call symputx("endsas","endsas");
run;
&endsas;
/*Since we are here, the dataset exists, continue to check for 0 obs:*/
%let endsas=endsas;
data _null_;
  set sashelp.class2;
  call symputx("endsas","");*if not 0 obs, this will be executed;
  stop;*Stop, because we only need to run 1 obs;
run;
&endsas;

请注意,如果数据集不存在或为空,则在此之后不会提交任何代码。

如果先运行此代码,要检查数据集是否存在以及观察值是否超过0,SAS将以错误级别0退出,并且您的计划程序应继续:

%let endsas=;
data _null_;
  if not exist("sashelp.class2") then call symputx("endsas","endsas");
run;
&endsas;
/*Since we are here, the dataset exists, continue to check for 0 obs:*/
%let endsas=endsas;
data _null_;
  set sashelp.class2;
  call symputx("endsas","");*if not 0 obs, this will be executed;
  stop;*Stop, because we only need to run 1 obs;
run;
&endsas;

请注意,如果数据集不存在或为空,则在此之后不会提交任何代码。

因为您谈论的是计划作业,这意味着您已使用DI Studio部署了多个作业用于计划,并在SAS管理控制台->计划中将需要作为作业流运行的所有已部署作业添加到作业流中管理器插件

如果是这种情况,那么在ScheduleManager插件->schedule flow中连接作业将弹出触发下一个di studio作业流的条件。您可以设置条件以触发下一个作业,而不考虑条件


希望这对您有所帮助。

因为您谈论的是计划作业,这意味着您已经使用DI Studio部署了多个作业用于计划,并在SAS管理控制台->计划管理器插件中将需要作为作业流运行的所有已部署作业添加到作业流中

如果是这种情况,那么在ScheduleManager插件->schedule flow中连接作业将弹出触发下一个di studio作业流的条件。您可以设置条件以触发下一个作业,而不考虑条件


希望这有帮助。

我正在考虑使用像anyobs这样的宏。我对这一点非常陌生,因此感谢您抽出时间回答!好的@Daphne,我添加了检查>0个观察值,所以现在如果数据集不存在或观察值的数量为0,它应该退出。这是一个很好的答案,并将进入我的工具箱!谢谢你的帮助!不幸的是,代码触发了一些其他错误,因此我尝试了以下方法:我计算了观察值,将它们放入一个变量中,我想实现一个if语句,if observations=0将终止作业。我如何做if以终止工作?使用%goto?首先需要检查数据集是否存在,然后需要检查是否有0个观测值。我的建议产生了什么样的错误?我正在考虑使用像anyobs这样的宏。我对这一点非常陌生,因此感谢您抽出时间回答!好的@Daphne,我添加了检查>0个观察值,所以现在如果数据集不存在或观察值的数量为0,它应该退出。这是一个很好的答案,并将进入我的工具箱!谢谢你的帮助!不幸的是,代码触发了一些其他错误,因此我尝试了以下方法:我计算了观察值,将它们放入一个变量中,我想实现一个if语句,if observations=0将终止作业。我如何做if以终止工作?使用%goto?首先需要检查数据集是否存在,然后需要检查是否有0个观测值。我的建议产生了什么样的错误?