Ability to filter multiple layers based on a common field

15742
45
04-28-2022 12:58 AM
Status: Open
Labels (3)
BlairPellegrino
Occasional Contributor

When using the filter widget in Experience Builder, it currently only applies to a single data source / layer.  This is proving to be a major limitation when creating experiences that have multiple layers with a common field.  Ideally I need that filter to apply to all layers based on the common field in all layers.

For example, I have added two maps side-by-side on my page - one with a layer for "scenario A" and the other with a layer for "scenario B".  The attribute tables of both layers have a common "region" field.  I've added a filter widget that filters on the "region" field from the "scenario A" layer, but there is no way for that filter to flow through to the "scenario B" layer.

In Dashboards, this can be achieved under the category selector actions by selecting the source field and the target field.  Similar functionality in Experience Builder would be really useful.

This Experience Builder question here also requests the same functionality.

45 Comments
ctalleygreenville

Hooray!! Thank you, Tonghui, for posting the update.  

AaronKoelker

@TonghuiMing Hi Tonghui, could you offer additional insight on the "List Values Based on" function for Group Filters? It's the bottom right dropdown in your second screenshot. Are there specific prerequisites for this option to appear? It doesn't show for me in my window and I can't find anything in the documentation regarding possible limitations/requirements. 

For context, I'm using fields that are all text, the "Unique" source type option is set for the Operator, and I have other Filter widgets within the app (not just multiple clauses within one Filter widget ...though I tried that too). 

AaronKoelker_0-1742325478567.png

AaronKoelker_1-1742325825516.png

 

 

TonghuiMing

Hi @AaronKoelker

The setting could exist after the 2024 Mar release, but then we removed this setting a few days later (it does not make much sense in group filter settings). If you have the app configured during that period (about a week), then it might show the former configurations.

You can refer to the details in - https://community.esri.com/t5/arcgis-experience-builder-questions/stacking-group-filters-not-working... 

 

This should not happen for newly created apps, and it should not appear if you configure it again. Let me know if you still encounter this in a new app; if so, we can look into it. Thanks!

D_Atkins

@TonghuiMing "but then we removed this setting a few days later (it does not make much sense in group filter settings)"

This sort of response appears to imply that Community users are ignorant or naive of their applications and users' needs.  This is a hot topic with information spread out over multiple threads dating over 3 years now:

Filter to update all map layers by common field -s... - Esri Community
Apply single Filter to multiple map layers - Esri Community
Ability to filter multiple layers based on a common field
Solved: Re: Stacking Group Filters not working - Esri Community
     (egregious!  "Solved" by removing the feature.)

Why not just say the functionality was causing some technical difficulties and will be revisited at a later time?
-----------------------------------------------------------------------------------------

Just to be clear: I can envision multiple use cases where a Developer may need to filter multiple layers (i.e. "Group Filters") while also preserving the "List values based on... Values filtered by" functions available in current single-layer filters.  

If we need textbook examples:
  Suppose we have multiple layers in different geometries: i.e., Points of Interest and Park Polygons, each with a County and State attribute field.  I want users to be able browse the national map, or to use a series of filters to select first, a State, then second, a County with the County list of values filtered by State. 

Or in my actual use-case:
  We have a points layer of "Requests" submitted via a web app; Requests are assigned to Divisions.  There are ~100 Request Types, and ~10 Divisions.  We have an application for reviewing Requests which worked well: users could filter based on Division, which assisted in paring down the filter options for Request Types.  Most recently, users have requested a Heat Map Layer be added under the Points: cue the need for a Group Filter (using the exact same data, and exact same attributes)!  But now, we cannot 'filter the filters' as we did before!

Other thoughts: could this possibly be accomplished by passing the Filter through Message Actions in the Framework? 


AaronKoelker

@TonghuiMing Thank you for answering so quickly, I'm happy I can at least stop fiddling with it for now and wondering if it was user error on my part. 

I do somewhat agree with @D_Atkins, though. Or at least, it's unclear to me why the option doesn't make sense to implement. I saw in your linked post that it was removed to avoid confusion since the behavior always acted as "All Values" regardless. But the behavior I'm seeing is that it doesn't react to any values based on what's selected in other filters. You also mentioned it is only for clauses within a single set/group, so perhaps this is a broader issue I'm confused about or a misunderstanding of what those options are really doing. 

So if I have one Filter widget with a single clause, and another separate Filter widget with a Group Clause, there is currently no way for the Group Clause dropdown values to react to what's been picked in the Filter widget with the single clause? 

Edit: Apparently my issue in the question above was related to having multiple filter widgets connected to the same layer, which I assume now meant the group clause I had in the one widget wasn't limiting it's dropdowns because those values were available in at least one other filter that was still set to -All-. Still not 100% sure of the behavior.