Das Extrahieren erweiterter Attribute ist ein entscheidender Schritt für das Audit oder die Migration komplexer SAS 9.4-Umgebungen. Besonders bei LASR-Bibliotheken werden kritische Parameter – wie Server-Ports oder Startoptionen – als Name/Wert-Paare in den Metadaten gespeichert. Der Schlüssel zu dieser Technik liegt in der Navigation der „Extensions“-Assoziation mithilfe der Funktion metadata_getnasn. Als Best Practice sollten Sie Variablen stets initialisieren und den Rückgabecode (rc) von metadata_getattr prüfen. Dies stellt sicher, dass das Attribut tatsächlich existiert, und verhindert, dass Restwerte aus dem Program Data Vector (PDV) Ihre Ausgabetabelle verfälschen.
Type : CREATION_INTERNE
Die Daten werden dynamisch durch Abfragen des Metadatenservers über SAS-Funktionen generiert, ohne das Lesen von Flatfiles oder externen Tabellen.
| 1 | %let LIBNAME='Visual Analytics LASR'; |
| 2 | |
| 3 | options |
| 4 | metaserver="my.sas.server" |
| 5 | metaport=8561 |
| 6 | metauser="sasadm @saspw" |
| 7 | metapass="password" |
| 8 | metarepository=Foundation |
| 9 | metaprotocol=bridge; |
| 1 | DATA extend; |
| 2 | LENGTH type id lib_uri ext_uri ext_name $ 50 ext_val $ 256; |
| 3 | call missing(of _CHARACTER_); |
| 4 | |
| 5 | obj="omsobj:SASLibrary? @Name=&libname"; |
| 6 | |
| 7 | libcount=metadata_resolve(obj,type,id); |
| 8 | IF libcount > 0 THEN DO n=1 to libcount; |
| 9 | rc=metadata_getnobj(obj,n,lib_uri); |
| 10 | ext_count=metadata_getnasn(lib_uri,"Extensions",1,ext_uri); |
| 11 | |
| 12 | IF ext_count > 0 THEN DO m=1 to ext_count; |
| 13 | rc=metadata_getnasn(lib_uri,"Extensions",m,ext_uri); |
| 14 | rc=metadata_getattr(ext_uri,"Name",ext_name); |
| 15 | rc=metadata_getattr(ext_uri,"Value",ext_val); |
| 16 | OUTPUT; |
| 17 | END; ELSE put "NOTE: No Extended Attributes found for library &libname"; |
| 18 | END; |
| 19 | ELSE put "NOTE: No library &libname found."; |
| 20 | |
| 21 | keep ext_name ext_val; |
| 22 | RUN; |