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!
data _null_;
length type uri $256;
rc=metadata_resolve("omsobj:SASLibrary? @Name='&name'",type,uri);
call symputx('checktype',type,'l');
call symputx('liburi',uri,'l');
putlog (_all_)(=);
run;
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!
filename &fname1 temp lrecl=10000;
filename &fname2 temp lrecl=10000;
data _null_ ;
file &fname1 ;
put "<DeleteMetadata><Metadata><SASLibrary Id='&liburi'/>";
put "</Metadata><NS>SAS</NS><Flags>268436480</Flags><Options/>";
put "</DeleteMetadata>";
run ;
1
filename &fname1 temp lrecl=10000;
2
filename &fname2 temp lrecl=10000;
3
DATA _null_ ;
4
file &fname1 ;
5
put "<DeleteMetadata><Metadata><SASLibrary Id='&liburi'/>";
6
put "</Metadata><NS>SAS</NS><Flags>268436480</Flags><Options/>";
7
put "</DeleteMetadata>";
8
RUN ;
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!
proc metadata in=&fname1 out=&fname2 verbose;run;
1
PROC 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!
data _null_;
length type uri $256;
call missing (of _all_);
rc=metadata_resolve("omsobj:SASLibrary? @Id='&liburi'",type,uri);
call symputx('isgone',type,'l');
run;
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!
%mp_abort(iftrue=(&isgone = SASLibrary)
,mac=&sysmacroname
,msg=%str(Library (&name) NOT deleted)
)
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.
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.