El script principal crea datos internamente a través de `datalines4`. La macro `%mm_getdetails` interactúa con el servidor de metadatos SAS para recuperar información del sistema (metadatos). La macro `%macro_without_brief_tag` opera sobre argumentos pasados internamente y no procesa datos externos.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque DATA Step crea el conjunto de datos `work.Location`. Define los atributos de las variables (longitud, formato, etiqueta) y lee los datos proporcionados en la sección `datalines4`. `datalines4` permite integrar datos directamente en el script, formateados en CSV con un delimitador de coma. El formato `DATETIME22.3` indica que la fecha se almacena como un valor numérico SAS, representando la fecha y la hora con una precisión de milisegundos.
Explicación : `PROC APPEND` se utiliza para añadir todas las observaciones del conjunto de datos `work.Location` (creado previamente) al final del conjunto de datos `productn.Location`. Este procedimiento es eficiente para añadir nuevas filas a una tabla existente sin tener que recrearla por completo. Se asume que la tabla `productn.Location` existe o es creada por otro proceso.
Explicación : Este bloque define la macro SAS `%macro_without_brief_tag`. Toma un argumento `i_desc` y lo muestra directamente en el log SAS a través de `%PUT`. Esta macro simple está destinada principalmente para fines de prueba, depuración o para mostrar el valor de una macro-variable.
Explicación : Esta macro, `%mm_getdetails`, está diseñada para extraer información detallada (atributos y asociaciones) de un URI de objeto de metadatos SAS. Toma un URI como entrada y dos conjuntos de datos de salida opcionales (`outattrs` y `outassocs`). El primer bloque DATA Step recorre las asociaciones del URI especificado utilizando las funciones `metadata_getnasl` y `metadata_getnasn`, luego extrae los nombres a través de `metadata_getattr`, almacenando esta información en `&outassocs`. El segundo bloque DATA Step extrae las propiedades y atributos del URI utilizando `metadata_getnprp` y `metadata_getnatr`, almacenando los detalles en `&outattrs`. Cada conjunto de datos se ordena luego con `PROC SORT` según las opciones proporcionadas.
¡Copiado!
%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. */
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 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. Este archivo forma parte de SASUnit, el framework de prueba unitaria para programas SAS(R). Para obtener información de derechos de autor y términos de uso bajo la Licencia Pública General Menor de GNU, consulte el archivo README.md incluido o https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.
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.