Publié le :
Utilitaire CREATION_INTERNE

Validation des Schémas CDM

Ce code est également disponible en : Deutsch English Español
La macro `cdm_validate_schemas` est conçue pour être utilisée dans le cadre de l'utilitaire de chargement CDM. Sa fonction principale est de comparer la version du schéma CDM téléchargée (`&CDM_Download_SchemaVer`) avec la version DDL du schéma CDM actuellement en vigueur (`&CDM_DDL_SchemaVer`). En cas d'incompatibilité, la macro signale une erreur en définissant un code de retour (`rc=1`) et un message d'erreur (`CDM_ErrMsg`), puis elle utilise une instruction `%goto` pour diriger le flux d'exécution vers une section de gestion des erreurs (`ERREXIT`). Elle utilise également `%CHECK_VERBOSE` et des messages `%put` horodatés pour le suivi.
Analyse des données

Type : CREATION_INTERNE


Ce script ne manipule pas directement des données SASHELP ni ne lit de données externes via des instructions `LIBNAME` ou `INFILE`/`SET`/`MERGE`. Il s'appuie sur la comparaison de variables de macro (`CDM_Download_SchemaVer`, `CDM_DDL_SchemaVer`) qui sont censées être initialisées en amont du script, potentiellement à partir de métadonnées ou de fichiers de configuration.

1 Bloc de code
MACRO
Explication :
Ce bloc définit la macro `%cdm_validate_schemas`. Il commence par appeler une autre macro `%CHECK_VERBOSE` (dont le code n'est pas inclus ici) et affiche un message horodaté indiquant le début de la validation. Il initialise une variable de retour `rc` à 0. Le cœur de la logique est une instruction `%if` qui compare les valeurs de deux variables de macro, `&CDM_Download_SchemaVer` et `&CDM_DDL_SchemaVer`. Si ces versions sont différentes, un message d'erreur est affiché avec les versions incompatibles, la variable `rc` est définie à 1 pour indiquer une erreur, et une variable de macro `CDM_ErrMsg` est renseignée. L'exécution est ensuite redirigée vers l'étiquette `%ERREXIT:` via un `%goto`, qui représente un point de sortie ou de gestion d'erreur dans la macro. La macro se termine par `%mend`.
Copié !
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;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Copyright © 2020, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0