Veröffentlicht am :

Extrahieren von Job-Quellpfaden aus Metadaten

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Dieses Programm stellt eine Verbindung zu einem SAS© 9 Metadatenserver her (über die Optionen `metaserver`, `metaport` usw.), um alle 'Job'-Objekte zu inventarisieren. Für jeden gefundenen Job navigiert es durch die Metadaten-Assoziationen, um die zugehörige Quellcodedatei ('SourceCode') und ihr übergeordnetes Verzeichnis ('Directories') zu identifizieren, um den vollständigen Dateipfad zu rekonstruieren.
Datenanalyse

Type : EXTERNE


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.
Kopiert!
1options metaserver="meta.demo.sas.com"
2 metaport=8561
3 metauser="sasadm @saspw"
4 metapass="password"
5 metarepository=Foundation
6 metaprotocol=bridge;
2 Codeblock
DATA STEP Data
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!
1DATA SOURCE;
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 THEN DO 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. */
25RUN;
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 © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.