GENERICシステムオプション
GENERIC システムオプションをご存知ですか。
SAS Communityの回答で教えてもらったのですが、undocumentedな感じで詳細がわからないので試してみました。
通常のシステムオプションはproc optionsで中身を確認することができます。
試しに、mprintの値を表示してみます。(コードは上2行です)
ところが、genericに対しては、エラーが出力されます。
でも、以下はちゃんと動くんですよ。
proc options generic; proc options nogeneric;
さて、肝心のgenericオプションの効果ですが、「環境依存の情報をログに出力しない」という効果のようです。
以下は起動時に指定した場合ですが、左右のログを見比べると一目瞭然。バージョンやSite、環境を表す情報がごっそり削られています。Host Testingという文字から、若干デバッグ用、という気もしないでもないです。
また、以下のコードをサブミットしてみます。
libname a 'c:\temp\x'; libname b "%sysfunc(sysget(userprofile))\Pictures"; filename x 'c:\temp\temp.txt'; filename y "%sysfunc(sysget(userprofile))\\Pictures\tmp.txt"; filename z temp; data _null_; set sashelp.class; where age<15; file x; file y; file z; run; data 'c:\temp\x\abc'; set sashelp.class; run;
赤枠が情報が置き換わったもの、緑枠は削除されたものです
物理名が尽く置き換わっています。
環境依存だけじゃなく、物理名も一般化しているような感じですね。
また、setステートメントで表示される読み込み情報も削除されているのが面白いです。
whereステートメントも削られていますね。
SASのバージョンやプロダクトバージョンあたりはあってもいいかな、という気もしますが、これはgitでの管理に最適なのでは…???
(ログが短くなることで差分をうまく検出できなくなる可能性は否めませんが、ソースがしっかり出力されていれば問題ないかと)