Le script génère un jeu de données SAS (`&outds`) en interne, à partir des métadonnées interrogées sur le serveur SAS. Il peut également intégrer ces informations à un jeu de données SAS existant (`&inds`) s'il est fourni comme entrée, rendant le type de source 'MIXTE'.
1 Bloc de code
MACRO | DATA STEP Data
Explication : Ce bloc définit la macro `%mm_getTree`. Il gère les options de débogage et utilise une étape `DATA` pour construire le jeu de données de sortie. Les fonctions `metadata_resolve`, `metadata_getattr`, `metadata_getnasn` et `metadata_pathobj` sont utilisées pour interroger le serveur de métadonnées SAS. Le code détermine si l'entrée `tree` est un 'Tree' ou un 'Folder' et construit dynamiquement le `treepath` en parcourant les relations parentales. Des variables temporaires préfixées par `__` sont utilisées et supprimées avant la sortie finale. Seules les observations avec des valeurs non vides pour `treeuri` et `treepath` sont conservées.
Copié !
%macro mm_getTree(
tree=
,inds=
,outds=work.mm_getTree
,mDebug=0
)/*/STORE SOURCE*/;
%local mD;
%if &mDebug=1 %then %let mD=;
%else %let mD=%str(*);
%&mD.put Executing mm_getTree.sas;
%&mD.put _local_;
data &outds;
length treeuri __parenturi __type __name $256 treepath $512;
%if %length(&inds)>0 %then %do;
set &inds;
%end;
__rc1=metadata_resolve("&tree",__type,treeuri);
if __type='Tree' then do;
__rc2=metadata_getattr(treeuri,"Name",__name);
treepath=cats('/',__name);
/* get parents */
do while (metadata_getnasn(treeuri,"ParentTree",1,__parenturi)>0);
__rc3=metadata_getattr(__parenturi,"Name",__name);
treepath=cats('/',__name,treepath);
treeuri=__parenturi;
end;
treeuri="&tree";
end;
else do;
__rc2=metadata_pathobj(' ',"&tree",'Folder',__type,treeuri);
treepath="&tree";
end;
%&mD.put (_all_)(=);
drop __:;
if treeuri ne "" and treepath ne "" then output;
stop;
run;
%mend mm_getTree;
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 (c) 2001-2006 Rodney Sparapani (Licence Publique Générale GNU). Mentionne Allan Bowe.
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.