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