Publicado el :
Informes CREATION_INTERNE

Llamada a la Generación de Informes

Este código también está disponible en: Deutsch English Français
En espera de validación
La macro `call_create_report` está diseñada para ser invocada desde un script de shell. Recupera una cadena de caracteres a través de la variable de sistema `SYSPARM`, que analiza para extraer un `id_report_control` y una `rundate`. Luego, calcula un `datestamp` (fecha actual) y un `timestamp` (hora del minuto actual) utilizando funciones SAS©. Finalmente, transfiere todos estos parámetros a una macro `create_report` (cuyo código no se incluye aquí) que se encarga de la lógica de creación efectiva de los informes. Se definen opciones globales de SAS© para mejorar la depuración y la gestión de las variables macro.
Análisis de datos

Type : CREATION_INTERNE


Los datos utilizados son principalmente parámetros de entrada (`SYSPARM`) tratados como variables macro, y variables de fecha/hora generadas dinámicamente por SAS (`DATE()`, `DATETIME()`). No hay una lectura explícita de datos de tablas SASHELP o fuentes externas en este fragmento de código, a excepción de lo que podría ser gestionado por la macro `create_report` no proporcionada.

1 Bloque de código
MACRO
Explicación :
Define el inicio de la macro `call_create_report` e inicializa la variable macro `SYSPARM` con el valor pasado a SAS a través de la línea de comandos, luego lo muestra en el log.
¡Copiado!
1%macro call_create_report();
2%let SYSPARM=&SYSPARM ;
3%put SYSPARM=&SYSPARM;
4 
2 Bloque de código
DATA STEP Data
Explicación :
Este bloque `DATA _NULL_` se utiliza para extraer valores de la variable macro `SYSPARM`. La función `SCAN` permite separar los elementos por comas, y `CALL SYMPUT` los asigna a nuevas variables macro (`id_report_control` y `rundate`).
¡Copiado!
1 DATA _null_ ;
2 call symput('id_report_control',trim(left(scan("&SYSPARM",1,',')))) ;
3 call symput('rundate',trim(left(scan("&SYSPARM",2,',')))) ;
4 RUN ;
3 Bloque de código
MACRO Data
Explicación :
Este bloque utiliza las funciones macro `%SYSFUNC` para manipular y formatear fechas y horas. `rundate` se convierte al formato de fecha SAS, `datestamp` obtiene la fecha del sistema en formato AAMMJJ, y `timestamp` extrae la hora de la marca de tiempo del sistema en formato HH0000. Una variable `zip_counter` se inicializa a 0.
¡Copiado!
1 /* rundate is the date variable of the extraction*/
2 %let rundate = %SYSFUNC(INPUTN(&rundate,yymmdd8.));
3 %put rundate=%sysfunc(putn(&rundate,yymmdd10.));
4
5 /*datestamp is the wariable for the ZIP file*/
6 %let datestamp = %sysfunc(DATE(),yymmdd6.);
7 %put datestamp=&datestamp.;
8 %let zip_counter = 0;
9 /*timestamp is the wariable for the ZIP file*/
10 %let timestamp = %sysfunc(substr(%sysfunc(DATETIME(),datetime19.),11,2))0000;
11 %put timestamp=×tamp.;
4 Bloque de código
MACRO
Explicación :
Muestra los valores finales de las variables macro `id_report_control` y `datestamp` en el log. Luego, llama a la macro `create_report` (no definida en este código) pasándole todas las variables macro preparadas como parámetros. `ABSOLUTE` es un error tipográfico y no es válido. Finalmente, `ABSOLUTE` termina la definición de la macro `call_create_report`.
¡Copiado!
1
2 %put id_report_control = &id_report_control. ;
3 %put datestamp = &datestamp. ;
4 %create_report(&id_report_control.,&datestamp.,×tamp.,&rundate.);
5%mend call_create_report;
5 Bloque de código
OPTIONS / EXECUTION
¡Copiado!
1options mprint;
2options MVARSIZE=MAX;
3options noquotelenmax;
4%call_create_report();
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 : ykxjlau 27.02.2013: Created.