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

SAS中电子邮件模板中的宏变量?,sas,Sas,我有以下代码: %let host = HostThatSendsEmail; %let todayDate = &SYSDATE9; signon host; rsubmit; filename mail email to = ("PersonGettingEmail") from= "PersonSendingEmail" SUBJECT="Today is &todayDate"; data _null_; file

我有以下代码:

%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;
运行代码时,宏日期不会输入到电子邮件中。产生的电子邮件应为:

各位亲爱的 今天是三月二十九日

取而代之的是:

各位亲爱的 今天是&今天


是否缺少某些代码?

请尝试在数据步骤中使用双引号。宏变量将不会以单引号解析。

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

使用是解决这个问题的一种方法

将此代码放在登录和RSUBMIT之间

 %SYSLPUT TODAYDATE = &todayDate;

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

确实,您需要双引号来强制解析宏变量。如果将宏变量封装在%BQUOTE'&var'中,它们将在单引号内解析