Библиотека макросов Sas Autocall не работает

До недавнего времени я использовал библиотеку макросов для поиска и компиляции кодов макросов, когда SAS не может загрузить макрос.

Код, который я использую:

options mautosource sasautos=MacLib;
filename MacLib "C:\Users\your.name.here\Documents\Macro_Library";

Мой макрос сохраняется в указанном выше пути к файлу как MacroOne.Sas, и я пытаюсь запустить команду в SAS.

%MacroOne;

По какой-то причине он больше не компилируется, чем помочь?


person 78282219    schedule 23.03.2018    source источник
comment
В Windows то, что у вас есть, должно работать - я не могу воспроизвести проблему. Убедитесь, что файл находится в расположении. Откройте файл, запустите его, а затем проверьте вызов макроса.   -  person DomPazz    schedule 23.03.2018
comment
Это неправильно, вот и все   -  person 78282219    schedule 23.03.2018
comment
Нет, он работает так, как у него на моей системе. Поиск макроса происходит во время вызова, а не во время оператора options. Поэтому, если имя файла задано до вызова макроса, он будет работать.   -  person DomPazz    schedule 26.03.2018


Ответы (1)


Это было неправильно

filename MacLib "C:\Users\your.name.here\Documents\Macro_Library";
options mautosource sasautos=MacLib;
person 78282219    schedule 23.03.2018
comment
@Joe Вы используете FILENAME для указания на текстовые файлы. LIBNAME предназначена для указания на объекты SAS, такие как наборы данных и каталоги. Для библиотеки автовызова вам нужно имя файла, указывающее на совокупное хранилище, также известное как каталог, чтобы исходный код для каждого макроса содержался в отдельном текстовом файле. Операторы LIBNAME также могут указывать на отдельные файлы, в зависимости от используемого движка. как двигатели XPORT или XLSX. - person Tom; 23.03.2018
comment
@Tom А, я неправильно прочитал документацию - спасибо, что поправили меня. Примечание для SAS: library-specification, возможно, здесь не лучший язык... - person Joe; 23.03.2018
comment
Поиск осуществляется во время первого звонка. Порядок не имеет значения, если оба указаны до использования макроса. - person DomPazz; 26.03.2018