根据条件发送电子邮件(SAS)

时间:2017-09-06 14:06:47

标签: email if-statement sas conditional

我在这个论坛中发现了以下代码(未触及),这与我正在寻找的内容非常接近,但在调整时遇到了一些问题;

data Millenium_Falcon;
han='1';
luke='0';
darth='0';
run;

filename myemail EMAIL
to="me@lando.com"
cc="me@lando.com"
from="me@lando.com"
subject="Millenium Falcon"
importance="HIGH"
;

data _null_;
set Millenium_Falcon ;
file myemail;
IF (Luke = '1' and Darth = '0') then do;
    put "Han,";
    put " ";
    put "Look out for the asteroids.";
    put " ";
    put "Thank you.";
    put " ";
    put "Obi";
end;
else do;
    put '!EM_ABORT!';
end;
stop;
run;

在调整之前,这段代码工作正常,但是当我尝试指向我的数据集(删除上面的Millennium_Falcon步骤)时,它只包含来自dictionary.tables(libname,memname,modate)的元数据,并将if语句更改为

IF (memname = 'TEST' and datepart(modate) = date()) then do; 

电子邮件不发送。这几乎就像数据步骤(下面)必须存在(像datalines一样)才能使它工作。

data Millenium_Falcon;
han='1';
luke='0';
darth='0';
run;

非常感谢任何帮助。

非常感谢

亚伦

1 个答案:

答案 0 :(得分:0)

你可能想要更像这样的东西,当没有记录符合标准时会中止,否则会生成一个值列表。

data _null_;
  file myemail;
  if _n_=1 and eof then put '!EM_ABORT!';
  set have end=eof ;
  where (memname = 'TEST' and datepart(modate) = date()) ;
  put memname= modate= ;
run;