Webmaps have long been static in terms of configuration. If you change a schema, by adding/removing fields or changing domains and domain values, popups for the affected layer(s) do not reflect the new schema. The service updates fine with new fields, if schema locking is disabled. But I tested changing schema on a test layer with new and classic map viewer. Even after restarting the service and even republishing the service, webmaps are 'stuck'. @KoryKramer Is this still the intended behavior in 2025? The webmap popup JSON is frozen, and has to be edited manually in the Assistant or every layer reconfigured in every webmap?
Ideally, It would be great if we could update the schema and webmaps and their popups would just add new fields and remove deleted ones, and update domains etc for existing fields if modified. I would understand if services need restarting. An admin could restart the server in the evening in order to restart all services. But without the webmap being able to see the changes, it's of no use. I'm well aware of Attribute Assistant. I guess that's still the only way to fix webmaps, short of going in and re-saving every single popup in every single webmap? (thousands of webmaps each with dozens of layers... not feasible) How is everyone else dealing with this? I should note that I am currently using Enterprise 10.91. Maybe this is fixed in 11.x? But I tried this with webmaps on AGOL so that is the latest version of the webmap spec and it seems to be more on the webmap end than on the Enterprise end. Of course it would also be useful for this to carry through to Field Maps Designer forms as well and add new fields automatically (optionally).
I update the schema and then overwrite my layers (same concept but I did this in portal) by using the same unique ID. You can find the unique ID for your layer by navigating to its URL page in AGOL. In Pro, you can view this ID under the layer's properties. When I use the same ID to overwrite the layer, my map remains intact, and all previous configurations and pop-ups stay in place. I typically delete unused fields that weren’t part of the pop-up, so I can't confirm if those deleted fields would be removed from the pop-up. (I create custom popups using text) My best guess is that they would not be removed.
Hi Laura, thank you for your reply. So, Webmaps still work, for fields that didn't change. It's just that new fields do not show up in the popup, until they are manually reconfigured; and also, old fields that were deleted still hang out there as empty phantom fields in the popup, until its config is resaved and they are then removed. Thus, the new fields are missing for popup display, for editing, and likely not for Field Maps. I was wondering if everyone else manually updates all the webmaps in their Org when they add fields? Or if there is something I am missing.
One thought that occurred to me was, easier to fix it in one place than in multiple places. So, with GeoJobe AdminTools you can copy (clone) the config of an item in a webmap from one webmap, to many others. Fix it in one; clone it to many others. Only thing is, the item may be configured slightly different across various webmaps plus over the years the same SDE featureclass has been published two dozen times in different services and perhaps with different fields visible etc. But that is more of a cleanup on our end and if anything will encourage some standardization and efficiency.
I just wanted to be sure I wasn't missing anything, and check if there was some slick way of webmaps just staying in sync automatically with a service. It seems probably unfortunately not. I will create an Idea for a Feature Enhancement if not. (I think I had something like this as an idea over ten years ago.. I know I did for unique layer IDs.. )
There’s some really useful information in this link: https://community.esri.com/t5/arcgis-field-maps-questions/field-maps-point-pop-up-does-not-display-a...
If you’ve selected specific fields to display, then you’re customizing the pop-up. Therefore, to add or remove fields, you’ll likely need to do it manually. If you’re showing all fields by default, then it’s possible that a new field would automatically be added—though that’s something I haven’t tested myself. Personally, I customize my pop-ups and keep a document with a copy of my configuration so I can easily copy and paste it into new maps.
I’ve also successfully added more options to a domain in ArcGIS Pro, and after overwriting the map, I didn’t have to do anything extra in Portal.
We have recently done some minor cleanup so I know publish a "water group" that houses say 10 water layers and each time I just go back and republish that layer when the schema is changed. Having the same layers published multiple times definitely makes it messy.
Yes that will be some cleanup with the same layer in dozens of different services and items.
That is interesting, I will try that exact experiment: if the popup has not been 'customized' and ALL fields are visible, what happens, when new fields are added to the service? Will they magically show up and be visible by default? I will test that tomorrow. Because typically the 'internal' fields we would want to hide across the board so I could just hide those on the services themselves. That is good to know that domain changes came through automatically, will also test that.
I also recall seeing something about where to save JSON for popups, either in the map or from the service. Like when I went to save a map with New Map Viewer and I recall it asking that I believe. That would definitely be a way around this whole thing. If we could just automate republishing (or restarting; with schema lock disabled) all services, if the webmap can pull popups from the Service, I think that would solve it. For the life of me I can't find that option though, I think it was in New map viewer. I know Pro warns about that when overwriting. Does anyone know where that option is, to choose where to save popups for an existing webmap? I can't seem to find it.
Regarding copying the config to Word yes I have been using AGOL Assistant for a long time and copy and pasting in JSON, I used to do that to fix layer IDs before unique layer IDs were possible. But to do that across many webmaps would be time consuming and error-prone, just like reconfiguring many popups manually. So, thank you Laura... that might be a solution. To make all fields visible. If it works. Make all fields visible, and leave it that way and see if new fields are added and also visible, automatically. (one would think the API would have like 'all fields visible' as a property, vs hard-coding explicitly all that JSON; that'd be a good feature enhancement too)
Update: I see why I wasn't seeing the disconnected layer properties button. I was using Map Image layers (MapServer) as services in my test webmap. This only works with FeatureServer services. However the problem is that we mostly use MapServer map image layers. 1) FeatureServer is too slow 2) mapserver or mapserver sublayers are required for use in various WebApp Builder widgets like Infographic. (Found this through trial and error) Same for showing related fields in a popup when the related table is joined to its point layer, only works with mapserver map image layer (sublayer) added to the webmap.
Set layer properties—ArcGIS Online Help | Documentation
(we call FCs 'layers', why I missed that.. I propose they add 'Requires FeatureServer' in the Docs)
So, my Idea I will create, is to support automatically pulling the Fields and Popups config from the service, for MapServer map image layers. I'm sure it will be some engineering on the product but it's well worth it. This would be #1 ENH for AGOl at the moment, as constantly resetting popups (and potentially affecting production apps) across hundreds of webmaps is not tenable; nor is 'python' the answer.
So, the vision woul be this: we add fields and they automatically appear in the New Map Viewer popup. Deleted ones disappear. And it pulls any other popup config from Pro in to AGOL for a MapServer map image layer service. I can't see why it couldn't just pull the JSON and store it in the webmap for a MapServer map image layer, if it can do it for a FeatureServer feature service.