30 ,outds=work.mm_getGroups
36 %let oldrepo=%sysfunc(getoption(metarepository));
37 %
if &mDebug=1 %then %let mD=;
38 %
else %let mD=%str(*);
39 %&mD.put Executing mm_getGroups.sas;
43 %
if &oldrepo ne &repo %then %
do;
44 options metarepository=&repo;
47 %
if %length(&user)=0 %then %
do;
48 data &outds (keep=groupuri groupname groupdesc);
49 length groupuri groupname groupdesc group_or_role $256;
50 call missing(of _all_);
53 (metadata_getnobj(
"omsobj:IdentityGroup?@Id contains '.'",i,groupuri)>0);
54 rc=metadata_getattr(groupuri,
"Name", groupname);
55 rc=metadata_getattr(groupuri,
"Desc", groupdesc);
56 rc=metadata_getattr(groupuri,
"PublicType",group_or_role);
57 if Group_or_Role =
'UserGroup' then output;
63 data &outds (keep=groupuri groupname groupdesc);
64 length uri groupuri groupname groupdesc group_or_role $256;
65 call missing(of _all_);
66 rc=metadata_getnobj(
"omsobj:Person?@Name='&user'",1,uri);
68 putlog
"%str(WARN)ING: rc=" rc
"&user not found "
69 ", or there was an issue reading the repository.";
73 grpassn=metadata_getnasn(uri,
"IdentityGroups",a,groupuri);
74 if grpassn in (-3,-4) then do;
75 putlog "%str(WARN)ING: No metadata groups found for &user";
78 else do while (grpassn > 0);
79 rc=metadata_getattr(groupuri, "Name", groupname);
80 rc=metadata_getattr(groupuri, "Desc", groupdesc);
82 rc=metadata_getattr(groupuri,"PublicType",group_or_role);
83 if Group_or_Role = 'UserGroup' then output;
84 grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);
89 %if &oldrepo ne &repo %then %do;
90 options metarepository=&oldrepo;