mv_getgroupmembers declared the member name at $43, and a longer name was truncated - or, on Viya, stopped the step with "Multiple lengths were specified". membername is declared at $256 in the same shape the macro now returns it: one width for every group, so the tables the caller combines are never of differing lengths, and a long active directory name is kept whole.
27 lines
913 B
SAS
27 lines
913 B
SAS
/**
|
|
@file dc_getgroupmembers.sas
|
|
@brief Gets all the memers of a group
|
|
@details There are two versions of this macro - a META and a VIYA version (in
|
|
different folders). The interfaces is the same. This version is VIYA.
|
|
|
|
<h4> SAS Macros </h4>
|
|
@li mv_getgroupmembers.sas
|
|
|
|
@version 3.5
|
|
@author 4GL Apps Ltd
|
|
@copyright 4GL Apps Ltd. This code may only be used within Data Controller
|
|
and may not be re-distributed or re-sold without the express permission of
|
|
4GL Apps Ltd.
|
|
**/
|
|
|
|
%macro dc_getgroupmembers(group,outds=dc_getgroupmembers);
|
|
%mv_getgroupmembers(%str(&group),outds=&outds)
|
|
/* membername is declared at the same $256 mv_getgroupmembers uses: the caller
|
|
combines the group tables, and a data step will not combine a variable of
|
|
differing lengths */
|
|
data &outds ;
|
|
length membername $256;
|
|
set &outds(rename=(name=MemberName));
|
|
run;
|
|
%mend dc_getgroupmembers;
|