Publicado el :

Copia de miembros entre grupos de metadatos

Este código también está disponible en: Deutsch Français
Attention : Este código requiere privilegios de administrador.
El script configura una conexión a un servidor de metadatos SAS© (legacy SAS© 9). Verifica la existencia de los grupos de origen y destino utilizando la función `metadata_resolve`. Luego, recupera el número de miembros del grupo de origen y recorre para añadir cada miembro al grupo de destino a través de `metadata_setassn`. Este código es específico para la gestión de metadatos de SAS© 9 y no se aplica directamente al proveedor de identidad nativo de SAS© Viya.
Análisis de datos

Type : EXTERNE


Los datos se leen y escriben directamente en el servidor de metadatos SAS (OMR) configurado en las opciones.

1 Bloque de código
OPTIONS
Explicación :
Configuración de los parámetros de conexión al servidor de metadatos SAS (host, puerto, credenciales, protocolo).
¡Copiado!
1options
2 metaserver="meta.demo.sas.com"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="password"
6 metaprotocol=bridge
7 metarepository=Foundation;
2 Bloque de código
MACRO VARIABLES
Explicación :
Definición de los nombres de los grupos de origen y destino mediante macrovariables.
¡Copiado!
1%let source_group_name='
2source group';
3%let dest_group_name='destination group';
4 
3 Bloque de código
DATA STEP
Explicación :
Paso Data _null_ que contiene la lógica de negocio: resolución de los URIs de los grupos, verificación de su existencia, conteo de miembros y bucle para añadir miembros del grupo de origen al grupo de destino mediante las funciones `metadata_`.
¡Copiado!
1DATA _null_;
2/* Initialize variables. */
3LENGTH type1 type2 id1 id2 src_uri dest_uri mem_uri mem_name $ 50;
4call missing (of _character_);
5 
6/* Define query. */
7src_obj="omsobj:IdentityGroup? @Name=&source_group_name";
8dest_obj="omsobj:IdentityGroup? @Name=&dest_group_name";
9 
10/* Test for the existence of the source group. */
11rc1=metadata_resolve(src_obj,type1,id1);
12src_uri=cats(type1,'\',id1);
13if rc1 < 1 then do; /* If unable to locate, notify and stop. */
14 put "ERROR: SOURCE group &source_group_name not found in Metadata.";
15 stop;
16end;
17 
18/* Test for the existence of the destination group. */
19rc2=metadata_resolve(dest_obj,type2,id2);
20dest_uri=cats(type2,'\',id2);
21 
22if rc2 < 1 then do; /* If unable to locate, notify and stop. */
23 put "ERROR: Destination group &dest_group_name not found in Metadata.";
24 stop;
25end;
26 
27/* Count the number of members in the source group. */
28mem_count=metadata_getnasn(src_uri,"MemberIdentities",1,mem_uri);
29put "NOTE: SOURCE group &source_group_name has " mem_count "members.";
30 
31/* For each member in the source group, */
32/* add the member to the destination group. */
33 
34do n=1 to mem_count;
35 rc=metadata_getnasn(src_uri,"MemberIdentities",n,mem_uri);
36 rc=metadata_getattr(mem_uri,"Name",mem_name);
37 put "NOTE: Adding " mem_name "to destination group &dest_group_name";
38 rc=metadata_setassn(dest_uri,"MemberIdentities","APPEND",mem_uri);
39 put mem_uri;
40END;
41RUN;
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: 29NOV2017