Publicado el :
Utilidad CREATION_INTERNE

Notificación por correo electrónico SAS

Este código también está disponible en: Deutsch English Français
Attention : Este código requiere privilegios de administrador.
El script comienza borrando las ventanas DM (Display Manager) 'output' y 'log'. Luego define tres macros: 'startT' para capturar la fecha y hora de inicio, 'endT' para la fecha y hora de finalización, y 'email' para formatear y enviar un correo electrónico de notificación. La macro 'email' configura las opciones SMTP y utiliza una referencia de archivo EMAIL para enviar el mensaje. El script luego llama a 'startT' y 'endT', ejecuta un paso DATA simple 'Hello world!', y finalmente envía un correo electrónico de notificación a través de la macro 'email'.
Análisis de datos

Type : CREATION_INTERNE


Los datos manipulados en este script (fechas, horas, mensajes de correo electrónico) se generan dinámicamente o son literales. No hay lectura de datos externos o conjuntos de datos SAS persistentes.

1 Bloque de código
Comandos DM
Explicación :
Estos comandos borran el contenido de las ventanas 'output' y 'log' del Display Manager (DM) en el entorno SAS.
¡Copiado!
1dm 'output;clear';
2dm 'log;clear';
2 Bloque de código
MACRO STARTT
Explicación :
Esta macro define dos variables macro, &startdate y &starttime, que contienen la fecha y hora actuales formateadas en el momento de su ejecución. Utiliza un paso DATA _NULL_ porque no se crea ningún conjunto de datos.
¡Copiado!
1%macro startT;
2DATA _null_;
3 tempdate=put(date(),weekdate32.);
4 temptime=put(time(),hhmm5.);
5 call symput("startdate",tempdate);
6 call symput("starttime",temptime);
7RUN;
8%mend;
3 Bloque de código
MACRO ENDT
Explicación :
Similar a la macro startT, esta macro define las variables macro &enddate y &endtime para registrar la fecha y hora de finalización de la ejecución.
¡Copiado!
1%macro endT;
2DATA _null_;
3 tempdate=put(date(),weekdate32.);
4 temptime=put(time(),hhmm5.);
5 call symput("enddate",tempdate);
6 call symput("endtime",temptime);
7RUN;
8%mend;
4 Bloque de código
MACRO EMAIL
Explicación :
Esta macro configura las opciones del sistema para el envío de correos electrónicos a través de SMTP, especificando el remitente (EMAILID) y el servidor (EMAILHOST). Crea una referencia de archivo 'mymail' de tipo EMAIL, define el destinatario (TO) y el asunto del correo electrónico usando el parámetro 'dt' pasado a la macro. Luego se utiliza un paso DATA _NULL_ para escribir el cuerpo del mensaje en el archivo vinculado a 'mymail', incluyendo la información de inicio y fin capturada previamente.
¡Copiado!
1%macro email(dt);
2 /* Set up the options for the email. */
3 OPTIONS EMAILSYS=smtp EMAILID="kfong @cornerstone.com"
4 EMAILHOST=CRDCEXCH10.cornerstone.com;
5 FILENAME mymail
6 EMAIL
7 TO = ("kfong @cornerstone.com")
8 SUBJECT="&dt. finished"
9 ;
10 /* Send the email and define the message to send. */
11 DATA _NULL_;
12 FILE mymail;
13 PUT "Hello,";
14 PUT " ";
15 PUT "The code for &dt. has finished running.";
16 PUT "Start: &StartTime. &StartDate. ";
17 PUT "End: &EndTime. &EndDate. ";
18 RUN;
19%mend;
5 Bloque de código
Llamada a macros
Explicación :
Estas líneas llaman a las macros StartT y EndT para inicializar las variables macro de fecha y hora de inicio y fin.
¡Copiado!
1%StartT;
2%EndT;
6 Bloque de código
PASO DATA
Explicación :
Este simple paso DATA escribe la cadena "Hello world!" en el log de SAS. Aquí sirve como ejemplo de código a ejecutar entre las marcas de tiempo de inicio y fin.
¡Copiado!
1DATA _null_;
2 put "Hello world!";
3RUN;
7 Bloque de código
Llamada a macro
Explicación :
Esta línea llama a la macro Email con 'test' como parámetro, lo que activa el envío del correo electrónico de notificación con el asunto 'test finished' y la información de tiempo de ejecución.
¡Copiado!
1%Email(test);
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Created by: Kevin Fong, Date Created: 2/4/14