DATAステップの実行結果の採取

[OS]ALL
[リリース] 6.07, 6.08, 6.09, 6.10
[キーワード] af, scl, submit, block, datastep, proc, error, macro, variable, syserr, symget symgetc

[質問]

SAS/AFのSUBMITブロック中で実行したDATAステップなどが、正常終了したかどうかを知る方法はありますか。

[回答]

DATAステップなどの実行結果は、自動マクロ変数 SYSERRで調べられます。 実行したステップにエラーやワーニングがあった場合、SYSERRの値は0以外になります。 スクリーンコントロール言語(SCL)では、マクロ変数の値はSYMGETルーチンで参照できます。

SASデータセットWORK.TESTが作成できなかった場合に、エラーメッセージを表示するプログラム例を示します。

main:
    submit continue;
      data work.test;
        set work.root;
      run;
    endsubmit;
    if symgetc('syserr') ne '0' then
      _msg_=' ERROR: File can not create. ';
  return;