El script genera un conjunto de datos SAS (`&outds`) internamente, a partir de los metadatos consultados en el servidor SAS. También puede integrar esta información en un conjunto de datos SAS existente (`&inds`) si se proporciona como entrada, haciendo que el tipo de fuente sea 'MIXTO'.
1 Bloque de código
MACRO | DATA STEP Data
Explicación : Este bloque define la macro `%mm_getTree`. Maneja las opciones de depuración y utiliza un paso `DATA` para construir el conjunto de datos de salida. Las funciones `metadata_resolve`, `metadata_getattr`, `metadata_getnasn` y `metadata_pathobj` se utilizan para consultar el servidor de metadatos de SAS. El código determina si la entrada `tree` es un 'Tree' o una 'Folder' y construye dinámicamente el `treepath` recorriendo las relaciones parentales. Se utilizan variables temporales prefijadas con `__` y se eliminan antes de la salida final. Solo se conservan las observaciones con valores no vacíos para `treeuri` y `treepath`.
¡Copiado!
%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;
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 : Copyright (c) 2001-2006 Rodney Sparapani (Licencia Pública General GNU). Menciona a Allan Bowe.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.