Select to view content in your preferred language

How to update attributes using ArcGIS Pro for a Web Map

189
2
09-16-2024 01:56 PM
JasperRomero
Emerging Contributor

Hello all,

First time posting so please feel free to redirect/clarify/suggest revisions!

I am trying to develop an easy workflow for the non-GIS folks in my office to update the attributes of a layer used in a Web Map (and subsequently a Web App). My intention is that end users will be able to make edits to text, add hyperlinks, and include attachments for formatted display in the Web App pop-ups, all by editing a source spreadsheet and then pushing those changes to the hosted layer - I am formatting the pop-ups and symbology, and want them to be able to seamlessly update the content of the attributes. I am seeking guidance in determining the most effective, user-friendly way to do this. 

If possible, I would prefer to avoid changing the schema or anything else major (e.g. field names) about the layer and its attribute table - I do not want the settings I am implementing for symbology and pop-up formatting to need correcting after the changes are made. If I understand correctly, this rules out using joins via ArcGIS Pro (please correct me if not!).

So far I am considering:

1) Writing a script using ArcGIS API for Python, to attempt to directly edit the hosted layer attributes;

2) Writing a script to make the edits locally, e.g. using an Update Cursor, and then including instructions to overwrite the Web Feature Layer with the updated layer;

3) Setting up a ModelBuilder workflow that involves using the source data table with Joins, Calculate Fields, and other tools (e.g. Add Attachments).

Currently I have ArcGIS Pro set up with a map that pulls the live Web Feature Layer, so I can make edits through Pro (but I don't know how - or if it's even possible - to use scripts i.e. with an update cursor on a hosted layer). 

Any suggestions re: which approach would likely offer the least resistance for end users, any other workflows not already under consideration, and/or specific references for coding the script-based approaches (especially the API one) are so gratefully accepted!

The interactions between Pro and AGOL, along with all the different options for hosting and editing (service definitions, web feature layers, etc.) are at the limits of my understanding so any and all context is appreciated!

Thanks in advance.

0 Kudos
2 Replies
ChristopherCounsell
MVP Regular Contributor

What you are seeking advice on is core ArcGIS online functionality. As you have a web layer, we assume you have ArcGIS Online, and some user accounts to go with it.

You will need to publish a Hosted Feature Layer, set up user accounts, share the layer with editing settings to a group, then have a couple of options on how to build the interactivity.

You can use ArcGIS for Excel.

https://doc.arcgis.com/en/microsoft-365/latest/excel/get-started-with-arcgis-for-excel.htm

Or set up a web app for editing:

https://www.esri.com/about/newsroom/arcnews/how-to-choose-the-right-web-app-in-arcgis-online/

The updates would be live and you would not need to automate any processes.

If you have to do it and use ArcGIS Pro I would recommend the Append tool with the 'insert and update existing' option. This lets you add new features and update existing ones depending on the data changes.

https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/append.htm

 

0 Kudos
JasperRomero
Emerging Contributor

Hi @ChristopherCounsell ,

Thanks so much for the quick and helpful response!

I think for the time being, Append is exactly what I am looking for (not sure how I didn't find this sooner) - however, in terms of developing a user-friendly workflow for others to use down the line, both of your other suggestions are excellent as well.

Re: the web app option, is it possible to set up one Web App for folks to easily edit the source data which provides content/attributes for a different Web App?

Also - depending on what the end users end up feeling comfortable with - would it be possible to set up a standard script using ArcGIS API for Python that needs minimal modifications (e.g. user specifies parameters for input csv, target layer, attribute names to replace)? I am not sure whether folks will generally want to make small changes to one or two values at a time, or to replace many of the values more programmatically. I am fairly comfortable writing/using ArcPy scripts but the API is new to me so I don't have a great sense of best uses, reliability/reproducibility, etc.

Thanks again for your insights!

0 Kudos