So guys.. thanks for your help. The solution that worked was a mix of what you guys sent me and a lot of other stuff. Define Metadata Server connection. */ options metaserver="meta.demo.sas.com" metaport=8561 metauser="sasadm@saspw" metapass="password" metarepository=Foundation metaprotocol=bridge; data work.libinfo; /*declare and initialize variables */ length type $ 20 lib_ref $ 8 lib_uri lib_name app_uri app_name dir_uri tab_uri tab_name $ 50 id lib_id $ 17 path $ 255; keep lib_ref lib_name tab_name; call missing(type,id,lib_uri,lib_name,app_uri,app_name,dir_uri,path); obj="omsobj:SASLibrary?@Id contains '.'"; /* Define library search parameters. */ /* Search Metadata for libraries */ libcount=metadata_resolve(obj,type,id); put "INFO: Found " libcount "libraries."; if libcount > 0 then do n=1 to libcount; /* for each library found, extract name and associated properties (first associated application server, path) */ rc=metadata_getnobj(obj,n,lib_uri); rc=metadata_getattr(lib_uri,"Name",lib_name); rc=metadata_getattr(lib_uri,"Id",lib_id); rc=metadata_getattr(lib_uri,"Libref",lib_ref); rc=metadata_getnasn(lib_uri,"DeployedComponents",1,app_uri); rc=metadata_getattr(app_uri,"Name",app_name); rc=metadata_getnasn(lib_uri,"UsingPackages",1,dir_uri); rc=metadata_getattr(dir_uri,"DirectoryName",path); /* Define a query to search for any tables associated with the library in Metadata. */ tabobj="omsobj:PhysicalTable?PhysicalTable[TablePackage/SASLibrary[@Id='"||lib_id||"']]"; /* Count how many associations exist. */ tabcount=metadata_resolve(tabobj,type,id); /* If there are any, pull the name of each one and write out the data set. */ if tabcount > 0 then do t=1 to tabcount; rc=metadata_getnobj(tabobj,t,tab_uri); rc=metadata_getattr(tab_uri,"Name",tab_name); output; /* Push results to table */ end; call missing (path); /* clear path variable. */ end; else put "INFO: No libraries to resolve."; run;
... View more