<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: user info from smc in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/user-info-from-smc/m-p/535407#M147018</link>
    <description>&lt;P&gt;Hi woo&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It does not work for me either. The mduextr macro works fine, but the groups are not merged. I guess that if this code ever worked, it must have been in a older SAS version. The keys are different in version 9.5, because keyid is not in the output data set&amp;nbsp;Groupmempersons_info.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Person and Groupmempersons_info must be merged by the metadata object ID, found in Groupmempersons_info as &lt;U&gt;memId&lt;/U&gt; and in Person as &lt;U&gt;objId&lt;/U&gt;.&amp;nbsp;The result can then be merged with Logins and Email by &lt;U&gt;keyId&lt;/U&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This requires some extra sorting. I got the variables in wrong order in output, because groups were merged in before login and email, so you might have to change the merge order. In our installation we have two logins for each person, both with and without domain name in the userID, and kept only one, because otherwise I vould have had the resulting 33772 person/group combinations duplicated for each user.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%mduextr(libref=work);

/* Merge person and groupmempersons_info by internal ObjectID
  (objid in person, memid in groupmempersons_info) */
proc sort data=work.person out=work.w_person; 
	by objid;
run;
proc sort data=work.groupmempersons_info OUT=work.w_groupmempersons_info;
by memid;
run;

data work.w_metadata_users;
	merge  
		work.w_person (keep=objid keyid name DisplayName title description rename=(objid=memid) in=user)
		work.w_groupmempersons_info (keep=memid name rename=(name=groupname))
	;
	by memid;
	if user;
run;

/* Merge w_metadata_users with logins and email - all on keyid */
proc sort data=work.w_metadata_users; by keyid;
run;

