前のページ|次のページ

自動呼び出しライブラリへのマクロの保存

自動呼び出しライブラリの概要

通常、自動呼び出しライブラリは、個別のファイルを含むディレクトリです。それぞれのファイルには、1つのマクロ定義が保存されます。SAS 6.11からは、自動呼び出しライブラリをSASカタログにすることもできるようになりました。(SASカタログを自動呼び出しライブラリとして使用する場合の詳細については、次のセクションを参照してください。)
動作環境の情報: さまざまなホスト上の自動呼び出しライブラリディレクトリという用語は、ホストオペレーティングシステムによって管理されるファイル(またはメンバ)の集合的な保存場所のことを指します。さまざまなホストオペレーティングシステムは、さまざまな名前(ディレクトリ名、サブディレクトリ名、マクロライブラリ名、テキストライブラリ名、区分データセット名など)を使用して集合的な保存場所を識別します。詳細については、使用しているオペレーティングシステムに関するSASドキュメントを参照してください。

ディレクトリを自動呼び出しライブラリとして使用する

ディレクトリをSAS自動呼び出しライブラリとして使用するには、次の手順を実行します。
  1. ライブラリメンバを作成するために、各マクロのソースコードを、ディレクトリ内の個別のファイルに保存します。ファイルの名前は、マクロ名と同じにする必要があります。たとえば、%SPLITをサブミットすることで呼び出されるマクロを定義するステートメントは、SPLITというファイル名で保存する必要があります。
    動作環境の情報: 自動呼び出しライブラリのメンバ名拡張子付きのファイル名を使用できるオペレーティングシステムの場合、自動呼び出しマクロライブラリのメンバには、特殊な拡張子(通常は*.SAS)付きの名前を付ける必要があります。システムにあるSASが提供した自動呼び出しマクロを調べて、対象のサイトで、マクロを保存したファイルの名前に特殊な拡張子を付ける必要があるかどうかを確認してください。z/OSオペレーティングシステムの場合、マクロ名を、PDSメンバの名前として割り当てる必要があります。
  2. SASAUTOSシステムオプションを設定して、ディレクトリを自動呼び出しライブラリとして指定します。ほとんどのホストでは、起動時に、予約済みのファイル参照名SASAUTOSが、SASから提供された自動呼び出しライブラリ、またはサイトで指定した別の自動呼び出しライブラリに割り当てられます。1つ以上の自動呼び出しライブラリを指定する場合、それらのライブラリのマクロをすべて使用できるようにするために、SASが提供した自動呼び出しライブラリとサイトで指定した自動呼び出しライブラリを必ず連結してください。詳細については、使用しているホストのドキュメントおよび SASAUTOS=システムオプションを参照してください。
自動呼び出しライブラリにファイルを保存する場合、次の点に注意してください。
  • 自動呼び出しライブラリに配置するファイルの種類に制限はありません。しかし、混乱を避け、管理を容易にするために、自動呼び出しライブラリファイルのみを保存するようにしてください。
  • 自動呼び出しライブラリのメンバには、複数のマクロ定義に加えて、オープンコードを含めることもできます。通常は、どの自動呼び出しライブラリのメンバも1つのマクロのみを含むようにしてください。複数のマクロを同じマクロライブラリのメンバに含める必要がある場合、関連するマクロを一緒に含めます。

SASカタログを自動呼び出しライブラリとして使用する

SAS 6.11以降、CATALOGアクセスメソッドを使用して、自動呼び出しマクロをSASカタログのSOURCEエントリとして格納できるようになりました。SASカタログを使用して自動呼び出しライブラリを作成するには、次の手順に従います。
  1. LIBNAMEステートメントを使用して、ライブラリ参照名をSASライブラリに割り当てます。
  2. CATALOG引数を付けてFILENAMEステートメントを使用し、自動呼び出しマクロを格納するカタログにファイル参照名を割り当てます。たとえば、次のコードは、MYMACS.MYAUTOSという名前のカタログを指すファイル参照名MYMACROSを作成しています。
    libname mymacs 'SAS-library';
    filename mymacros catalog 'mymacs.myautos';
  3. 各マクロのソースコードを、SASカタログ内のSOURCEエントリに格納します。(SOURCEはエントリタイプです。)SOURCEエントリの名前は、マクロ名と同じにする必要があります。
  4. SASAUTOSシステムオプションを設定して、ファイル参照名を自動呼び出しライブラリとして指定します。詳細については、SASAUTOS=システムオプションを参照してください。

自動呼び出しマクロの呼び出し

自動呼び出しマクロを呼び出すには、システムオプションMAUTOSOURCEを設定し、SASAUTOSに値を割り当てる必要があります。MAUTOSOURCEによって自動呼び出し機能を有効にし、SASAUTOSによって自動呼び出しライブラリを指定します。詳細については、MAUTOSOURCEシステムオプションおよびSASAUTOS=システムオプションを参照してください。
必要なオプションが設定されていれば、自動呼び出しマクロの呼び出しは、現在のセッション中に作成したマクロの呼び出しと同様です。ただし、呼び出すマクロをマクロプロセッサがどのように検索するかについて、理解しておくことが重要です。マクロを呼び出すと、マクロプロセッサは次のタスクを実行します。
  • セッション中にコンパイルされたマクロ定義を検索します。
  • MSTOREDオプションが設定されている場合、SASMSTOREオプションで指定されたライブラリ内のコンパイル済みマクロ定義を検索します。
  • MAUTOSOURCEオプションが設定されている場合、SASAUTOSオプションで指定された自動呼び出しライブラリ内のメンバを指定された順序で検索します。
  • SAS製品のコンパイル済みマクロ定義を、SASHELPライブラリから検索します。
自動呼び出しライブラリ内で対象のマクロ名を持つライブラリメンバが見つかると、マクロプロセッサは次を実行します。
  • そのメンバ内のあらゆるマクロ定義を含むすべてのソースステートメントをコンパイルし、その結果をセッションカタログに格納します。
  • そのメンバにオープンコード(どのマクロ定義にも含まれないマクロステートメントまたはSASソースステートメント)があれば、それを実行します。
  • 呼び出した名前の付いたマクロを実行します。
注: 自動呼び出しライブラリのメンバに複数のマクロが含まれている場合、マクロプロセッサはすべてのマクロをコンパイルしますが、実行されるのは呼び出した名前の付いたマクロのみです。
マクロと同じ自動呼び出しライブラリのメンバにオープンコードステートメントが含まれている場合、それらのステートメントは、マクロを最初に呼び出したときにのみ実行されます。その後、同じセッション内でマクロを呼び出すとコンパイル済みマクロが実行されますが、それにはコンパイル済みマクロ定義のみが含まれ、自動呼び出しマクロのソースファイルに含まれていた他のコードは含まれていません。
SASセッション中にSASAUTOSを変更することは推奨されません。実行中のSASセッションでSASAUTOS=指定を変更した場合、未コンパイルの自動呼び出しマクロが呼び出されるまで、新しい指定は格納されません。そして、開かれていたすべてのライブラリが閉じられ、新たに指定した開くことのできるすべてのライブラリが開かれます。
自動呼び出しマクロのデバッグの詳細については、マクロ機能のエラーメッセージとデバッグを参照してください。
前のページ|次のページ|ページの先頭へ