Publicado el :
Reporting CREATION_INTERNE

Generación y Envío de Certificados PDF por Email

Este código también está disponible en: Deutsch English Français
En espera de validación
El programa define una lista de destinatarios (nombres y correos electrónicos) de forma estática. Luego utiliza una macro para iterar sobre esta lista. Para cada persona, genera un certificado PDF personalizado utilizando PROC GANNO para la colocación precisa del texto y las imágenes (fondo, firma). El archivo resultante se envía inmediatamente como adjunto a través del motor SMTP de SAS©.
Análisis de datos

Type : CREATION_INTERNE


Los datos (nombres y correos electrónicos de los estudiantes) se crean directamente en el script a través de un paso DATA y la instrucción CARDS.

1 Bloque de código
DATA STEP Data
Explicación :
Configuración del entorno (rutas, opciones gráficas, parámetros SMTP) y creación de la tabla de destinatarios.
¡Copiado!
1%let local=C:\Papers_ALAN\GLOBALSAS\2020;
2 
3goptions reset=all iback="&local\template.PNG"
4imagestyle=fit border;
5 
6options noemailfrom emailsys=smtp emailhost=SMTP emailauthprotocol=login emailport=PORT
7emailid="e-mail" emailpw="password";
8
9DATA database;
10INPUT name $1-37 email $38-66;
11CARDS;
12Alan da Silva djalan @bol.com.br
13yyyyyyyyyyyyyyyyyyyyyyy yyy @email.com
14zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zzz @email.com
15;
2 Bloque de código
DATA STEP
Explicación :
Transformación de datos en macrovariables para la iteración y cálculo del número total de destinatarios.
¡Copiado!
1DATA database;SET database;
2call symput('name'||trim(left(_n_)),trim(left(upcase(name))));
3call symput('email'||trim(left(_n_)),trim(left(email)));
4RUN;
5%put &name1 &email1;
6PROC SQL noprint;
7select count(*) into:n from database;
8QUIT;
9%put &n;
3 Bloque de código
MACRO
Explicación :
Definición y ejecución de la macro bucle. Genera el PDF gráfico (PROC GANNO) y envía el correo electrónico para cada estudiante.
¡Copiado!
1%macro certificate(local=);
2options nodate nonumber leftmargin=1cm rightmargin=1cm topmargin=1cm
3bottommargin=1cm papersize=A4 orientation=landscape;
4%DO i=1 %to &n;
5ods pdf file="&local\certificate &&name&i...pdf" style=printer;
6DATA text;
7LENGTH function style $30. color $6. text $150.;
8retain line 1 xsys ysys '2' hsys '3' x 8;
9/* ... Code de génération des annotations (texte, positions, images) ... */
10text="The Department of Statistics of the University of Brasilia";OUTPUT;
11/* ... suite des instructions output ... */
12RUN;
13PROC GANNO anno=text;RUN;
14ods pdf close;
15filename myfile email
16to= "&&email&i"
17subject= "Certificate of Completion"
18attach="&local\certificate &&name&i...pdf";
19DATA _null_;
20file myfile;
21put "Dear Student, please find attached the certificate of completion of the course of study.";
22put " ";
23put "Best regards";
24put "Prof. Alan Ricardo da Silva";
25RUN;
26%END;
27%mend certificate;
28%certificate(local=&local);
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.