First of all, thank you very much for your thoughtful and useful reply!
>> Here's my current code situation. I'm hoping to integrate web app builder into it so that much of what I've already >>written won't be needed anymore.
>Are you saying that you've developed a custom app with custom code and want to integrate/add Web AppBuilder's
>source code into it? I don't think this is the right approach. You're probably better off just using Web AppBuilder to
>create a new web app and then add your custom code to it.
I have a web app that does a number of things. The users set the context of what they want to work on in my app. Some of the data that they want to see in my app is geospatial and some is not. When they set the context in my app, the data on the map should reflect that same context. So, when the user makes the context change, my app needs to be able to send the new filter information to the map and have the map respond by showing the new data. (I don't want the users to have to change the data context in my app and in the map separately.)
In a previous app I made extensive use of the esri javascript api to manipulate maps integrated with other user actions. So, I had to write code to add layers, hide layers, search thru web servers for esri web services they could add, print, etc. I"m hoping to not have to write that portion of the code this time and piggyback on what comes in web appbuilder.
Hope that clarifies the overall need better.
>> I tried using the iframe to display a portal map. It displayed just fine but I could not find a reliable, maintainable way to
>>send instructions to the map from the parent page. My users use IE and apparently there's some "extra special"
>>feature that blocks access from the parent. ...
>Not clear what you mean here. Do you mean a web map? And from Portal for ArcGIS or ArcGIS Online? Is your
>custom app trying to interact with the contents of the web map? Have you looked at the ArcGIS API for JavaScript
>documentation?
We have an ArcGIS portal locally set up on our internal network. We have no access to ArcGIS Online - if by that you mean the public internet site that Esri makes available.
Yes, my custom app needs to interact with the contents of the web map. It needs to be able to, for example, apply a data filter to the various layers on the map. I'm very familiar with the esri javascript api and know what to tell a map to do using that library. I tried putting iframe with the src pointing to a map set up on our local ArcGIS portal into my app. IE had some kind of "feature" that kept my application javascript from talking to the map in the iframe. I googled around for a solution to this problem and didn't find anything I wanted to trust to work over time. Would be happy to use this approach if I had a solution to that problem.
As a different approach, I added esri javascript api code to my app to sign into our local ArcGis portal and used esri.arcgis.utils.createMap command to access a map defined in our portal. I assigned the resulting display of the map to a div in my application. Unlike the iframe approach, I could talk to the map just fine with my application code. We added a bunch of widgets to show up in the map on the portal (and they did when we accessed the map via the iframe or via the portal user interface); but those widgets didn't show up when I accessed the map using the createMap function. So, all the widgets in the portal map don't help me when accessing the map this way. Ditto on happy to use this approach if I had a solution to that problem.
Or some other approach. I just don't want to invest a month into learning web appbuilder only to find out I can't integrate it into my app.
>Item 7: Your requirement is a little unclear, but the Analysis widget has Extract Data functionality.
Many of our feature layers have a maximum number of records set on the feature. So, while there may be 10,000 records in the database the feature will only allow 3000 to come back. When I wrote the extract data functionality in my last app, I had to query the webservice for just ids (which ignores that maximum number of records), then code the extract to make multiple requests for (in this example) 3000 records at a time and stitch them all together into one extract file. So, in this case, would the Analysis Widget extract data functionality stop at 3000 or give me all 10000 records?