Das Hauptskript erstellt Daten intern über `datalines4`. Das Makro `%mm_getdetails` interagiert mit dem SAS Metadata Server, um Systeminformationen (Metadaten) abzurufen. Das Makro `%macro_without_brief_tag` arbeitet mit intern übergebenen Argumenten und verarbeitet keine externen Daten.
1 Codeblock
DATA STEP Data
Erklärung : Dieser DATA Step-Block erstellt den Datensatz `work.Location`. Er definiert die Attribute der Variablen (Länge, Format, Label) und liest die im `datalines4`-Abschnitt bereitgestellten Daten. `datalines4` ermöglicht die direkte Integration von Daten in das Skript, formatiert als CSV mit einem Komma als Trennzeichen. Das Format `DATETIME22.3` gibt an, dass das Datum als numerischer SAS-Wert gespeichert wird, der Datum und Uhrzeit mit Millisekundenpräzision darstellt.
Erklärung : `PROC APPEND` wird verwendet, um alle Beobachtungen des zuvor erstellten Datensatzes `work.Location` an das Ende des Datensatzes `productn.Location` anzuhängen. Dieses Verfahren ist effizient, um neue Zeilen zu einer vorhandenen Tabelle hinzuzufügen, ohne sie komplett neu erstellen zu müssen. Es wird angenommen, dass die Tabelle `productn.Location` existiert oder durch einen anderen Prozess erstellt wird.
Erklärung : Dieser Block definiert das SAS-Makro `%macro_without_brief_tag`. Es nimmt ein Argument `i_desc` entgegen und zeigt es direkt im SAS-Log über `%PUT` an. Dieses einfache Makro dient hauptsächlich zu Test-, Debugging-Zwecken oder zur Anzeige des Wertes einer Makrovariable.
Erklärung : Dieses Makro, `%mm_getdetails`, ist dazu konzipiert, detaillierte Informationen (Attribute und Assoziationen) eines SAS-Metadatenobjekt-URI zu extrahieren. Es nimmt einen URI als Eingabe und zwei optionale Ausgabedatensätze (`outattrs` und `outassocs`). Der erste DATA Step-Block durchläuft die Assoziationen des angegebenen URI unter Verwendung der Funktionen `metadata_getnasl` und `metadata_getnasn` und extrahiert dann die Namen über `metadata_getattr`, wobei diese Informationen in `&outassocs` gespeichert werden. Der zweite DATA Step-Block extrahiert die Eigenschaften und Attribute des URI unter Verwendung von `metadata_getnprp` und `metadata_getnatr` und speichert die Details in `&outattrs`. Jeder Datensatz wird anschließend von `PROC SORT` gemäß den bereitgestellten Optionen sortiert.
Kopiert!
%macro mm_getdetails(uri
,outattrs=work.attributes
,outassocs=work.associations
,sortoptions=
)/*/STORE SOURCE*/;
data &outassocs;
keep assoc assocuri name;
length assoc assocuri name $256;
call missing(of _all_);
rc1=1;n1=1;
do while(rc1>0);
/* Walk through all possible associations of this object. */
rc1=metadata_getnasl("&uri",n1,assoc);
rc2=1;n2=1;
do while(rc2>0);
/* Walk through all the associations on this machine object. */
rc2=metadata_getnasn("&uri",trim(assoc),n2,assocuri);
if (rc2>0) then do;
rc3=metadata_getattr(assocuri,"Name",name);
output;
end;
call missing(name,assocuri);
n2+1;
end;
n1+1;
end;
run;
proc sort &sortoptions;
by assoc name;
run;
data &outattrs;
keep type name value;
length type $4 name $256 value $32767;
rc1=1;n1=1;type='Prop';name='';value='';
do while(rc1>0);
rc1=metadata_getnprp("&uri",n1,name,value);
if rc1>0 then output;
n1+1;
end;
rc1=1;n1=1;type='Attr';
do while(rc1>0);
rc1=metadata_getnatr("&uri",n1,name,value);
if rc1>0 then output;
n1+1;
end;
run;
proc sort &sortoptions;
by type name;
run;
%mend mm_getdetails;
1
%macro mm_getdetails(uri
2
,outattrs=work.attributes
3
,outassocs=work.associations
4
,sortoptions=
5
)/*/STORE SOURCE*/;
6
7
DATA &outassocs;
8
keep assoc assocuri name;
9
LENGTH assoc assocuri name $256;
10
call missing(of _all_);
11
rc1=1;n1=1;
12
DO while(rc1>0);
13
/* Walk through all possible associations of this object. */
14
rc1=metadata_getnasl("&uri",n1,assoc);
15
rc2=1;n2=1;
16
DO while(rc2>0);
17
/* Walk through all the associations on this machine object. */
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 : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. Diese Datei ist Teil von SASUnit, dem Unit-Test-Framework für SAS(R)-Programme. Informationen zu Copyright und Nutzungsbedingungen unter der GNU Lesser General Public License finden Sie in der beigefügten Datei README.md oder unter https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.
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.