如何集成SAS代码来自动发送电子邮件?

问题描述 投票:0回答:1

我有两个 SAS 代码 1 和 2,我想合并这两个代码以从 SAS 发送自动电子邮件,我想替换第二个代码的 put (PUT "Code1???????????? ??????”)首先,我不知道该怎么做,你能帮助我吗?

/**********Code1********/
%macro Controle_QDD (Branche);
data SITMVT&Branche.;
    set Stock&Branche.;
    merge Stock&Branche. (in=A) Base&Branche. (in=B);
    by  &Varlist.
    ;

    if A and not B;
run;
 proc sql noprint;
        select count(*) as NB&Branche.
        from SITMVT&Branche.;
    quit;
    %if NB&Branche. > 0  %then
        %put Le contrôle QDD est OK pour SITMVT&Branche. ;
    %else
        %put Le contrôle est KO pour SITMVT&Branche. Je vous invite à vérifier les résultats en exécutant le code  ;

%mend;
%Controle_QDD(B);
%Controle_QDD(L);

/******Code2********/
filename mymail email FROM= "XXX"
TO=(
"XXX"

)
Cc=("XXX"

)
        TYPE="text/html"
        CONTENT_TYPE="text/html";
DATA _null_;
    FILE mymail
         SUBJECT="Controle QDD ";
    
    PUT 'Bonjour,';
    PUT '<br>';
    PUT '<br>';
    PUT '<br>';

    PUT "Code1???????????????? "; /**** replace by  Code 1 ????****/

    PUT '<br>';
    PUT 'Pour avis :-)';
    PUT '<br>';
    PUT '<br>';
    PUT '<i>Note: ce mail est généré automatiquement, merci de ne pas y répondre.</i> ';
    PUT '<br>';
    PUT '<Cordialement,>';
RUN;

```---------------------------------
sas sas-macro
1个回答
0
投票

您的“代码 1”将无法正常工作。看起来您正在尝试在 SQL 步骤中创建一个名为 NB&Branche 的宏变量,但您现有的代码只是创建一个临时 SQL 变量。你需要:

proc sql noprint;
  select count(*) into :NB&Branche from SITMVT&Branche;
quit;

将值存储到宏变量中。然后,您的以下宏 IF 语句需要像这样解析该宏变量的值(请注意开头的额外 && ):

%if &&NB&Branche > 0  %then
  %put Le contrôle QDD est OK pour SITMVT&Branche. ;
%else
  %put Le contrôle est KO pour SITMVT&Branche. Je vous invite à vérifier les résultats en exécutant le code  ;

您基本上可以在“代码 2”中重复该部分:

PUT '<br>';

%let branche = B;
%if &&NB&Branche > 0  %then
   PUT "Le contrôle QDD est OK pour SITMVT&Branche.";
%else
   PUT "Le contrôle est KO pour SITMVT&Branche. Je vous invite à vérifier les résultats en exécutant le code";

%let branche = L;
%if &&NB&Branche > 0  %then
   PUT "Le contrôle QDD est OK pour SITMVT&Branche.";
%else
   PUT "Le contrôle est KO pour SITMVT&Branche. Je vous invite à vérifier les résultats en exécutant le code";

PUT '<br>';
PUT 'Pour avis :-)';

有条件地将一条消息或另一条消息添加到您的电子邮件中。整个事情可以变得更加简洁 - 例如,您可以在“代码 1”期间将每个“分支”所需的消息保存到宏变量中 - 但这应该足以让它工作......

好机会!

© www.soinside.com 2019 - 2024. All rights reserved.