BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
MK013
Fluorite | Level 6

SAS Enterprise Guide 7.1を使用していますが、ユーザ定義フォーマットを適用した状態でデータセットを参照することができません。ユーザガイドやWebで調べてみましたが、見つかりませんでした。もし可能であれば、やり方を教えていただけないでしょうか。よろしくお願い致します。

1 ACCEPTED SOLUTION

Accepted Solutions
MK013
Fluorite | Level 6

原因が分かりました。

データセットとカタログがSJISで作成されたものであり、参照時の環境がGridのUnicode環境だったためにカタログが無視されていたようです。ローカルのEGでは出ますが、SAS GridのEGではエラーも警告も出ないので注意が必要です。

また、libname libraryはEGでは無効ですが、options fmtsearchは有効でした。

View solution in original post

7 REPLIES 7
tsukune
SAS Employee
こんにちは。

仮に、SAS Application ServerがSASAppと名前で、フォーマットカタログがformats.sas7bcatというファイル名前であれば、formats.sas7bcatを、
<SAS-config-dir>/Lev1/SASApp/SASEnvironment/SASFormats 配下のコピーすることで意図した結果になります。

その他の詳細に関しては、以下SAS-NOTEをご覧ください。
https://support.sas.com/kb/40/103.html
MK013
Fluorite | Level 6

ご回答ありがとうございます。

SAS-NOTE読みましたが、やりたいことを実現できるのか、よくわかりませんでした。(SAS Application Server という概念がそもそも不明)

 

わたし自身はSAS9.4を使用しているプログラマですが、データ受領相手はプログラマではなく、EG 7.1しか持っていません。

わたしから送付する一連のデータセットには必ずユーザ定義フォーマットカタログを定義しており、それが何種類もあります。

フォルダAにはデータセットA1~A10とそれらに対するカタログ、フォルダBにはデータセットB1~5とそれらに対するカタログ、といった形です。

 

ConfigやユーザのSAS環境にファイルをコピーさせるなどの対応をすることなく、ローカルディスク上にあるA1データセットをEGで単に参照しただけのとき、同じフォルダにあるカタログを適用させて表示し、B1のときも同様にカタログを切り替えたいのですが、手段はありますでしょうか。

yu_sas
SAS Employee

以下のようにフォーマットカタログのあるライブラリをFMTSEARCHオプションに追加してからデータセットを参照すればSAS Enterprise Guideであっても適用した状態で表示可能だと思います。ただSASのbit数やOSは二つの環境で同一である必要があります。

環境が違う場合、ユーザ定義出力形式の作成するプログラムを共有することも一案かなと思います。

 

libname test1 "xxx";
libname test2 "yyy"; options insert=(fmtsearch=(test1 test2));
MK013
Fluorite | Level 6

libname libraryでライブラリを切っても、fmtsearchで指定をしてもいずれも無効でした。

yu_sas
SAS Employee

ツール → カタログと出力形式のエクスプローラ → ユーザー定義の出力形式をクリックした時、検索場所に意図したライブラリが表示されているか、また一覧に該当の出力形式が表示されているか確認してみてください。表示されていない場合、ライブラリの設定が誤っていると思われます。

 

また、以下のプログラムを実行し出力形式が参照できない場合にエラーとなるよう変更すると、エラーは発生するでしょうか。エラーとならない場合、出力形式が変数に割り当てられていないと思われます。戻す場合NOFMTERRに変更し実行ください。

 

options fmterr;
MK013
Fluorite | Level 6

原因が分かりました。

データセットとカタログがSJISで作成されたものであり、参照時の環境がGridのUnicode環境だったためにカタログが無視されていたようです。ローカルのEGでは出ますが、SAS GridのEGではエラーも警告も出ないので注意が必要です。

また、libname libraryはEGでは無効ですが、options fmtsearchは有効でした。

MK013
Fluorite | Level 6
お返事いただいた方々、ありがとうございました。

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

Discussion stats
  • 7 replies
  • 1876 views
  • 7 likes
  • 3 in conversation