Publicado el :
Administración CREATION_INTERNE

Eliminación de biblioteca a través de metadatos SAS

Este código también está disponible en: English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
La macro `mm_deletelibrary` automatiza la eliminación de una biblioteca SAS© declarada en el servidor de metadatos (herencia SAS© 9). Primero verifica la existencia del objeto a través de `metadata_resolve`. Si la biblioteca existe, construye dinámicamente una solicitud XML `DeleteMetadata` y la ejecuta usando `PROC METADATA`. Finalmente, verifica que la eliminación se haya realizado correctamente y activa un error a través de `%mp_abort` si no es el caso.
Análisis de datos

Type : CREATION_INTERNE


El script genera los archivos XML necesarios para `PROC METADATA` a través de pasos DATA `_NULL_` y no utiliza datos externos.

1 Bloque de código
DATA STEP
Explicación :
Verifica la existencia de la biblioteca en el servidor de metadatos utilizando la función `metadata_resolve` con el nombre proporcionado como parámetro. Recupera el URI y el tipo del objeto.
¡Copiado!
1DATA _null_;
2 LENGTH type uri $256;
3 rc=metadata_resolve("omsobj:SASLibrary? @Name='&name'",type,uri);
4 call symputx('checktype',type,'l');
5 call symputx('liburi',uri,'l');
6 putlog (_all_)(=);
7RUN;
2 Bloque de código
DATA STEP Data
Explicación :
Genera el archivo XML de solicitud para la acción `DeleteMetadata`. Este archivo temporal contiene la instrucción de eliminación que apunta al URI de la biblioteca identificada previamente.
¡Copiado!
1filename &fname1 temp lrecl=10000;
2filename &fname2 temp lrecl=10000;
3DATA _null_ ;
4 file &fname1 ;
5 put "<DeleteMetadata><Metadata><SASLibrary Id='&liburi'/>";
6 put "</Metadata><NS>SAS</NS><Flags>268436480</Flags><Options/>";
7 put "</DeleteMetadata>";
8RUN ;
3 Bloque de código
PROC METADATA
Explicación :
Ejecuta el procedimiento `PROC METADATA` para enviar la solicitud XML generada al servidor de metadatos y realizar la eliminación.
¡Copiado!
1PROC METADATA in=&fname1 out=&fname2 verbose;RUN;
4 Bloque de código
DATA STEP
Explicación :
Verifica post-ejecución si la biblioteca aún existe consultando nuevamente el servidor de metadatos con el URI. El resultado se almacena en la macro-variable `isgone`.
¡Copiado!
1DATA _null_;
2 LENGTH type uri $256;
3 call missing (of _all_);
4 rc=metadata_resolve("omsobj:SASLibrary? @Id='&liburi'",type,uri);
5 call symputx('isgone',type,'l');
6RUN;
5 Bloque de código
Macro Call
Explicación :
Llama a la macro de utilidad `%mp_abort` para detener la ejecución e informar un error si la biblioteca aún se detecta (fallo en la eliminación).
¡Copiado!
1%mp_abort(iftrue=(&isgone = SASLibrary)
2 ,mac=&sysmacroname
3 ,msg=%str(Library (&name) NOT deleted)
4)
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 : Allan Bowe