Known Issue: All users are not retrieved when using the URM service UMUser SmartObject
KB003689
PRODUCTIssue
When using the User Role Management service’s UMUser SmartObject to retrieve users, all users are not retrieved.
Cause
The User Role Management service has a limit of 100 users by default. This is to improve performance by not retrieving all users at once.
When using the URM service UMUser SmartObject, and building a filter that references the FQN, the FQN is not passed into the underlying identity provider like the other fields. This is because the FQN is not provided by the identity provider, instead it is built by the URM service as a combination of the Label and the Name. The filter is applied only after the values are received from the identity provider. When the FQN value used in the filter is not in the top 100 users retrieved by the identity provider, the result may be empty.
Resolution
Use one of the options below to resolve the issue.
- Create a new URM service instance and set a groupname - This ignores the 100 user limitation and retrieves all users in that group. You can use a specific group that is relevant to a specific solution. This is the preferred solution since the scope can be controlled per solution requirements
- Create a new URM service instance with a different size limit – This allows you to increase the limit according to your requirements
To retrieve large numbers of users, we recommend you use one of the following options:
- Use Name as the identifier instead of the FQN in the Picker control – This allows you to pass the filter value to the identity provider. The filter uses “WHERE Name equals [value transferred]” and applies before the 100 user limit.
- Use a previously resolved display property instead of resolving the value in a list – This allows you to store and use resolved list values.
Create a new URM service instance and set a groupname
- In Management, create a new instance of the User Role Manager Service.
- Change the groupname to the specific URM group that you want to retrieve users for in the control.
Create a new URM service instance with a different size limit
- In Management, create a new instance of the User Role Manager Service.
- Change the size to the preferred size.
Use Name as the identifier instead of FQN
- In K2 Designer, configure the Data Source of your Picker control by clicking the menu next to SmartObject.
- Select Name from the Identifier drop-down.
Use a previously resolved display property instead of resolving the value in a list
This option applies when you are working with a list of values. You can create a second property in the SmartObject to store the resolved display template. The idea is to maintain a resolved version each time a value is edited, not to resolve the values when displayed as a list but rather show this field. Download the Using the Picker control’s display property with the URM Service document attached to this article to see how to implement this scenario.