31%macro mm_getgroupmembers(
33 ,outds=work.mm_getgroupmembers
39 attrib uriGrp uriMem GroupId GroupName Group_or_Role MemberName MemberType
42 rcGrp rcMem rc i j length=3;
43 call missing (of _all_);
44 drop uriGrp uriMem rcGrp rcMem rc i j arc ;
47 * Grab the URI
for the first Group ;
49 rcGrp=metadata_getnobj(
"omsobj:IdentityGroup?@Name='&group'",i,uriGrp);
52 rcGrp=metadata_getnobj(
"omsobj:IdentityGroup?@Id='&group'",i,uriGrp);
54 * If Group found, enter
do loop ;
56 call missing (rcMem,uriMem,GroupId,GroupName,Group_or_Role
57 ,MemberName,MemberType);
59 rc = metadata_getattr(uriGrp,
"Id",GroupId);
60 rc = metadata_getattr(uriGrp,
"Name",GroupName);
61 rc = metadata_getattr(uriGrp,
"PublicType",Group_or_Role);
62 rc = metadata_getattr(uriGrp,
"Desc",GroupDesc);
64 do while (metadata_getnasn(uriGrp,
"MemberIdentities",j,uriMem) > 0);
65 call missing (MemberName, MemberType, email);
66 rc = metadata_getattr(uriMem,
"Name",MemberName);
67 rc = metadata_getattr(uriMem,
"PublicType",MemberType);
68 if membertype=
'User' and
"&emails"=
'YES' then
do;
69 if metadata_getnasn(uriMem,
"EmailAddresses",1,euri)>0 then
do;
70 arc=metadata_getattr(euri,
"Address",email);
79%mend mm_getgroupmembers;