Require new solution to replace multiple web apps that perform same function

912
4
Jump to solution
05-04-2021 06:04 PM
Labels (1)
Damian
by
New Contributor III

Dear AGOL Community,

Here's the short version ….

I am using AGOL. I have 80 web apps that perform exactly the same function. Every time I update an app I usually need to repeat the update across all 80 web apps. This takes too much time and effort. I need to come up with a new solution to avoid this.

And here’s the long version …

I have 80 web apps. Each app enables my users to submit proposed changes for 80 different species distribution maps, one app for each species. Each web app has a web map containing a polygon layer representing my species distribution, two ‘editable’ layers that my users can draw proposed changes to the distribution maps using the ‘Edit’ widget, and four to six other layers that are relevant to each species. So all up I have about 600 different layers, contained in 80 web maps and web apps, however functionally all 80 web apps are the same. 

Here is a dummy example of one of my apps.

I need to come up with a new solution so that I don’t have to update 80 web apps when I want to update an app function. I’ve tried different URL parameter options without success. I'm hoping someone might have an alternative suggestion?

Regards, Damian

0 Kudos
1 Solution

Accepted Solutions
jcarlson
MVP Esteemed Contributor

Wow! That's quite a situation. Do you find that having a separate layer for each species is preferable to putting them together, then maybe defining layer views?

But that's the data side, not the maps/apps...

Could the editable layer users sketch on simply be one single feature layer with a dropdown/text box for "species"? 80 is a lot of choices, but that might be one way to simplify things.

Here's another idea. Create a "master" web app that serves as the template for all the others. In AGO Assisstant, you can see the JSON of the web app:

 

jcarlson_0-1620179882393.png

In fact, as you've made that sample public, I can view it as well:

jcarlson_1-1620180334910.png

The JSON will depend a lot on the contents and configuration of the app itself, but you'll be able to spot the layer IDs and the service URLs. All you'd need to do is to copy everything else from the "master" app into the various species specific apps, but keep each pointing at their own layers.

It would still be a bit of manual work, but altering the JSON can be done programmatically as well via Python and the ArcGIS API.

You might even consider using something like GitHub to track the various JSON files and work with them as external files, then use Python to read the JSON into the update_definition function on an app.

Edit: another thought! This might be a data management nightmare, but suppose the relevant layer groups (ranges, models, ALA) were each a big layer with species as a field. You could use the Group Filter widget to simultaneously filter each layer by the same species value in a dropdown.

- Josh Carlson
Kendall County GIS

View solution in original post

4 Replies
jcarlson
MVP Esteemed Contributor

Wow! That's quite a situation. Do you find that having a separate layer for each species is preferable to putting them together, then maybe defining layer views?

But that's the data side, not the maps/apps...

Could the editable layer users sketch on simply be one single feature layer with a dropdown/text box for "species"? 80 is a lot of choices, but that might be one way to simplify things.

Here's another idea. Create a "master" web app that serves as the template for all the others. In AGO Assisstant, you can see the JSON of the web app:

 

jcarlson_0-1620179882393.png

In fact, as you've made that sample public, I can view it as well:

jcarlson_1-1620180334910.png

The JSON will depend a lot on the contents and configuration of the app itself, but you'll be able to spot the layer IDs and the service URLs. All you'd need to do is to copy everything else from the "master" app into the various species specific apps, but keep each pointing at their own layers.

It would still be a bit of manual work, but altering the JSON can be done programmatically as well via Python and the ArcGIS API.

You might even consider using something like GitHub to track the various JSON files and work with them as external files, then use Python to read the JSON into the update_definition function on an app.

Edit: another thought! This might be a data management nightmare, but suppose the relevant layer groups (ranges, models, ALA) were each a big layer with species as a field. You could use the Group Filter widget to simultaneously filter each layer by the same species value in a dropdown.

- Josh Carlson
Kendall County GIS
Damian
by
New Contributor III

Thank you for all of those suggestions Josh,  greatly appreciated. I hadn't thought of using single editable layer with a drop down option, definitely an option. Building on that idea I think could potentially build a single template app and use the 'webmap' URL parameter to create separate weblinks for each species. It would still mean maintaining 80 webmaps, but only one web app.

I have no doubt the JSON option would work, however somewhat beyond my skill level.

I also like your Group Filter suggestion, just somewhat daunting as you indicated.

Cheers, Damian 

 

jcarlson
MVP Esteemed Contributor

Post back if you make progress! I'm curious to hear how / if you simplify things.

- Josh Carlson
Kendall County GIS
0 Kudos
Damian
by
New Contributor III

Will do Josh. And really keen to hear from anyone who might have any ideas, be they simple functions that might be helpful to entirely new concepts altogether.

Cheers, D

0 Kudos