Los datos provienen de un servidor de metadatos SAS 9 consultado dinámicamente a través de funciones del sistema. No se requiere ninguna tabla física como entrada.
1 Bloque de código
OPTIONS
Explicación : Configuración de los parámetros de conexión al servidor de metadatos SAS 9 (Host, Puerto, Usuario, Contraseña, Repositorio).
Explicación : Paso Data principal que consulta el servidor de metadatos. Inicializa una consulta para los objetos 'IdentityGroup', itera sobre cada grupo encontrado para extraer su nombre y nombre de visualización, luego itera sobre los miembros asociados ('MemberIdentities') para recuperar sus detalles. Los resultados se estructuran en la tabla de salida 'groups'.
¡Copiado!
data groups;
/* Initialize variables. */
length type id group_uri group_name mgroup_uri
muser_uri m_name $ 50 m_dn group_dn $ 256;
call missing(of _character_);
label group_name = "Group Name"
group_dn = "Group Display Name"
m_name = "Member Name"
m_dn = "Member Display Name"
;
/* Define initial query for groups. */
group_obj="omsobj:IdentityGroup? @PublicType='UserGroup'";
/* Test query for results. */
group_count=metadata_resolve(group_obj,type,id);
put "NOTE: Found " group_count "User Groups";
if group_count > 0 then do n=1 to group_count;
/* If groups are found, get each group's name and display name. */
rc=metadata_getnobj(group_obj,n,group_uri);
rc=metadata_getattr(group_uri,"Name",group_name);
rc=metadata_getattr(group_uri,"DisplayName",group_dn);
/* Test for presence of members associated with the group. */
muser_count=metadata_getnasn(group_uri,"MemberIdentities",1,muser_uri);
if muser_count > 0 then do o=1 to muser_count;
/* If found, extract each associated user's name and display name. */
rc=metadata_getnasn(group_uri,"MemberIdentities",o,muser_uri);
rc=metadata_getattr(muser_uri,"Name",m_name);
rc=metadata_getattr(muser_uri,"DisplayName",m_dn);
output;
call missing (m_name,m_dn);
end;
else do;
put "NOTE: No members of group " group_name group_dn;
output;
end;
end;
else put "ERROR: No groups found";
keep group_name group_dn m_name m_dn ;
put "NOTE: No members of group " group_name group_dn;
39
OUTPUT;
40
END;
41
END;
42
ELSE put "ERROR: No groups found";
43
keep group_name group_dn m_name m_dn ;
3 Bloque de código
PROC REPORT
Explicación : Generación de un informe simple que lista las columnas extraídas: Nombre del grupo, Nombre de visualización del grupo, Nombre del miembro, Nombre de visualización del miembro.
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 : Author: Greg Wootton Date: 29JUN2017
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.