* Remove duplicates from logins (userid with/without domain);
data work.w_logins; set work.logins;
	if index(userid,'\') = 0;
run;
proc sort data=work.w_logins; by keyid;
run;

proc sort data=work.email out=work.w_email; by keyid;
run;

data work.metadata_users (drop=keyid);
	merge 
		work.w_metadata_users (drop=memid in=user)
	    work.w_logins (keep=keyid UserID)
	    work.w_email (keep=keyid emailAddr)
    ;
	by keyid;
	if user;
run;

proc sort data=work.metadata_users;
  by name groupname;
run;

/* Blank out duplicate information */
data work.metadata_users_ready (drop=i);
  set work.metadata_users;
  by name;
  array a [*] name DisplayName title description emailAddr UserID;
  if not first.name then
  do i=1 to dim(a);
    a[i] = '';
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 13 Feb 2019 20:38:28 GMT</pubDate>
    <dc:creator>ErikLund_Jensen</dc:creator>
    <dc:date>2019-02-13T20:38:28Z</dc:date>
    <item>
      <title>user info from smc</title>
      <link>https://communities.sas.com/t5/SAS-Programming/user-info-from-smc/m-p/535301#M146974</link>
      <description>&lt;P&gt;Helllo, I am using below SAS provided code where for my final output I am&amp;nbsp;missing value for "Member_of_Group" for some users. Also, I am not receiving any error or warning message. Also, id that I am using &amp;nbsp;to run the program&amp;nbsp;is part of &amp;nbsp;"SAS Administrator" group so it should have access to pull all information from smc - Thanks. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://blogs.sas.com/content/sgf/2016/01/13/sas-administrators-tip-keeping-track-of-sas-users/" target="_blank"&gt;https://blogs.sas.com/content/sgf/2016/01/13/sas-administrators-tip-keeping-track-of-sas-users/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;anyways to modify code to get all user's group member details?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Feb 2019 17:19:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/user-info-from-smc/m-p/535301#M146974</guid>
      <dc:creator>woo</dc:creator>
      <dc:date>2019-02-13T17:19:27Z</dc:date>
    </item>
    <item>
      <title>Re: user info from smc</title>
      <link>https://communities.sas.com/t5/SAS-Programming/user-info-from-smc/m-p/535406#M147017</link>
      <description>&lt;P&gt;Hi woo&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It does not work for me either. The mduextr macro works fine, but the groups are not merged. I guess that if this code ever worked, it must have been in a older SAS version. The keys are different in version 9.5, because keyid is not in the output data set&amp;nbsp;Groupmempersons_info.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Person and Groupmempersons_info must be merged by the metadata object ID, found in Groupmempersons_info as &lt;U&gt;memId&lt;/U&gt; and in Person as &lt;U&gt;objId&lt;/U&gt;.&amp;nbsp;The result can then be merged with Logins and Email by &lt;U&gt;keyId&lt;/U&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This requires some extra sorting. I got the variables in wrong order in output, because groups were merged in before login and email, so you might have to change the merge order. In our installation we have two logins for each person, both with and without domain name in the userID, and kept only one, because otherwise I vould have had the resulting 33772 person/group combinations duplicated for each user.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%mduextr(libref=work);

/* Merge person and groupmempersons_info by internal ObjectID
  (objid in person, memid in groupmempersons_info) */
proc sort data=work.person out=work.w_person; 
	by objid;
run;
proc sort data=work.groupmempersons_info OUT=work.w_groupmempersons_info;
by memid;
run;

data work.w_metadata_users;
	merge  
		work.w_person (keep=objid keyid name DisplayName title description rename=(objid=memid) in=user)
		work.w_groupmempersons_info (keep=memid name rename=(name=groupname))
	;
	by memid;
	if user;
run;

/* Merge w_metadata_users with logins and email - all on keyid */
proc sort data=work.w_metadata_users; by keyid;
run;

* Remove duplicates from logins (userid with/without domain);
data work.w_logins; set work.logins;
	if index(userid,'\') = 0;
run;
proc sort data=work.w_logins; by keyid;
run;

proc sort data=work.email out=work.w_email; by keyid;
run;

data work.metadata_users (drop=keyid);
	merge 
		work.w_metadata_users (drop=memid in=user)
	    work.w_logins (keep=keyid UserID)
	    work.w_email (keep=keyid emailAddr)
    ;
	by keyid;
	if user;
run;

proc sort data=work.metadata_users;
  by name groupname;
run;

/* Blank out duplicate information */
data work.metadata_users_ready (drop=i);
  set work.metadata_users;
  by name;
  array a [*] name DisplayName title description emailAddr UserID;
  if not first.name then
  do i=1 to dim(a);
    a[i] = '';
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 13 Feb 2019 20:36:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/user-info-from-smc/m-p/535406#M147017</guid>
      <dc:creator>ErikLund_Jensen</dc:creator>
      <dc:date>2019-02-13T20:36:51Z</dc:date>
    </item>
    <item>
      <title>Re: user info from smc</title>
      <link>https://communities.sas.com/t5/SAS-Programming/user-info-from-smc/m-p/535407#M147018</link>
      <description>&lt;P&gt;Hi woo&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It does not work for me either. The mduextr macro works fine, but the groups are not merged. I guess that if this code ever worked, it must have been in a older SAS version. The keys are different in version 9.5, because keyid is not in the output data set&amp;nbsp;Groupmempersons_info.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Person and Groupmempersons_info must be merged by the metadata object ID, found in Groupmempersons_info as &lt;U&gt;memId&lt;/U&gt; and in Person as &lt;U&gt;objId&lt;/U&gt;.&amp;nbsp;The result can then be merged with Logins and Email by &lt;U&gt;keyId&lt;/U&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This requires some extra sorting. I got the variables in wrong order in output, because groups were merged in before login and email, so you might have to change the merge order. In our installation we have two logins for each person, both with and without domain name in the userID, and kept only one, because otherwise I vould have had the resulting 33772 person/group combinations duplicated for each user.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%mduextr(libref=work);

/* Merge person and groupmempersons_info by internal ObjectID
  (objid in person, memid in groupmempersons_info) */
proc sort data=work.person out=work.w_person; 
	by objid;
run;
proc sort data=work.groupmempersons_info OUT=work.w_groupmempersons_info;
by memid;
run;

data work.w_metadata_users;
	merge  
		work.w_person (keep=objid keyid name DisplayName title description rename=(objid=memid) in=user)
		work.w_groupmempersons_info (keep=memid name rename=(name=groupname))
	;
	by memid;
	if user;
run;

/* Merge w_metadata_users with logins and email - all on keyid */
proc sort data=work.w_metadata_users; by keyid;
run;

* Remove duplicates from logins (userid with/without domain);
data work.w_logins; set work.logins;
	if index(userid,'\') = 0;
run;
proc sort data=work.w_logins; by keyid;
run;

proc sort data=work.email out=work.w_email; by keyid;
run;

data work.metadata_users (drop=keyid);
	merge 
		work.w_metadata_users (drop=memid in=user)
	    work.w_logins (keep=keyid UserID)
	    work.w_email (keep=keyid emailAddr)
    ;
	by keyid;
	if user;
run;

proc sort data=work.metadata_users;
  by name groupname;
run;

/* Blank out duplicate information */
data work.metadata_users_ready (drop=i);
  set work.metadata_users;
  by name;
  array a [*] name DisplayName title description emailAddr UserID;
  if not first.name then
  do i=1 to dim(a);
    a[i] = '';
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Feb 2019 20:38:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/user-info-from-smc/m-p/535407#M147018</guid>
      <dc:creator>ErikLund_Jensen</dc:creator>
      <dc:date>2019-02-13T20:38:28Z</dc:date>
    </item>
    <item>
      <title>Re: user info from smc</title>
      <link>https://communities.sas.com/t5/SAS-Programming/user-info-from-smc/m-p/535424#M147025</link>
      <description>&lt;P&gt;make sense, thanks&amp;nbsp;Erik, worked fine.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Feb 2019 21:39:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/user-info-from-smc/m-p/535424#M147025</guid>
      <dc:creator>woo</dc:creator>
      <dc:date>2019-02-13T21:39:24Z</dc:date>
    </item>
  </channel>
</rss>

