SAS中的电子邮件模板中的宏变量?

时间:2012-03-29 15:43:51

标签: sas

我有以下代码:

%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;

运行代码时,宏日期不会输入到电子邮件中。生成的电子邮件应显示为:

亲爱的 今天是29Mar12。

相反它的内容是:

亲爱的 今天是& TodayDate

我缺少一些代码吗?

2 个答案:

答案 0 :(得分:5)

在数据步骤中尝试使用双引号。宏变量无法用单引号解析。

答案 1 :(得分:2)

您在本地创建了宏...但随后您登录了远程主机。您的SAS远程会话不了解本地主机上的宏。

使用%SYSLPUT是解决此问题的一种方法(Another link)

将此代码放在SIGNON和RSUBMIT之间

 %SYSLPUT TODAYDATE = &todayDate;

如果您希望远程主机上有大量宏变量。您可以将它们写入数据集并使用PROC UPLOAD将数据集移动到远程主机。