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):実行します。
私にとってはうまくいったので、両方のイベントでメールが届きました。最初のインスタンスに入れている電子メールIDを確認します。コードは – NEOmen
を失敗したつまり私は同じログを得たが、 と次のようにログの詳細 – 987456
で質問を更新しました「SYMBOLGEN:マクロ変数SYSERRは1012 MLOGIC(SENDMAIL)に解決:条件&SYSERR NE 0がTRUE%のIF」 mprint mlogic symbolgenのオプションを指定してコードを実行できますか? – NEOmen