Veröffentlicht am :
Berichterstellung CREATION_INTERNE

Aufruf zur Berichtserstellung

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Makro `call_create_report` ist dafür konzipiert, von einem Shell-Skript aufgerufen zu werden. Es ruft eine Zeichenkette über die Systemvariable `SYSPARM` ab, die es parst, um eine `id_report_control` und ein `rundate` zu extrahieren. Anschließend berechnet es einen `datestamp` (aktuelles Datum) und einen `timestamp` (aktuelle Minutenzeit) mithilfe von SAS©-Funktionen. Schließlich übergibt es all diese Parameter an ein Makro `create_report` (dessen Code hier nicht enthalten ist), das für die eigentliche Logik der Berichtserstellung verantwortlich ist. Globale SAS©-Optionen sind definiert, um das Debugging und die Verwaltung von Makrovariablen zu verbessern.
Datenanalyse

Type : CREATION_INTERNE


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.
Kopiert!
1%macro call_create_report();
2%let SYSPARM=&SYSPARM ;
3%put SYSPARM=&SYSPARM;
4 
2 Codeblock
DATA STEP Data
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!
1 DATA _null_ ;
2 call symput('id_report_control',trim(left(scan("&SYSPARM",1,',')))) ;
3 call symput('rundate',trim(left(scan("&SYSPARM",2,',')))) ;
4 RUN ;
3 Codeblock
MACRO Data
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!
1 /* rundate is the date variable of the extraction*/
2 %let rundate = %SYSFUNC(INPUTN(&rundate,yymmdd8.));
3 %put rundate=%sysfunc(putn(&rundate,yymmdd10.));
4
5 /*datestamp is the wariable for the ZIP file*/
6 %let datestamp = %sysfunc(DATE(),yymmdd6.);
7 %put datestamp=&datestamp.;
8 %let zip_counter = 0;
9 /*timestamp is the wariable for the ZIP file*/
10 %let timestamp = %sysfunc(substr(%sysfunc(DATETIME(),datetime19.),11,2))0000;
11 %put timestamp=×tamp.;
4 Codeblock
MACRO
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`.
Kopiert!
1
2 %put id_report_control = &id_report_control. ;
3 %put datestamp = &datestamp. ;
4 %create_report(&id_report_control.,&datestamp.,×tamp.,&rundate.);
5%mend call_create_report;
5 Codeblock
OPTIONS / EXECUTION
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.
Kopiert!
1options mprint;
2options MVARSIZE=MAX;
3options noquotelenmax;
4%call_create_report();
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.
Urheberrechtsinformationen : ykxjlau 27.02.2013: Created.