Я обычно не включаю параметры электронной почты в сам шаг данных, а скорее в ссылку на файл. Я протестировал приведенный ниже код с моим адресом электронной почты, и он сработал.
Как я сказал в комментариях, вам просто нужно обернуть свой шаг данных в макрос, если вы хотите, чтобы он выполнялся внутри макроса.
У вас могут быть позиционные или ключевые параметры. См. этот источник а> для получения подробной информации. В этом примере я использовал параметры ключевого слова. вы вызываете макрос, указав ключевое слово, а затем значение, как я показал последнюю строку. Если вы ничего не ставите, то ключевое слово игнорируется.
Кстати, пустые ключевые слова приводят к инициализации локальных макропеременных. Операторы Let вроде (%LET FROM=FROM="&FROM") предназначены для добавления строки "FROM=" в начало макропеременной "FROM", чтобы синтаксис имени файла был завершен. Если переменная макроса, такая как «FROM», будет передана как есть, она будет разрешать адрес электронной почты, с которым имя файла не знает, что делать.
%MACRO send_email (TO=,FROM=,SUBJECT=,ATTACHMENT=,BODY=);
%IF &TO ne %THEN
%LET TO="&TO";
%IF &FROM ne %THEN
%LET FROM=FROM="&FROM";
%IF &SUBJECT ne %THEN
%LET SUBJECT=SUBJECT="&SUBJECT";
%IF &ATTACHMENT ne %THEN
%LET ATTACHMENT=ATTACHMENT="&ATTACHMENT";
%IF &BODY ne %THEN
%LET BODY="&BODY";
FILENAME outbox EMAIL &TO &FROM &SUBJECT &ATTACHMENT;
DATA _NULL_;
FILE outbox;
PUT &BODY;
RUN;
%MEND;
%send_email([email protected]);
person
Vasilij Nevlev
schedule
21.01.2016