2015-05-22 61 views

回答

3

如果你第一次運行該代碼,檢查數據集和大於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

我正在考慮使用像anyobs一樣的宏。我對此非常感興趣,所以感謝您花時間回答! – Daphne

+0

OK @Daphne,我添加了> 0個觀察值的檢查,所以現在應該退出,如果數據集不存在或觀察值的數量是0. –

+1

這是一個很好的答案,並將在我的工具箱! – DomPazz

1

由於您正在討論計劃作業,這意味着您已經使用DI Studio部署了超過1份作業作爲調度目的,並將需要作爲作業流運行的所有部署作業添加到SAS Management Console中的JobFlow - >計劃管理器插件。

如果是這種情況,則在計劃管理器插件 - >計劃流程中連接作業將彈出條件以觸發下一個di studio作業流程。無論條件如何,您都可以設置條件觸發下一個工作。

希望這會有所幫助。