Die verwendeten Daten sind hauptsächlich Eingabeparameter (`SYSPARM`), die als Makrovariablen behandelt werden, sowie Datum/Uhrzeit-Variablen, die dynamisch von SAS generiert werden (`DATE()`, `DATETIME()`). Es gibt in diesem Codefragment keine explizite Datenlesung aus SASHELP-Tabellen oder externen Quellen, außer dem, was vom nicht bereitgestellten `create_report`-Makro gehandhabt werden könnte.
1 Codeblock
MACRO
Erklärung : Definiert den Beginn des Makros `call_create_report` und initialisiert die Makrovariable `SYSPARM` mit dem Wert, der über die Befehlszeile an SAS übergeben wurde, und zeigt ihn dann im Log an.
Erklärung : Dieser `DATA _NULL_`-Block wird verwendet, um Werte aus der Makrovariablen `SYSPARM` zu extrahieren. Die Funktion `SCAN` trennt die Elemente durch Kommas, und `CALL SYMPUT` weist sie neuen Makrovariablen (`id_report_control` und `rundate`) zu.
Kopiert!
data _null_ ;
call symput('id_report_control',trim(left(scan("&SYSPARM",1,',')))) ;
call symput('rundate',trim(left(scan("&SYSPARM",2,',')))) ;
run ;
Erklärung : Dieser Block verwendet die Makrofunktionen `%SYSFUNC`, um Daten und Uhrzeiten zu manipulieren und zu formatieren. `rundate` wird in das SAS-Datumsformat konvertiert, `datestamp` erhält das Systemdatum im Format JJMMTT und `timestamp` extrahiert die Uhrzeit des System-Zeitstempels im Format HH0000. Eine Variable `zip_counter` wird auf 0 initialisiert.
Kopiert!
/* rundate is the date variable of the extraction*/
%let rundate = %SYSFUNC(INPUTN(&rundate,yymmdd8.));
%put rundate=%sysfunc(putn(&rundate,yymmdd10.));
/*datestamp is the wariable for the ZIP file*/
%let datestamp = %sysfunc(DATE(),yymmdd6.);
%put datestamp=&datestamp.;
%let zip_counter = 0;
/*timestamp is the wariable for the ZIP file*/
%let timestamp = %sysfunc(substr(%sysfunc(DATETIME(),datetime19.),11,2))0000;
%put timestamp=×tamp.;
1
/* rundate is the date variable of the extraction*/
Erklärung : Zeigt die endgültigen Werte der Makrovariablen `id_report_control` und `datestamp` im Log an. Anschließend ruft es das Makro `create_report` (nicht in diesem Code definiert) auf und übergibt alle vorbereiteten Makrovariablen als Parameter. `ABSOLUTE` ist ein Tippfehler und ungültig. Schließlich beendet `ABSOLUTE` die Definition des Makros `call_create_report`.
Erklärung : Definiert globale SAS-Optionen: `MPRINT` zur Anzeige der von Makros generierten Codezeilen, `MVARSIZE=MAX` zur Zulassung großer Makrovariablen und `NOQUOTELENMAX` zur Deaktivierung der Kürzung von Zeichenketten in Anführungszeichen. Schließlich wird das Makro `call_create_report` ausgeführt.
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.