La macro `cdm_validate_schemas` está diseñada para ser utilizada en el contexto de la utilidad de carga CDM. Su función principal es comparar la versión del esquema CDM descargada (`&CDM_Download_SchemaVer`) con la versión DDL del esquema CDM actualmente en vigor (`&CDM_DDL_SchemaVer`). En caso de incompatibilidad, la macro reporta un error definiendo un código de retorno (`rc=1`) y un mensaje de error (`CDM_ErrMsg`), y luego utiliza una instrucción `%goto` para dirigir el flujo de ejecución a una sección de manejo de errores (`ERREXIT`). También utiliza `%CHECK_VERBOSE` y mensajes `%put` con marca de tiempo para el seguimiento.
Análisis de datos
Type : CREATION_INTERNE
Este script no manipula directamente datos SASHELP ni lee datos externos a través de instrucciones `LIBNAME` o `INFILE`/`SET`/`MERGE`. Se basa en la comparación de variables de macro (`CDM_Download_SchemaVer`, `CDM_DDL_SchemaVer`) que se supone deben inicializarse antes del script, potencialmente a partir de metadatos o archivos de configuración.
1 Bloque de código
MACRO
Explicación : Este bloque define la macro `%cdm_validate_schemas`. Comienza llamando a otra macro `%CHECK_VERBOSE` (cuyo código no se incluye aquí) y muestra un mensaje con marca de tiempo indicando el inicio de la validación. Inicializa una variable de retorno `rc` a 0. El núcleo de la lógica es una instrucción `%if` que compara los valores de dos variables de macro, `&CDM_Download_SchemaVer` y `&CDM_DDL_SchemaVer`. Si estas versiones son diferentes, se muestra un mensaje de error con las versiones incompatibles, la variable `rc` se establece en 1 para indicar un error, y una variable de macro `CDM_ErrMsg` es rellenada. La ejecución se redirige entonces a la etiqueta `%ERREXIT:` a través de un `%goto`, que representa un punto de salida o de manejo de errores en la macro. La macro termina con `%mend`.
¡Copiado!
%macro cdm_validate_schemas;
%CHECK_VERBOSE;
%put %sysfunc(datetime(),E8601DT25.) --- Validating UDM and CDM schemas;
%let rc = 0;
%if &CDM_Download_SchemaVer ne &CDM_DDL_SchemaVer %then %do;
%put %sysfunc(datetime(),E8601DT25.) --- Downloaded CDM Schema version &CDM_Download_SchemaVer is incompatible with current CDM DDL Schema Version &CDM_DDL_SchemaVer;
%let rc = 1;
%let CDM_ErrMsg = Incompatible Downloaded and DDL Schema Versions;
%goto ERREXIT;
%end;
%ERREXIT:
%mend cdm_validate_schemas;
1
%macro cdm_validate_schemas;
2
3
%CHECK_VERBOSE;
4
5
%put %sysfunc(datetime(),E8601DT25.) --- Validating UDM and CDM schemas;
6
%let rc = 0;
7
8
%IF &CDM_Download_SchemaVer ne &CDM_DDL_SchemaVer %THEN %DO;
9
%put %sysfunc(datetime(),E8601DT25.) --- Downloaded CDM Schema version &CDM_Download_SchemaVer is incompatible with current CDM DDL Schema Version &CDM_DDL_SchemaVer;
10
%let rc = 1;
11
%let CDM_ErrMsg = Incompatible Downloaded and DDL Schema Versions;
12
%goto ERREXIT;
13
%END;
14
15
16
%ERREXIT:
17
18
%mend cdm_validate_schemas;
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.