Das Makro `cdm_validate_schemas` wurde für die Verwendung im Rahmen des CDM-Lade-Dienstprogramms entwickelt. Seine Hauptfunktion besteht darin, die heruntergeladene CDM-Schemaversion (`&CDM_Download_SchemaVer`) mit der aktuell gültigen DDL-Version des CDM-Schemas (`&CDM_DDL_SchemaVer`) zu vergleichen. Im Falle einer Inkompatibilität meldet das Makro einen Fehler, indem es einen Rückgabecode (`rc=1`) und eine Fehlermeldung (`CDM_ErrMsg`) definiert, und leitet dann den Ausführungsfluss mithilfe einer `%goto`-Anweisung zu einem Fehlerbehandlungsbereich (`ERREXIT`). Es verwendet auch `%CHECK_VERBOSE` und zeitgestempelte `%put`-Nachrichten zur Nachverfolgung.
Datenanalyse
Type : CREATION_INTERNE
Dieses Skript manipuliert keine SASHELP-Daten direkt und liest keine externen Daten über `LIBNAME`- oder `INFILE`/`SET`/`MERGE`-Anweisungen. Es basiert auf dem Vergleich von Makrovariablen (`CDM_Download_SchemaVer`, `CDM_DDL_SchemaVer`), die vor dem Skript, möglicherweise aus Metadaten oder Konfigurationsdateien, initialisiert werden sollen.
1 Codeblock
MACRO
Erklärung : Dieser Block definiert das Makro `%cdm_validate_schemas`. Er beginnt mit dem Aufruf eines weiteren Makros `%CHECK_VERBOSE` (dessen Code hier nicht enthalten ist) und zeigt eine zeitgestempelte Meldung an, die den Beginn der Validierung signalisiert. Eine Rückgabevariable `rc` wird auf 0 initialisiert. Der Kern der Logik ist eine `%if`-Anweisung, die die Werte zweier Makrovariablen, `&CDM_Download_SchemaVer` und `&CDM_DDL_SchemaVer`, vergleicht. Wenn diese Versionen unterschiedlich sind, wird eine Fehlermeldung mit den inkompatiblen Versionen angezeigt, die Variable `rc` wird auf 1 gesetzt, um einen Fehler anzuzeigen, und eine Makrovariable `CDM_ErrMsg` wird befüllt. Die Ausführung wird dann über ein `%goto` zu dem Label `%ERREXIT:` umgeleitet, das einen Exit- oder Fehlerbehandlungspunkt im Makro darstellt. Das Makro endet mit `%mend`.
Kopiert!
%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;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.