- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2018 12:12 AM
Hello,
I'm trying to fetch users list that belongs to a selected group and filter by username.
I haven't found a way to do it (unless fetch all group users and then fetch each user and then filter by names).
Can you guide me for a way to do it, please?
thanks
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2018 01:12 PM
As far as I know the REST API only returns information on the fields that exist on that table. So, in this case you could get the list of users within the a specific group or groups and then send another call to the sys_user table to get more information from the user record. Or if you simply need the actual name of the user you can set the sysparm_display_value parameter to "all" and it will give you the display value and the sys_id of the user.
To filter based on user name (I'm assuming the user id/login id) then you would set that in the sysparm_query parameter like so: sysparm_query=user.user_nameLIKEchris
For example let's say I need to pull the users from the Service Desk group that have a "W" in their user_name and only bring back the user and group fields with display value and sys_ids using the REST Table API, the end point would look like this:
https:// <instance-name>.service-now.com/api/now/table/sys_user_grmember?sysparm_query=group.name=Service%20Desk^user.user_nameLIKEW&sysparm_display_value=all&sysparm_fields=user,group
The response would give me this from a PDI with OOB Demo Data:
{
"result": [
{
"user": {
"display_value": "Howard Johnson",
"link": "https://<instnace-name>.service-now.com/api/now/table/sys_user/46ca0887a9fe19810191e08e51927ebf",
"value": "46ca0887a9fe19810191e08e51927ebf"
},
"group": {
"display_value": "Service Desk",
"link": "https://<instnace-name>.service-now.com/api/now/table/sys_user_group/d625dccec0a8016700a222a0f7900d06",
"value": "d625dccec0a8016700a222a0f7900d06"
}
},
{
"user": {
"display_value": "Rob Woodbyrne",
"link": "https://<instnace-name>.service-now.com/api/now/table/sys_user/8d5938070a0a0a6b00f8a5e8d3375606",
"value": "8d5938070a0a0a6b00f8a5e8d3375606"
},
"group": {
"display_value": "Service Desk",
"link": "https://<instnace-name>.service-now.com/api/now/table/sys_user_group/d625dccec0a8016700a222a0f7900d06",
"value": "d625dccec0a8016700a222a0f7900d06"
}
}
]
}
If you needed more information and need to also tie in the group and only want to do it in one call, then a Scripted REST API would be the better way to go than the OOB setup.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2018 11:37 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2018 11:51 AM
Thanks for replay
sys_user_grmember is returning only user sys_id, is it a way to return more user data (and also filer by user name)?
thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2018 01:12 PM
As far as I know the REST API only returns information on the fields that exist on that table. So, in this case you could get the list of users within the a specific group or groups and then send another call to the sys_user table to get more information from the user record. Or if you simply need the actual name of the user you can set the sysparm_display_value parameter to "all" and it will give you the display value and the sys_id of the user.
To filter based on user name (I'm assuming the user id/login id) then you would set that in the sysparm_query parameter like so: sysparm_query=user.user_nameLIKEchris
For example let's say I need to pull the users from the Service Desk group that have a "W" in their user_name and only bring back the user and group fields with display value and sys_ids using the REST Table API, the end point would look like this:
https:// <instance-name>.service-now.com/api/now/table/sys_user_grmember?sysparm_query=group.name=Service%20Desk^user.user_nameLIKEW&sysparm_display_value=all&sysparm_fields=user,group
The response would give me this from a PDI with OOB Demo Data:
{
"result": [
{
"user": {
"display_value": "Howard Johnson",
"link": "https://<instnace-name>.service-now.com/api/now/table/sys_user/46ca0887a9fe19810191e08e51927ebf",
"value": "46ca0887a9fe19810191e08e51927ebf"
},
"group": {
"display_value": "Service Desk",
"link": "https://<instnace-name>.service-now.com/api/now/table/sys_user_group/d625dccec0a8016700a222a0f7900d06",
"value": "d625dccec0a8016700a222a0f7900d06"
}
},
{
"user": {
"display_value": "Rob Woodbyrne",
"link": "https://<instnace-name>.service-now.com/api/now/table/sys_user/8d5938070a0a0a6b00f8a5e8d3375606",
"value": "8d5938070a0a0a6b00f8a5e8d3375606"
},
"group": {
"display_value": "Service Desk",
"link": "https://<instnace-name>.service-now.com/api/now/table/sys_user_group/d625dccec0a8016700a222a0f7900d06",
"value": "d625dccec0a8016700a222a0f7900d06"
}
}
]
}
If you needed more information and need to also tie in the group and only want to do it in one call, then a Scripted REST API would be the better way to go than the OOB setup.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2018 10:29 PM
thanks for detailed replay. it will help for my needs