Veröffentlicht am :

Erstellung eines Metadatenordners

Dieser Code ist auch verfügbar auf: English Español Français
Attention : Dieser Code erfordert Administratorrechte.
Das Makro `mmx_createmetafolder` nimmt als Parameter den Speicherort des Ordners (`loc`), den Benutzernamen (`user`) und das Passwort (`pass`) entgegen, um sich mit dem Metadatenserver zu verbinden. Es ruft die Verbindungsinformationen (Host und Port) aus den SAS©-Systemoptionen (`metaserver`, `metaport`) ab. Ein Pfad zu einem externen Tool (`sas©-make-folder`) wird konstruiert. Das Makro führt dann diesen externen Befehl über eine `DATA _NULL_`-Anweisung mit der Option `pipe` aus, um den Metadatenordner unter Verwendung der Verbindungsinformationen und des angegebenen Pfades zu erstellen. Nach dem Erstellungsversuch wird die Funktion `metadata_pathobj` verwendet, um zu überprüfen, ob der Ordner erfolgreich erstellt wurde. Wenn der Ordner nicht existiert, wird das Makro `mp_abort` aufgerufen, um die Ausführung zu beenden und einen Fehler zu melden.
Datenanalyse

Type : EXTERNE


Das Skript interagiert mit dem SAS-Metadatenserver für die Erstellung und Überprüfung des Ordners. Es verwendet die Systemoptionen `metaserver` und `metaport` für die Verbindung. Darüber hinaus führt es einen externen Systembefehl (`sas-make-folder`) über die `pipe`-Anweisung aus, was eine Interaktion mit der zugrunde liegenden Betriebssystemumgebung impliziert. Es verarbeitet keine traditionellen externen Datendateien (CSV, Excel usw.), die nicht vom Skript selbst oder den SASHELP-Bibliotheken verwaltet würden.

1 Codeblock
MACRO CALL / DATA STEP
Erklärung :
Dieser Block initialisiert lokale Makrovariablen (`host`, `port`, `path`, `connx_string`, `msg`). Er ruft den Host und Port des SAS-Metadatenservers über die Funktion `getoption` ab. Anschließend konstruiert er die Verbindungszeichenfolge (`connx_string`), die die bereitgestellten Anmeldeinformationen enthält, und einen Pfad (`path`) zu einem externen Tool `sas-make-folder` (das Makro `%mf_loc` ist eine externe Abhängigkeit). Ein `DATA _NULL_`-Schritt wird mit der Anweisung `infile ... pipe` verwendet, um den externen Befehl `sas-make-folder` mit den definierten Parametern auszuführen, um den Metadatenordner zu erstellen. Die Ausgabe des Befehls wird über `putlog _infile_` an das SAS-Log geleitet.
Kopiert!
1%local host port path connx_string msg;
2%let host=%sysfunc(getoption(metaserver));
3%let port=%sysfunc(getoption(metaport));
4%let path=%mf_loc(POF)/tools;
5 
6%let connx_string= -host &host -port &port -user '&user' -password '&pass';
7/* remove directory */
8DATA _null_;
9 INFILE " &path/sas-make-folder &connx_string ""&loc"" 2>&1"
10 pipe lrecl=10000;
11 INPUT;
12 putlog _infile_;
13RUN;
2 Codeblock
DATA STEP / MACRO CALL
Erklärung :
Dieser Block überprüft die Erstellung des Ordners und handhabt Fehler. Ein `DATA _NULL_`-Schritt verwendet die Funktion `metadata_pathobj`, um den Metadatenserver nach dem Typ des existierenden Objekts am durch `&loc` angegebenen Speicherort abzufragen. Das Ergebnis, das den Objekttyp (z.B. 'Tree' für einen Ordner) angibt, wird über `call symputx` in der lokalen Makrovariablen `foldertype` gespeichert. Wenn `foldertype` nicht 'Tree' ist, wird das Makro `%mp_abort` (ein Abbruchmakro mit Fehlermeldung) aufgerufen, was darauf hinweist, dass der Speicherort nicht korrekt erstellt wurde.
Kopiert!
1DATA _null_; /* check tree exists */
2 LENGTH type uri $256;
3 rc=metadata_pathobj("","&loc","Folder",type,uri);
4 call symputx('foldertype',type,'l');
5RUN;
6%let msg=Location (&loc) was not created!!;
7%mp_abort(iftrue= (&foldertype ne Tree)
8 ,mac=&_program..sas
9 ,msg=%superq(msg)
10)
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 : Der Code verweist auf mehrere Urheberrechtsquellen: 'Allan Bowe' (Autor im Hilfeblock der Hauptdatei erwähnt), 'Copyright (c) 2001-2006 Rodney Sparapani' (unter GNU GPL-Lizenz, aus _version.sas), 'Copyright 2010-2023 HMS Analytical Software GmbH' (aus macro_without_brief_tag.sas) und 'Copyright © 2022, SAS Institute Inc.' (aus print_macro_parameters.sas und der HTML-Dokumentation).