在读取空数据集的作业中,我希望它不会因错误而中止作业,而是继续执行下一个计划作业。有关如何做到这一点的任何建议?
答案 0 :(得分: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;
请注意,如果数据集不存在或为空,则不会提交此后的代码。
答案 1 :(得分:1)
由于您正在讨论预定作业,这意味着您已使用DI Studio部署了多个作业以进行计划,并将您需要作为作业流运行的所有已部署作业添加到SAS Management Console中的JobFlow - > Schedule Manager插件。
如果是这种情况,则连接计划管理器插件中的作业 - >计划流将弹出条件触发下一个di工作流程。无论条件如何,您都可以设置条件以触发下一个作业。
希望这有帮助。