mirror of
https://github.com/sasjs/core.git
synced 2026-01-03 15:40:05 +00:00
feat(*): recreate library as scoped package
This commit is contained in:
65
meta/mm_getdetails.sas
Normal file
65
meta/mm_getdetails.sas
Normal file
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
@file mm_getdetails.sas
|
||||
@brief extracts metadata attributes and associations for a particular uri
|
||||
|
||||
@param uri the metadata object for which to return attributes / associations
|
||||
@param outattrs= the dataset to create that contains the list of attributes
|
||||
@param outassocs= the dataset to contain the list of associations
|
||||
|
||||
@version 9.2
|
||||
@author Allan Bowe
|
||||
|
||||
**/
|
||||
|
||||
%macro mm_getdetails(uri
|
||||
,outattrs=work.attributes
|
||||
,outassocs=work.associations
|
||||
)/*/STORE SOURCE*/;
|
||||
|
||||
data &outassocs;
|
||||
keep assoc assocuri name;
|
||||
length assoc assocuri name $256;
|
||||
call missing(of _all_);
|
||||
rc1=1;n1=1;
|
||||
do while(rc1>0);
|
||||
/* Walk through all possible associations of this object. */
|
||||
rc1=metadata_getnasl("&uri",n1,assoc);
|
||||
rc2=1;n2=1;
|
||||
do while(rc2>0);
|
||||
/* Walk through all the associations on this machine object. */
|
||||
rc2=metadata_getnasn("&uri",trim(assoc),n2,assocuri);
|
||||
if (rc2>0) then do;
|
||||
rc3=metadata_getattr(assocuri,"Name",name);
|
||||
output;
|
||||
end;
|
||||
call missing(name,assocuri);
|
||||
n2+1;
|
||||
end;
|
||||
n1+1;
|
||||
end;
|
||||
run;
|
||||
proc sort;
|
||||
by assoc name;
|
||||
run;
|
||||
|
||||
data &outattrs;
|
||||
keep type name value;
|
||||
length type $4 name $256 value $32767;
|
||||
rc1=1;n1=1;type='Prop';
|
||||
do while(rc1>0);
|
||||
rc1=metadata_getnprp("&uri",n1,name,value);
|
||||
if rc1>0 then output;
|
||||
n1+1;
|
||||
end;
|
||||
rc1=1;n1=1;type='Attr';
|
||||
do while(rc1>0);
|
||||
rc1=metadata_getnatr("&uri",n1,name,value);
|
||||
if rc1>0 then output;
|
||||
n1+1;
|
||||
end;
|
||||
run;
|
||||
proc sort;
|
||||
by type name;
|
||||
run;
|
||||
|
||||
%mend;
|
||||
Reference in New Issue
Block a user