SAS Enterprise Guide 7.1を使用していますが、ユーザ定義フォーマットを適用した状態でデータセットを参照することができません。ユーザガイドやWebで調べてみましたが、見つかりませんでした。もし可能であれば、やり方を教えていただけないでしょうか。よろしくお願い致します。
原因が分かりました。
データセットとカタログがSJISで作成されたものであり、参照時の環境がGridのUnicode環境だったためにカタログが無視されていたようです。ローカルのEGでは出ますが、SAS GridのEGではエラーも警告も出ないので注意が必要です。
また、libname libraryはEGでは無効ですが、options fmtsearchは有効でした。
ご回答ありがとうございます。
SAS-NOTE読みましたが、やりたいことを実現できるのか、よくわかりませんでした。(SAS Application Server という概念がそもそも不明)
わたし自身はSAS9.4を使用しているプログラマですが、データ受領相手はプログラマではなく、EG 7.1しか持っていません。
わたしから送付する一連のデータセットには必ずユーザ定義フォーマットカタログを定義しており、それが何種類もあります。
フォルダAにはデータセットA1~A10とそれらに対するカタログ、フォルダBにはデータセットB1~5とそれらに対するカタログ、といった形です。
ConfigやユーザのSAS環境にファイルをコピーさせるなどの対応をすることなく、ローカルディスク上にあるA1データセットをEGで単に参照しただけのとき、同じフォルダにあるカタログを適用させて表示し、B1のときも同様にカタログを切り替えたいのですが、手段はありますでしょうか。
以下のようにフォーマットカタログのあるライブラリをFMTSEARCHオプションに追加してからデータセットを参照すればSAS Enterprise Guideであっても適用した状態で表示可能だと思います。ただSASのbit数やOSは二つの環境で同一である必要があります。
環境が違う場合、ユーザ定義出力形式の作成するプログラムを共有することも一案かなと思います。
libname test1 "xxx";
libname test2 "yyy";
options insert=(fmtsearch=(test1 test2));
libname libraryでライブラリを切っても、fmtsearchで指定をしてもいずれも無効でした。
ツール → カタログと出力形式のエクスプローラ → ユーザー定義の出力形式をクリックした時、検索場所に意図したライブラリが表示されているか、また一覧に該当の出力形式が表示されているか確認してみてください。表示されていない場合、ライブラリの設定が誤っていると思われます。
また、以下のプログラムを実行し出力形式が参照できない場合にエラーとなるよう変更すると、エラーは発生するでしょうか。エラーとならない場合、出力形式が変数に割り当てられていないと思われます。戻す場合NOFMTERRに変更し実行ください。
options fmterr;
原因が分かりました。
データセットとカタログがSJISで作成されたものであり、参照時の環境がGridのUnicode環境だったためにカタログが無視されていたようです。ローカルのEGでは出ますが、SAS GridのEGではエラーも警告も出ないので注意が必要です。
また、libname libraryはEGでは無効ですが、options fmtsearchは有効でした。
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!