Les données utilisées sont principalement des paramètres d'entrée (`SYSPARM`) traités en variables macro, et des variables de date/heure générées dynamiquement par SAS (`DATE()`, `DATETIME()`). Il n'y a pas de lecture explicite de données issues de tables SASHELP ou de sources externes dans ce fragment de code, à l'exception de ce qui pourrait être géré par la macro `create_report` non fournie.
1 Bloc de code
MACRO
Explication : Définit le début de la macro `call_create_report` et initialise la variable macro `SYSPARM` avec la valeur passée à SAS via la ligne de commande, puis l'affiche dans le log.
Explication : Ce bloc `DATA _NULL_` est utilisé pour extraire des valeurs de la variable macro `SYSPARM`. La fonction `SCAN` permet de séparer les éléments par des virgules, et `CALL SYMPUT` les assigne à de nouvelles variables macro (`id_report_control` et `rundate`).
Copié !
data _null_ ;
call symput('id_report_control',trim(left(scan("&SYSPARM",1,',')))) ;
call symput('rundate',trim(left(scan("&SYSPARM",2,',')))) ;
run ;
Explication : Ce bloc utilise les fonctions macro `%SYSFUNC` pour manipuler et formater les dates et heures. `rundate` est convertie en format de date SAS, `datestamp` obtient la date du système au format AAMMJJ, et `timestamp` extrait l'heure de l'horodatage système au format HH0000. Une variable `zip_counter` est initialisée à 0.
Copié !
/* rundate is the date variable of the extraction*/
%let rundate = %SYSFUNC(INPUTN(&rundate,yymmdd8.));
%put rundate=%sysfunc(putn(&rundate,yymmdd10.));
/*datestamp is the wariable for the ZIP file*/
%let datestamp = %sysfunc(DATE(),yymmdd6.);
%put datestamp=&datestamp.;
%let zip_counter = 0;
/*timestamp is the wariable for the ZIP file*/
%let timestamp = %sysfunc(substr(%sysfunc(DATETIME(),datetime19.),11,2))0000;
%put timestamp=×tamp.;
1
/* rundate is the date variable of the extraction*/
Explication : Affiche les valeurs finales des variables macro `id_report_control` et `datestamp` dans le log. Ensuite, elle appelle la macro `create_report` (non définie dans ce code) en lui passant toutes les variables macro préparées comme paramètres. `ABSOLUTE` est une erreur de frappe et n'est pas valide. Enfin, `ABSOLUTE` termine la définition de la macro `call_create_report`.
Explication : Définit des options globales SAS : `MPRINT` pour afficher les lignes de code générées par les macros, `MVARSIZE=MAX` pour autoriser des variables macro de grande taille, et `NOQUOTELENMAX` pour désactiver la troncature des chaînes entre guillemets. Enfin, exécute la macro `call_create_report`.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : ykxjlau 27.02.2013: Created.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.