Hi everyone,
I was wondering if anyone had any information about possible impacts to the functionality of FeatureSetByPortalItem and FeatureSetByMap functions in Arcade from the Feb 2026 AGOL updates. I can't find anything in their 'what's new' page but could have missed something.
I have a pop-up which relies on FeatureSetByPortalItem to count the number of unfiltered items - basically it connects to the item in portal and counts the number of rows in the item - and then FeatureSetByMap to count the number of filtered items -connects to the table in the map and counts the number of filtered rows.
These filtered vs non-filtered counts are compared within arcade to determine what should be seen in the pop-up when filters are applied to the layer within experience builder. Basically, if the ratio of filtered items to non-filtered items surpasses a certain limit it shows a different type of pop-up.
However, when I logged in this morning, I noticed that the number of features returned by FeatureSetByMap is no longer the number of filtered items when the pop-up is viewed in Experience Builder feature information widget. Both FeatureSetByMap and FeatureSetByPortalItem are now returning the number of items in an unfiltered layer.
Is this to be expected given the new updates?
Thanks for any insight people can give
Hello @hbontrager_dgco can you share the arcade expression that you are using?
I can’t share the main script I use for privacy reasons (I could probably message to it to you but don’t want to reply publicly and post it here).
However, I did create a simple script which replicates the problem that I can share below.
One note – in the script below I’m pulling in data from our arcgis enterprise into a map in arcgis online and then importing that map into an experience builder in arcgis online. I’ve also tried it using layers in arcgis online directly, but our publicly available data is in our enterprise portal (so using that layer for troubleshooting here).
To replicate:
In map viewer
https://gis.dgcoks.gov/server/rest/services/Tax_Parcel/FeatureServer/0
////////////////////////////////////////////////////
// path to item in our portal
var portalPath = "https://gis.dgcoks.gov/portal"
var parcelAGOLID = "ae6cdfe2189c4b69985d38d952f97061"
var parcelAGOLsubID = 0
// name of item on our map
var taxParcelLayerNameInMap = "Tax Parcel"
////////////////////////////////////////////////////
// pull in the layers into arcade
var unfilteredParcels = FeatureSetByPortalItem(Portal(portalPath), parcelAGOLID, parcelAGOLsubID,['*'], false)
var filteredParcels = FeatureSetByName($map, taxParcelLayerNameInMap, ['*'], false)
////////////////////////////////////////////////////
// get counts of layer in portal and layer in map
var countUnfiltered = Count(unfilteredParcels)
var countFiltered = Count(filteredParcels)
////////////////////////////////////////////////////
// format and return to user number of filtered and unfiltered parcels
var tableHTML = '<table><tr colspan = 2><i><u>Filtered vs Unfiltered Counts</u></i></tr><tr></tr><tr><td><strong>Unfiltered Count: </strong>'+countUnfiltered+'</td></tr><tr><td><strong>Filtered Count: </strong>'+countFiltered + '</td></tr></table>'
return {
type : 'text',
text : tableHTML
}
In experience builder
Other things I've tried
Thank you for your time,
Thank you @hbontrager_dgco !
I was able to reproduce and noticed there was no issue reflecting filters applied in Map Viewer, and that the pop-up in the Map Widget was also correct when the Feature Info widget was not. We are tracking this as BUG-000183086: Feature Info Widget in ArcGIS Experience Builder does not honor filters applied using the Experience Builder Filter Widget if the Web Map pop-up uses Arcade to return the map as a featureSetCollection.
Thanks for logging it!
I'm having this issue, too! I've copied/pasted a couple of Arcade expressions from an existing map layer's pop-up to a new map (I'm creating the next iteration of our Tool) and it works in the first version but not in the second. One uses the FeatureSetByPortalItem but the other doesn't; it's supposed to just concatenate fields:
var address = IIf(IsEmpty($feature.siteadd1), '', Concatenate($feature.siteadd1 +
(IIf(IsEmpty($feature.siteadd2), '', TextFormatting.NewLine + $feature.siteadd2)) +
TextFormatting.NewLine + $feature.sitecity + ", " + $feature.sitestate + " " + $feature.sitezip))
return addressAny ideas when this might be fixed?