Le script principal crée des données en interne via `datalines4`. La macro `%mm_getdetails` interagit avec le serveur de métadonnées SAS pour récupérer des informations système (métadonnées). La macro `%macro_without_brief_tag` opère sur des arguments passés en interne et ne traite pas de données externes.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc DATA Step crée le jeu de données `work.Location`. Il définit les attributs des variables (longueur, format, label) et lit les données fournies dans la section `datalines4`. Les `datalines4` permettent d'intégrer des données directement dans le script, formatées en CSV avec un délimiteur virgule. Le format `DATETIME22.3` indique que la date est stockée en tant que valeur numérique SAS, représentant la date et l'heure avec une précision de millisecondes.
Explication : `PROC APPEND` est utilisée pour ajouter toutes les observations du jeu de données `work.Location` (créé précédemment) à la fin du jeu de données `productn.Location`. Cette procédure est efficace pour ajouter de nouvelles lignes à une table existante sans avoir à la recréer entièrement. La table `productn.Location` est supposée exister ou être créée par un autre processus.
Explication : Ce bloc définit la macro SAS `%macro_without_brief_tag`. Elle prend un argument `i_desc` et l'affiche directement dans le log SAS via `%PUT`. Cette macro simple est principalement destinée à des fins de test, de débogage ou pour afficher la valeur d'une macro-variable.
Explication : Cette macro, `%mm_getdetails`, est conçue pour extraire des informations détaillées (attributs et associations) d'un URI d'objet de métadonnées SAS. Elle prend un URI en entrée et deux jeux de données de sortie facultatifs (`outattrs` et `outassocs`). Le premier bloc DATA Step parcourt les associations de l'URI spécifié en utilisant les fonctions `metadata_getnasl` et `metadata_getnasn`, puis extrait les noms via `metadata_getattr`, stockant ces informations dans `&outassocs`. Le second bloc DATA Step extrait les propriétés et attributs de l'URI en utilisant `metadata_getnprp` et `metadata_getnatr`, stockant les détails dans `&outattrs`. Chaque jeu de données est ensuite trié par `PROC SORT` selon les options fournies.
Copié !
%macro mm_getdetails(uri
,outattrs=work.attributes
,outassocs=work.associations
,sortoptions=
)/*/STORE SOURCE*/;
data &outassocs;
keep assoc assocuri name;
length assoc assocuri name $256;
call missing(of _all_);
rc1=1;n1=1;
do while(rc1>0);
/* Walk through all possible associations of this object. */
rc1=metadata_getnasl("&uri",n1,assoc);
rc2=1;n2=1;
do while(rc2>0);
/* Walk through all the associations on this machine object. */
rc2=metadata_getnasn("&uri",trim(assoc),n2,assocuri);
if (rc2>0) then do;
rc3=metadata_getattr(assocuri,"Name",name);
output;
end;
call missing(name,assocuri);
n2+1;
end;
n1+1;
end;
run;
proc sort &sortoptions;
by assoc name;
run;
data &outattrs;
keep type name value;
length type $4 name $256 value $32767;
rc1=1;n1=1;type='Prop';name='';value='';
do while(rc1>0);
rc1=metadata_getnprp("&uri",n1,name,value);
if rc1>0 then output;
n1+1;
end;
rc1=1;n1=1;type='Attr';
do while(rc1>0);
rc1=metadata_getnatr("&uri",n1,name,value);
if rc1>0 then output;
n1+1;
end;
run;
proc sort &sortoptions;
by type name;
run;
%mend mm_getdetails;
1
%macro mm_getdetails(uri
2
,outattrs=work.attributes
3
,outassocs=work.associations
4
,sortoptions=
5
)/*/STORE SOURCE*/;
6
7
DATA &outassocs;
8
keep assoc assocuri name;
9
LENGTH assoc assocuri name $256;
10
call missing(of _all_);
11
rc1=1;n1=1;
12
DO while(rc1>0);
13
/* Walk through all possible associations of this object. */
14
rc1=metadata_getnasl("&uri",n1,assoc);
15
rc2=1;n2=1;
16
DO while(rc2>0);
17
/* Walk through all the associations on this machine object. */
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 : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. Ce fichier fait partie de SASUnit, le framework de test unitaire pour les programmes SAS(R). Pour les informations de copyright et les termes d'utilisation sous la GNU Lesser General Public License, voir le fichier README.md inclus ou https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.
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.