1

在读取空数据集的作业中,我希望它不会因错误而中止作业,而是继续执行下一个计划作业。关于如何做到这一点的任何建议?

4

2 回答 2

3

如果您首先运行此代码,以检查数据集的存在和超过 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;

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

于 2015-05-22T11:30:26.700 回答
1

由于您在谈论计划作业,这意味着您已经使用 DI Studio 部署了多个作业以用于计划目的,并将您需要作为作业流运行的所有已部署作业添加到 SAS Management Console -> Schedule Manager Plugin 中的 JobFlow。

如果是这种情况,那么在调度管理器插件 -> 调度流中连接作业将弹出触发下一个 di studio 作业流的条件。无论条件如何,您都可以设置条件以触发下一个作业。

希望这可以帮助。

于 2015-06-11T07:06:46.167 回答