Hi,
I'm trying set up a user picker in one of my forms with the following user filter:
I have also tried setting the user filter to :
users."Unique Id" is not null
But the result is the same: I see no users in the popup window.
If I set the user filter to something like users."Department" like "%STRING%" then the user picker behaves as expected.
I see the following in the aveksaSever.log:
01/15/2019 11:02:31.333 ERROR (default task-7) [com.aveksa.gui.components.table.core.DefaultTableModel]
com.aveksa.server.filter.FilterException: Exception while executing filter query
at com.aveksa.server.filter.ObjectListFilter.getCountOfFilteredObjects(ObjectListFilter.java:136)
at com.aveksa.gui.objects.ObjectStore.getUsersCount(ObjectStore.java:2355)
at com.aveksa.gui.components.objectPicker.single.user.UserPickerTable.getObjectCount(UserPickerTable.java:34)
at com.aveksa.gui.components.objectPicker.single.user.FilteredUserPickerTable.getObjectCount(FilteredUserPickerTable.java:53)
at com.aveksa.gui.components.table.core.DefaultTableModel.getNumRows(DefaultTableModel.java:60)Caused by: com.aveksa.server.db.PersistenceException: n/a
at com.aveksa.server.db.persistence.PersistenceServiceProvider.executeCriteriaQueryForCounts(PersistenceServiceProvider.java:2145)
at com.aveksa.server.db.persistence.PersistenceServiceProvider.executeCriteriaQueryForCounts(PersistenceServiceProvider.java:2075)
at com.aveksa.server.db.PersistenceManager.executeCriteriaQueryForCounts(PersistenceManager.java:337)
at com.aveksa.server.filter.ObjectListFilter.executeCountCriteria(ObjectListFilter.java:162)
at com.aveksa.server.filter.ObjectListFilter.getCountOfFilteredObjects(ObjectListFilter.java:133)
... 77 more
Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "THIS_"."Unique Id": invalid identifier
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
I really need to match the Unique Id to a string, since the Unique Id is also de DN of the user in the directory. I guess I could try collecting the DN into a custom attribute and then set up the filter but I don't want to repeat information unnecessarily.
Thank you
Well, I got it working. I discovered that the user filter was working well for some attributes (such as Title or Department) but not for others (Unique Id or Email Address). The difference being whether the name of the attribute consists of single word or many words.
The problem was how the Expression Builder was constructing the query.
When I do the following:
And I switch to the "Advanced" View I see the following: users."Unique Id" like '%STRING%' which doesn't work . But if I manually edit the filter to something like users.Unique_Id like '%STRING%' it works like a charm.
This is clearly a bug, im on IG&L 7.1SP3.