> For the complete documentation index, see [llms.txt](https://developer.collibra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.collibra.com/workflows/designing-workflows/processes/shape-repository/service-task/delegates/getusernames-delegate.md).

# GetUserNames delegate

The **GetUserNames** delegate gathers all userNames from the given input fields. All input fields are optional. The delegate will evaluate any input and compose a CSV of all resulting usernames.

| Field name      | Required | Description                                                                                                  |
| --------------- | -------- | ------------------------------------------------------------------------------------------------------------ |
| userNames       | No       | A CSV of user names that you want to have included in the result.                                            |
| groupNames      | No       | A CSV of group names that you want to have evaluated and included in the result.                             |
| roleNames       | No       | A CSV of role names that you want to have evaluated on the current business item and included in the result. |
| userExpressions | No       | A CSV of user expressions that you want to have evaluated and included in the result.                        |
| resultVariable  | No       | The variable name to store the CSV of user names in. By default 'assembledUserNames' if not provided.        |

The delegate is deprecated. Replace your service task containing this delegate with a script task, for example:

```
<scriptTask id="scripttask1" name="Get user names" scriptFormat="groovy" activiti:autoStoreVariables="false">
    <script><![CDATA[
        import com.collibra.dgc.core.api.model.user.User;
        import com.collibra.dgc.core.api.model.usergroup.UserGroup;
        import com.collibra.dgc.core.api.dto.usergroup.FindUserGroupsRequest;
        Set<String> userNameResult = new HashSet<String>();
        userNameResult.addAll(utility.toList("${userName}"));
        userNameResult.addAll(users.getUserNames("${role}"));
        List<UserGroup> userGroupList = userGroupApi.findUserGroups(FindUserGroupsRequest.builder()
            .name("${group}")
            .nameMatchMode(MatchMode.EXACT)
            .build())
        .getResults()
        for (UserGroup userGroup : userGroupList) {
            List<User> userList = userApi.findUsers(FindUsersRequest.builder()
                .groupId(userGroup.getId())
                .build())
            .getResults()
            for (User user : userList) {
                userNameResult.add(user.getUserName());
            }
        }
        execution.setVariable("assembledUserNames", userNameResult);
    ]]></script>
</scriptTask>
```
