2016-10-14 5 views
0

Я использую индекс, чтобы избежать дублирования каждый раз, когда набор данных обновляется и отправляет почту в соответствии с ее отказом и успехом. Ниже приведен код.Проверка обновления и отправка почты

data lib.new(index =(dual=(name date)/ unique)); 
set lib.old; 
run; 

options emailsys=smtp; 
%macro sendmail; 
%if &syserr ne 0 %then %do; 
data _null_; 
filename mailbox EMAIL '[email protected]' subject ='Failed'; 
file mailbox; 
put "Data already avaialable. Please submit for different"; 
run; %end; 
%else %do; data _null_; 
filename mailbox EMAIL '[email protected]' subject ='Success'; 
file mailbox; 
put "Data created"; run; %end; 
%mend sendmail; 
%sendmail; 

при работе над кодом. Я могу получать почту всякий раз, когда обновление данных имеет успех. Но когда я не получаю почту, когда она не работает

Есть ли другой способ сделать.

Для успеха. Я получаю ниже журнала с данными электронной почты и электронной почты.

SYMBOLGEN: Macro variable SYSERR resolves to 0 
MACROGEN(SENDMAIL): data _null_; 
MACROGEN(SENDMAIL): filename mailbox EMAIL '[email protected]' subject 'Success'; 
MACROGEN(SENDMAIL): file mailbox; 
MACROGEN(SENDMAIL): put "Data created"; 
MACROGEN(SENDMAIL): run; 

NOTE: The file MAILBOX is: 
    E-Mail Access Device 

Message sent 
    To:   "[email protected]" 
    The SAS System 

    Cc:   
    Bcc:   
    Subject:  Job Success 
    Attachments: 
    NOTE: 1 record was written to the file MAILBOX. 

Для отказа. Я становлюсь ниже блогов и почты не активирована

SYMBOLGEN: Macro variable SYSERR resolves to 1012 
MACROGEN(SENDMAIL): data _null_; 
MACROGEN(SENDMAIL): filename mailbox EMAIL '[email protected]' subject ='Job Failed'; 
MACROGEN(SENDMAIL): file mailbox; 
The SAS System 

MACROGEN(SENDMAIL): put "Data already available. Please submit for different"; 

MACROGEN (SENDMAIL): run;

+0

Это сработало отлично для меня, я получил письма на обоих мероприятиях. Проверьте идентификатор электронной почты, который вы вводите в первом экземпляре. т.е. когда код не – NEOmen

+0

Я обновил этот вопрос с деталями журнала – 987456

+0

я получил тот же журнал, но со следующими «SYMBOLGEN: Макропеременная SYSERR решает 1012 MLOGIC (Sendmail):% IF условия & SYSERR п 0 ИСТИНЫ» Можете ли вы запустить код с параметрами mprint mlogic symbolgen; – NEOmen

ответ

0

Оператор filename должен быть до data step. Попробуй это.

options emailsys=smtp; 
%macro sendmail; 
    filename mailbox EMAIL '[email protected]'; 
    data _null_; 
     file mailbox; 
%if &syserr ne 0 %then %do; 
     put '!em_subject! "Failed"'; 
     put "Data already avaialable. Please submit for different"; 
%end; 
%else %do; 
     put '!em_subject! "Success"'; 
     put "Data created"; 
%end; 
    run; 
%mend sendmail; 
%sendmail 
Смежные вопросы