2019年10月16日水曜日

マクロの実行を中止する「%RETURNステートメント」




  • %RETURNステートメント」でマクロの実行を中止します。
  • 「%RETURN」が書かれたとこから中止される。
  • 「親マクロ」の中に「子マクロ」を入れたネスト構造のマクロで、「子マクロ」の中のみに%RETURNを指定した場合は「子マクロ」のみ中止される。




私はよく以下のような感じで使ってます。



%macro test( in_ds=, out_ds= );
 
    * 引数チェック ;
    %if %sysfunc( exist( &in_ds ) ) = 0 %then %do;
         %put WARNING: データセット &in_ds が存在しません. マクロTESTを中止します;
         %return;
    %end;

    * 引数チェックをクリアしたあとの処理 ;  
    data &out_ds;
        set &in_ds;
    run;

%mend;
%test( in_ds=work.aaa, out_ds=bbb )


ログ




最初にマクロの引数がちゃんと正しく設定されてるか確認して、正しくない場合、

  • WARNINGとかのメッセージを出して、
  • %RETURNでマクロを中止させる。

みたいな流れです。


0 件のコメント:

コメントを投稿