Die Daten stammen vom SAS Metadatenserver (SAS 9). Das Skript verwendet die Metadaten-Schnittstellenfunktionen (`metadata_resolve`, `metadata_getnobj`, `metadata_getattr`, `metadata_getnasn`), um die Informationen zu extrahieren.
1 Codeblock
OPTIONS
Erklärung : Konfiguration der Verbindung zum SAS 9 Metadatenserver. Die Anmeldeinformationen (hier 'sasadm') und die Serveradresse werden angegeben, um die Abfrage zu ermöglichen.
Erklärung : Der Haupt-Data-Schritt, der die Extraktion durchführt. Er initialisiert eine Suche nach 'Job'-Objekten (Hinweis: Die Suchzeichenfolge `omsobj:Job?...` scheint ein Artefakt einer Dateiinjektion im Original-Prompt zu enthalten, das wahrscheinlich ` @Id` ersetzt). Anschließend durchläuft er jeden gefundenen Job, um seinen Namen, das verknüpfte Quellobjekt und dann das Verzeichnis dieser Datei abzurufen und alles zu verketten, um den `source`-Pfad zu bilden.
Kopiert!
data source;
keep job_name source; /* Retain only the job name and it's source code full path. */
/* Initialize variables. */
length type id job_uri job_name file_uri file_name dir_uri path $ 50;
call missing (of _character_);
obj="omsobj:Job? @code_sas_json/_render_idcolumn.json contains '.'"; /* Search critera for Jobs. */
job_count=metadata_resolve(obj,type,id); /* Count all jobs. Only run loop if jobs exist. */
if job_count > 0 then do i=1 to job_count; /* Loop: For each job found, get attributes and associations. */
rc=metadata_getnobj(obj,i,job_uri);
rc=metadata_getattr(job_uri,"Name",job_name); /* Get job name. */
rc=metadata_getnasn(job_uri,"SourceCode",1,file_uri); /* Get file Metadata object id. */
rc=metadata_getattr(file_uri,"Name",file_name); /* Get file name. */
rc=metadata_getnasn(file_uri,"Directories",1,dir_uri); /* Get directory Metadata object id. */
rc=metadata_getattr(dir_uri,"DirectoryName",path); /* Get path to directory. */
source=catx('/',path,file_name); /* combine directory path and file name to create full path to file.*/
output;
end; /* End loop. */
else put "WARN: No jobs found in Metadata."; /* If no jobs are found, write a message to the log. */
run;
1
DATASOURCE;
2
3
keep job_name SOURCE; /* Retain only the job name and it's source code full path. */
4
5
/* Initialize variables. */
6
7
LENGTH type id job_uri job_name file_uri file_name dir_uri path $ 50;
8
call missing (of _character_);
9
10
obj="omsobj:Job? @code_sas_json/_render_idcolumn.json contains '.'"; /* Search critera for Jobs. */
11
12
job_count=metadata_resolve(obj,type,id); /* Count all jobs. Only run loop if jobs exist. */
13
14
IF job_count > 0 THENDO i=1 to job_count; /* Loop: For each job found, get attributes and associations. */
15
rc=metadata_getnobj(obj,i,job_uri);
16
rc=metadata_getattr(job_uri,"Name",job_name); /* Get job name. */
17
rc=metadata_getnasn(job_uri,"SourceCode",1,file_uri); /* Get file Metadata object id. */
18
rc=metadata_getattr(file_uri,"Name",file_name); /* Get file name. */
19
rc=metadata_getnasn(file_uri,"Directories",1,dir_uri); /* Get directory Metadata object id. */
20
rc=metadata_getattr(dir_uri,"DirectoryName",path); /* Get path to directory. */
21
SOURCE=catx('/',path,file_name); /* combine directory path and file name to create full path to file.*/
22
OUTPUT;
23
END; /* End loop. */
24
ELSE put "WARN: No jobs found in Metadata."; /* If no jobs are found, write a message to the log. */
25
RUN;
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.