Publicado el :
Administración CREATION_INTERNE

Extracción de Direcciones de Correo Electrónico de Metadatos SAS

Este código también está disponible en: Deutsch Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
El programa establece una conexión con el servidor de metadatos SAS© utilizando las opciones globales `metaserver`, `metaport`, `metauser`, `metapass` y `metaprotocol`. Luego inicializa un nuevo conjunto de datos `WORK.EMAILS` con variables para el tipo, el identificador, la dirección de correo electrónico, la URI del correo electrónico, la URI del usuario y el nombre del usuario, todas de longitud 50 caracteres. Las variables se inicializan a valores faltantes. La función `metadata_resolve` se utiliza para contar el número de objetos 'Email' definidos en los metadatos SAS©. Si se encuentran objetos, el script itera sobre cada uno de ellos. Para cada objeto 'Email', utiliza `metadata_getnobj` para recuperar la URI del objeto, luego `metadata_getattr` para extraer la dirección de correo electrónico ('Address'). Luego recupera la URI del usuario asociado a través de `metadata_getnasn` y finalmente el nombre del usuario ('Name') a través de `metadata_getattr`. Cada conjunto de información recopilada se escribe luego en el conjunto de datos `WORK.EMAILS`.
Análisis de datos

Type : CREATION_INTERNE


El script crea el conjunto de datos `WORK.EMAILS` consultando directamente los objetos 'Email' y 'Person' definidos en los metadatos SAS. La referencia a ` @code_sas_json/identity.json` en las llamadas `metadata_resolve` y `metadata_getnobj` es parte de la sintaxis del identificador del objeto de metadatos y no significa que el contenido del archivo JSON se use como fuente de datos externa para el `DATA STEP`.

1 Bloque de código
OPTIONS
Explicación :
Este bloque configura las opciones globales de SAS necesarias para establecer una conexión con el servidor de metadatos de SAS. Especifica el servidor de metadatos, el puerto, el nombre de usuario, la contraseña, el repositorio y el protocolo de comunicación. Estos parámetros son esenciales para que el script pueda interactuar con el entorno de metadatos y extraer información de él.
¡Copiado!
1options
2 metaserver="meta.demo.sas.com"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="password"
6 metarepository=Foundation
7 metaprotocol=BRIDGE;
2 Bloque de código
DATA STEP Data
Explicación :
Este bloque `DATA STEP` es responsable de la creación del conjunto de datos `WORK.EMAILS` y de la extracción de datos. Inicializa las variables y luego utiliza `metadata_resolve` para contar los objetos 'Email' en los metadatos. Se ejecuta un bucle si se encuentran objetos 'Email'. En cada iteración, las funciones `metadata_getnobj`, `metadata_getattr` y `metadata_getnasn` se utilizan secuencialmente para recuperar la URI del objeto 'Email', la dirección de correo electrónico asociada, la URI del usuario vinculado y finalmente el nombre de ese usuario. La instrucción `output` escribe la información extraída en el conjunto de datos `WORK.EMAILS` para cada correo electrónico encontrado.
¡Copiado!
1DATA work.emails; /* Create a dataset, work.emails. */
2 
3/* define and initialize variables. */
4LENGTH type id email_add email_uri user_uri user_name $ 50;
5call missing (type,id,email_add,email_uri,user_uri,user_name);
6 
7/* Count the email objects defined in Metadata. */
8email_count=metadata_resolve("omsobj:Email? @code_sas_json/identity.json contains '.'",type,id);
9 
10/* If any are present, for each one gather their attributes. */
11IF email_count > 0 THEN DO n=1 to email_count;
12 rc=metadata_getnobj("omsobj:Email? @code_sas_json/identity.json contains '.'",1,email_uri);
13 rc=metadata_getattr(email_uri,"Address",email_add);
14 rc=metadata_getnasn(email_uri,"Persons",1,user_uri);
15 rc=metadata_getattr(user_uri,"Name",user_name);
16 OUTPUT; /* Write the attributes gathered to the dataset. */
17END;
18RUN;
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: 09FEB2017