Publié le :
Reporting CREATION_INTERNE

Rapport de Métadonnées de Variables

Ce code est également disponible en : Deutsch English Español
En attente de validation
Cette macro SAS©, `MetaShort`, prend en paramètre le nom d'une bibliothèque SAS© (`lib`). Si aucun nom de bibliothèque n'est fourni, elle utilise la valeur de la macro-variable `&pname`. Elle commence par définir un format personnalisé pour afficher les types de variables ('Char' pour les caractères, 'Num' pour les numériques). Ensuite, elle utilise `PROC DATASETS` pour collecter les métadonnées de toutes les tables de données de la bibliothèque spécifiée et les stocke dans une table temporaire nommée `WORK.TEMP`. Une requête `PROC SQL` est ensuite exécutée pour récupérer le chemin physique de la bibliothèque à partir de `DICTIONARY.MEMBERS`. Le rapport est généré en HTML5 (`meta.html`) dans ce chemin physique via `PROC REPORT`, en utilisant la table `WORK.TEMP`. Le rapport affiche le nom du dataset, le nom de la variable, son type (formaté), sa longueur, son format, son informat et son libellé. Une ligne vide est insérée entre les groupes de variables pour chaque dataset pour améliorer la lisibilité. Enfin, les destinations ODS sont fermées et réinitialisées.
Analyse des données

Type : CREATION_INTERNE


Les données sources pour le rapport sont générées en interne par `PROC DATASETS` qui extrait les métadonnées des tables de la bibliothèque spécifiée par l'utilisateur. `DICTIONARY.MEMBERS` est une vue système SAS utilisée pour récupérer le chemin de la bibliothèque.

1 Bloc de code
Macro
Explication :
Définition de la macro `MetaShort` prenant un paramètre `lib`. Si `lib` est vide, la macro-variable `&pname` est utilisée comme valeur par défaut pour la bibliothèque.
Copié !
1%macro MetaShort(lib);
2%IF %superq(lib)= %THEN %let lib=&pname;
3 
2 Bloc de code
PROC FORMAT
Explication :
Crée un format personnalisé `type.` pour afficher les valeurs numériques 1 et 2 sous forme de chaînes de caractères ('Num' et 'Char'), représentant les types de variables.
Copié !
1 PROC FORMAT;
2 value type 2="Char"
3 1 = "Num";
4 RUN;
3 Bloc de code
PROC DATASETS Data
Explication :
Utilise `PROC DATASETS` pour extraire les métadonnées de toutes les tables de données (`memtype=data`) de la bibliothèque spécifiée (`&lib`). Les informations de contenu sont stockées dans la table temporaire `WORK.TEMP`.
Copié !
1 PROC DATASETS library=&lib memtype=DATA ;
2 contents DATA=_all_ out=work.temp ;
3 RUN;
4 QUIT;
4 Bloc de code
PROC SQL
Explication :
Une requête `PROC SQL` est exécutée pour récupérer le chemin physique (`path`) de la bibliothèque (`&lib`) à partir de la vue système `DICTIONARY.MEMBERS`. Le chemin est stocké dans la macro-variable `&libpath` et les espaces sont supprimés.
Copié !
1 PROC SQL noprint;
2 select path into: libpath
3 from Dictionary.members
4 where LIBNAME =upcase("&lib");
5 QUIT;
6 
7 %let libpath=%sysfunc(strip(&libpath));
5 Bloc de code
PROC REPORT
Explication :
Prépare la destination ODS HTML5 pour créer un fichier `meta.html` dans le chemin de la bibliothèque. `PROC REPORT` utilise la table `WORK.TEMP` pour générer le rapport. Il affiche des colonnes pour le nom du dataset, le nom de la variable, son type (formaté), sa longueur, son format, son informat et son libellé. Une ligne vide est ajoutée après chaque groupe de variables pour un dataset donné. Les destinations ODS sont ensuite fermées et réinitialisées.
Copié !
1 title "Datasets in &lib";
2 odds html5 path="&libpath" (url="")
3 body="meta.html";
4 PROC REPORT DATA=work.temp headline headskip spacing=2 ;
5 columns memname name type LENGTH FORMAT informat label;
6 define memname /order order=DATA "Dataset" ;
7 define name /display "Variable";
8 define type /display FORMAT=type. "Type";
9 define LENGTH /display "Length";
10 define FORMAT /display "Format";
11 define informat /display "Informat";
12 define label /display "Label";
13 compute after memname;
14 line ' ';
15 endcomp;
16 RUN;
17 odds html5 close;
18 odds html;
19 title ;
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 : ************************************************************************* * MetaShort * report the metadata of variables in the given lib including name, type, * length, format, informat, and label * *************************************************************************