/**
@file mm_getroles.sas
@brief Creates a table containing a list of roles
@details
Usage:
%mm_getroles()
@param [out] outds= (work.mm_getroles)
The dataset to create that contains the list of roles
@returns outds dataset containing all roles, with the following columns:
- uri
- name
@warning The following filenames are created and then de-assigned:
filename sxlemap clear;
filename response clear;
libname _XML_ clear;
@version 9.3
@author Allan Bowe
**/
%macro mm_getroles(
outds=work.mm_getroles
)/*/STORE SOURCE*/;
filename response temp;
options noquotelenmax;
proc metadata in= '$METAREPOSITORY
IdentityGroupSAS388
'
out=response;
run;
filename sxlemap temp;
data _null_;
file sxlemap;
put '';
put "/GetMetadataObjects/Objects/IdentityGroup";
put "";
put '';
put "/GetMetadataObjects/Objects/IdentityGroup/@Id";
put "";
put "characterstring32";
put '';
put "/GetMetadataObjects/Objects/IdentityGroup/@Name";
put "";
put "characterstring256";
put '';
put "/GetMetadataObjects/Objects/IdentityGroup/@Desc";
put "";
put "characterstring500";
put '
';
run;
libname _XML_ xml xmlfileref=response xmlmap=sxlemap;
proc sort data= _XML_.roles out=&outds;
by rolename;
run;
filename sxlemap clear;
filename response clear;
libname _XML_ clear;
%mend mm_getroles;