Макропеременные в шаблоне электронной почты в SAS? - PullRequest
0 голосов
/ 29 марта 2012

У меня есть следующий код:

%let host = HostThatSendsEmail;
%let todayDate = &SYSDATE9;
signon host;
rsubmit;


filename mail email to =    ("PersonGettingEmail")
        from=   "PersonSendingEmail"
        SUBJECT="Today is &todayDate";

data _null_;
    file mail;
    put 'Dear All';
    put 'Today is &todayDate';
run;

endrsubmit;

Дата макроса не вводится в электронное письмо при запуске кода. Полученное электронное письмо должно гласить:

Дорогие все Сегодня 29 марта.

Вместо этого он читает:

Дорогие все Today & TodayDate

Есть какой-то фрагмент кода, который мне не хватает?

Ответы [ 2 ]

5 голосов
/ 29 марта 2012

Попробуйте двойные кавычки в шаге данных.Макропеременные не разрешаются в одинарных кавычках.

2 голосов
/ 29 марта 2012

Вы создали макрос локально ... но затем вы вошли на удаленный хост.Ваш удаленный сеанс SAS не знает о макросе на локальном хосте.

Использование % SYSLPUT является одним из способов решения этой проблемы (Другая ссылка) .

Поместите этот код между SIGNON и RSUBMIT

 %SYSLPUT TODAYDATE = &todayDate;

Если на удаленном хосте было большое количество макропеременных, которые вы хотели получить.Вы можете записать их в набор данных и использовать PROC UPLOAD для перемещения набора данных на удаленный хост.

...