Select to view content in your preferred language

Filter widget issues with Custom Data Feeds (CDFs) in ExB WAB

455
2
06-27-2023 07:52 AM
MarcBateEA
New Contributor III

The map viewer performance with the custom data feed CDF feature service created with my custom provider works well.

However, when using the filter widget in ExB or WAB, it is very slow and some things don't work. I see it is calling the service to get the unique values with the returnDistinctValues=true.  Is that being done by the node application? If so, how can I optimize/cache it. When I use a real feature service, the filter widget updates the other values instantly when I change another when I have it said to updated based on values of other selected filters.

When a multi select field is used in the filter widget, it also will only return features if you select 2 or more. If you pick just one, it never returns anything. I'm assuming the code has some IN() clause in the SQL and if there isn't more than one comma separated item in the string passed it bombs.

0 Kudos
2 Replies
MarcBateEA
New Contributor III

The CDF was marketed as performing just like any other FeatureService but this is not true. For points layer with more than 20000 points, it is noticibly slower. It is running koopjs on Node on an internal port on the AGS then redirecting or forwarding without that port to the client.  It also was supposed to optionally output the response in binary PBF, but I don't see that option anywhere.

 

I was so excited and have my CDF working but it is way too slow to use as-is.When used with a filter widget in WAB or ExB, it redraws the points too often when you go to select different criteria, and calls the server over and over again to get the list of distinct values for the dropdowns. It performs fine when it is a real feature service.  I thought that perhaps setting supportsAdvancedQueries to false on the feature service would help and not rely on it doing the distinct value operation but the filter widget just needs to be rewritten I'm afraid to get those unique values client-side

0 Kudos
MarcBateEA
New Contributor III

There was also an issue when you try to open an attribute table from a popup in the Web App Builder, because it is passing the OBJECTID in a query to the CDF, which returned nothing for some reason

0 Kudos