Publicado el :

Extracción de las indicaciones de Procesos Almacenados (Metadata API)

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
Este programa utiliza las funciones de interfaz de metadatos SAS© (Metadata Interface Functions) para listar todos los objetos 'StoredProcess' registrados. Luego navega por la estructura XML de los metadatos para identificar los grupos de indicaciones asociados y extraer los nombres de las indicaciones individuales. Nota importante: Este código está diseñado para la arquitectura SAS© 9 (utilizando un servidor de metadatos). En SAS© Viya, solo funcionará si está configurado para conectarse a un servidor de metadatos SAS© 9 remoto a través del protocolo BRIDGE, ya que Viya ya no utiliza un servidor de metadatos para su propio contenido.
Análisis de datos

Type : EXTERNE


Consulta del Servidor de Metadatos SAS (Metadata Server) a través de las funciones metadata_resolve, metadata_getnobj, etc.

1 Bloque de código
OPTIONS
Explicación :
Configuración de las opciones de conexión al servidor de metadatos SAS 9. Los valores <hostname> y <password> deben ser reemplazados.
¡Copiado!
1options
2 metaserver="<hostname>"
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 Data Step recorre los objetos de metadatos. Primero resuelve la consulta para encontrar los 'StoredProcess', luego itera sobre cada proceso para recuperar su nombre y seguir la asociación 'Prompts' para listar los parámetros de entrada.
¡Copiado!
1DATA work.prompts;
2 
3 /* define and initialize variables */
4 
5 LENGTH
6 type $ 13
7 id $ 17
8 stp_uri $ 39
9 stp_name $ 255
10 pge_uri $ 37
11 p_uri $ 50
12 p_name $ 50
13 ;
14 
15 call missing(type,id,stp_uri,stp_name,pge_uri,p_uri,p_name);
16 
17 /* Query definition: ClassifierMap of type "StoredProcess" */
18 
19 stp_obj="omsobj:ClassifierMap?ClassifierMap[ @PublicType='StoredProcess']";
20 
21 /* Count the number of stored processes defined in Metadata. */
22 
23 stp_count=metadata_resolve(stp_obj,type,id);
24 
25 put "Found " stp_count "Stored Processes.";
26 
27 IF stp_count > 0 THEN DO n=1 to stp_count;
28 
29 rc1=metadata_getnobj(stp_obj,n,stp_uri);
30 /* Get the name of the stored process. */
31 rc2=metadata_getattr(stp_uri,"Name",stp_name);
32 /* Get the stored process' associated embedded prompt group. */
33 rc3=metadata_getnasn(stp_uri,"Prompts",1,pge_uri);
34 /* Count the number of prompts in that prompt group. */
35 prompt_count=metadata_getnasn(pge_uri,"ReferencedPrompts",1,p_uri);
36 /* If any prompts are in the group, pull the name of them. */
37 IF prompt_count > 0 THEN DO m=1 to prompt_count;
38 rc4=metadata_getnasn(pge_uri,"ReferencedPrompts",m,p_uri);
39 rc5=metadata_getattr(p_uri,"Name",p_name);
40 OUTPUT;
41 END;
42 ELSE put "No prompts found, nothing to do.";
43 END;
44 ELSE put "No stored processes found, nothing to do.";
45 keep stp_name p_name;
46RUN;
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: 10JAN2017