I would like to localise attribut values from a WFS-connection in GeoMedia. I tried a few functions like for example some queries. However, I would like to use the "Search" function, which you can find here: Analyse > Utilities > Searches.
But if I apply the search function directly on the WFS layers, I get an error message which you can find in the attachment. I think basically this error message means that the search function could not find any attribut value within this layer with the searched value. If I use a query instead of the WFS layer and search the attribut value within this query, the error message does not appear.
Why does this search function not work directly on WFS-layer, even if there are additional attribut values in the data window of each layer and the layers are supposed to be some kind of feature classes?
Solved! Go to Solution.
There's a little speculation here, but here's what I'm thinking...
When you pose a query to WFS directly through the Attribute Query command, you control the SQL syntax that it sends. When you pose a query to WFS through the Search command, it constructs the SQL for you behind-the-scenes. When it does so, it is searching all pertinent fields for the value that you provide, generating the SQL that you see in the error message, with many different filter clauses separated by OR's. My assumption is that if you tried that same query through the Attribute Query command, it would also fail.
Complex attribute queries against WFS implementations are very challenging for two reasons. One is that while databases support SQL, the OGC standard for submitting queries uses something else called Filter Encoding (FE), which is a not-very-readable XML-based means of expressing filtering criteria. So part of the WFS server logic is parsing SQL and reconstructing the query in XML, a real challenge in some cases. The other is that every WFS implementation is different. Imagine the chaos if every Oracle database acted a little bit different than the rest, having its own bugs, its own capabilities, its own behavioral idiosyncrasies. That’s essentially what interacting with WFS is like. So while your search is failing with this WFS implementation, which might, for example, have a limit in the number of OR’s it allows, it might work with another WFS implementation just fine.
Are you working with the old WFS data server, or the new one that we began delivering with GeoMedia 2018? - Hal
You're welcome. I'm not aware of any reported problem being resolved with the new WFS data server, pertinent to this Search capability or SQL-to-FE translation. However it is an entirely new codebase and a fair bit of time has been spent on attribute query, so it's possible that you will find the situation better - if the issue is in GeoMedia. Of course if the issue is in the WFS implementation, then nothing we do on our side will help.... - Hal