32 ,outds=work.mm_getGroups
38%let oldrepo=%sysfunc(getoption(metarepository));
39%
if &mDebug=1 %then %let mD=;
41%&mD.put Executing mm_getGroups.sas;
46%
if &oldrepo ne &repo %then %
do;
47 options metarepository=&repo;
50%
if %length(&user)=0 %then %
do;
51 data &outds (keep=groupuri groupname groupdesc);
52 length groupuri groupname groupdesc group_or_role $256;
53 call missing(of _all_);
56 (metadata_getnobj(
"omsobj:IdentityGroup?@Id contains '.'",i,groupuri)>0);
57 rc=metadata_getattr(groupuri,
"Name", groupname);
58 rc=metadata_getattr(groupuri,
"Desc", groupdesc);
59 rc=metadata_getattr(groupuri,
"PublicType",group_or_role);
60 if Group_or_Role =
'UserGroup' then output;
66 data &outds (keep=groupuri groupname groupdesc);
67 length uri groupuri groupname groupdesc group_or_role $256;
68 call missing(of _all_);
69 rc=metadata_getnobj(
"omsobj:Person?@Name='&user'",1,uri);
71 putlog
"%str(WARN)ING: rc=" rc
"&user not found "
72 ", or there was an issue reading the repository.";
76 grpassn=metadata_getnasn(uri,
"IdentityGroups",a,groupuri);
77 if grpassn in (-3,-4) then do;
78 putlog "%str(WARN)ING: No metadata groups found for &user";
81 else do while (grpassn > 0);
82 rc=metadata_getattr(groupuri, "Name", groupname);
83 rc=metadata_getattr(groupuri, "Desc", groupdesc);
85 rc=metadata_getattr(groupuri,"PublicType",group_or_role);
86 if Group_or_Role = 'UserGroup' then output;
87 grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);
92%if &oldrepo ne &repo %then %do;
93 options metarepository=&oldrepo;