BookmarkSubscribeRSS Feed
SAS Enterprise GuideでSASカタログとフォーマットを参照する
sakura_sas
SAS Employee

--------------------------------------------------------------------------------------------------------------------------------------

※このブログは、Chris Hemedinger によるブログ『The SAS Dummy』の記事を翻訳したものです。

 原文は以下URLよりお読みいただけます。

 https://blogs.sas.com/content/sasdummy/2017/08/04/sas-eg-formats-catalog/

--------------------------------------------------------------------------------------------------------------------------------------

 

何年か前、SAS Enterprise GuideでSASカタログを参照し、管理するためのカスタムタスクについて情報共有しました。念のため確認しますと、SASカタログとは特別なタイプのSASファイルで、カタログエントリと呼ばれる様々なコンテンツ項目のためのコンテナやフォルダのような役割をするものです。概念的には、ファイルシステム内のフォルダのようなもので、そこには様々なファイルタイプのものが収められています。そのエントリとその用途はSAS固有のものであり、SOURCE(プログラムコード)、SCL(SAS Component Language)プログラム、SASフォーマット定義、コンパイル済みのSASマクロプログラムなどが含まれます。

 

明らかな例外であるSASフォーマット定義を除いて、カタログエントリの多くは、SAS Enterprise Guideのユーザーの皆様にとって、あまり関心がないものかもしれません。先ほどのカスタムタスクのブログを投稿したその日から、SASフォーマット定義の内容を確認する機能について読者の皆様からお問い合わせをいただいていました。私は、「素晴らしいアイディアです!私のTo-Doリストに追加します。」と、返信をしていました。あれから7年が経ち、ついに完了しました。私は、約束を守りました。

 

>> タスクをここからダウンロードZIPファイル。手順を説明したREADMEファイルを含む。

 

READMEに記載している手順に十分注意して、正しいバージョンを配置し、必要に応じてタスクDLLのブロックを解除してください。

 

さらに良いニュースがあります。このタスクは、ビルドインタスク(ツールメニューから利用可能)として、もうすぐリリースされる次期バージョンのSAS Enterprise Guideでの提供が予定されています。カスタムタスクのダウンロードは、SAS Enterprise Guide バージョン 4.3 から 7.13をサポート予定です。より新しいバージョンでは、すでにこのタスクが利用可能になります。

 

2017104日更新このタスクは、SAS Enterprise Guide バージョン7.15に組み込まれて、出荷されています!開発チームの皆さん、追加していただいて大変感謝しています。バージョン7.15以降に更新をした方は、タスクのダウンロード/インストールを実行する必要はありません。[ツール]メニューにこのタスクがあるはずです。

 

 

カタログおよび出力形式のエクスプローラの主な機能

 

私が共有したオリジナルのタスクと同様に、この改訂版のタスクはSASライブラリとそこに含まれるカタログを探索することを可能にします。すべてのカタログエントリのメタデータ(名前、タイプ、説明、作成日と変更日)を参照できます。クリーンアップが必要なエントリを削除することもできます。また、特定のタイプのエントリ、主にSOURCEエントリ、およびフォーマットエントリタイプのコンテンツを参照できます。

こちらが、主な拡張点です。

  • FORMATFORMATCINFMTINFMTCエントリのコンテンツを参照できます。
  • ウィンドウは「モードレス」で表示されます。そのため、他のタスク例えばSASプログラムなどを実行中であっても、表示し続けることができます。コードでフォーマットを定義して実行し、続けてタスクで[更新]をクリックして確認ができます。
  • [ユーザー定義フォーマット]の特別なエントリをご確認いただけると思います。これは、FMTSEARCHパスで定義されたフォーマットが含まれるカタログのみを表示するものです。任意のライブラリをナビゲートして、フォーマットが含まれるカタログを検索することができます。

こちらは、タスクのスクリーンショットです。また、SASサポートコミュニティにあるこのタスクの5分間のデモビデオもご確認いただけます。

 

catexp.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

開発者の方へ:このタスクの構築方法

 

オリジナルのタスクは私のカスタムタスクの本に付随する活用例として共有していたため、これらの拡張機能に関するソースコードも共有しました。オリジナルのバージョンを含む同じGitHubリポジトリにて、これらのコードをご確認いただけます。これらの拡張機能を追加すると、既に私のブログで共有している他のテクニックが使用されます。

フォーマット定義のテキストレポートを生成する際、タスクはSELECTステートメントを含むPROC FORMATステップを実行します。

こちらがその例です:

filename fmtout temp;  
%let _catexp1 = %sysfunc(getoption(center));  
%let _catexp2 = %sysfunc(getoption(date));  
%let _catexp3 = %sysfunc(getoption(number));  
%let _catexp4 = %sysfunc(getoption(pagesize));  
options nocenter nodate nonumber pagesize=max;  
ods listing file=fmtout; 
proc format fmtlib lib=dbmlnx.formats; 
 select ab; 
run; 
ods listing close; 
options &_catexp1. &_catexp2. &_catexp3. PS=&_catexp4.;

 

リストしたファイルが生成される際、タスクはWindows PowerShellの例に類似したコードを使用して、出力のコンテンツをダウンロードします。このSASコードがいくつかシステムオプションを設定することにお気づきになるかもしれませんが、オプションの値を保存して後のステップで置き換えているため、他のプログラムが影響を受けることはありません。

 

いろいろやってみるのがお好きな方は、ソースコードをダウンロードしてどのように動作するのか、ご自由にお試しください。SAS Enterprise Guideのカスタムタスクについてもっと知りたい方は、オンデマンドで利用可能なAsk the Expert のセッションをご参照ください。

 

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags

SAS Support Communitiesのユーザーガイドライン


コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。

詳細を読む

 

SAS Support CommunitiesのFAQ


SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。

詳細を読む

 

質問や意見の投稿と返信方法について


Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。

詳細を読む