In a nutshell we have 200+ locations reporting status on a daily basis using Survey123. I have a dashboard list showing status and a map showing a layer of all sites overlaid with the feature layer containing status. I have made the symbology work to identify which sites have not yet reported status. The endusers would rather have a list in the dashboard to identify sites that have NOT yet reported status, in real time. I don't know a way to do this. For example, 200 total sites and 190 have called in to report status inreal time. I want a list that shows the 10 that didn't call in. Is there a way to join 2 layers in a list in real time? Also, we are using Enterprice/portal not AGOL if that matters.
We have an identical problem, and have taken various approaches to resolve. Like yourself we have used symbology to record assets that have been inspected and have an underlying layer that shows all the assets... so the colour and visibility of the underlying assets can highlight where inspections were missed, however our users still want a list of inspections missed.
So another approach was to use ModelBuilder to basically do what is essentially an MS Access Unmatched Query... not the most elegant solution for a number of reasons.
Be interested to see what other approaches have been applied... this must be a common enough workflow.
Seems like you could query for features where the last reported data is greater than one day.
@BobBooth1 how do you filter dashboard list data list for features that don't exist? The list data is a Survey123 feature layer and contains records each day for locations reporting status. Some days they don't report status and they need to be called. I don't see any way to use more than 1 layer in dashboard list and/or how to create 1 layer in the dashboard web map and filter data to show locations that have not used Survey123 to report status. This all has to be done in real-time.
If the survey is the same survey every day, then yesterday's features are there too, unless they get deleted by some process.
So perhaps an arcade query to compare the lists submitted yesterday and today as two feature sets?
@BobBooth1 Thank you. The survey is the same everyday but comparing today to yesterday doesn't guarantee that we have all locations, as yesterday not all locations may have submitted their status. I could create a "control set" with all locations with a date from past like 1/1/1900 and compare today's features to the control set, except I have never done more than formatting changes using arcade. I don't know how to compare the 2 feature layers using arcade and selecting the features from the control set layer that are NOT in the Survey123 layer. Help? Thank you!
The way I'd approach this is to use ArcGISPro, and have a daily status list for those locations that reported along with a reference dataset 'control set' of the locations. Assuming each location has a unique identifier, and that the unique identifier is included in your daily status list... then you could do the following...
- In ArcGISPro, use [Add Join] to join the control set to the daily report set using the unique ID. Make sure to untick the [Keep All Target Features] box.
- Once the Join completes, then Open the Attribute Table and use Switch Selection so that all rows are now selected (in my example the inspections are weekly and sometimes each asset may be inspected more than once, but some may be missed).
- Now remove the Join. You should have a table showing your 'control set' with those that have reported status selected.
- Next Use 'Switch Selection' to show the list that didn't report status.
- You could then export these features to a geodatabase (include a new column for date), and do this on a daily basis.
- If you include this layer in the service/web map that populates your dashboard, then you should be able report on locations that didn't report their status.
I guess you could also automate the above workflow.
Something like this might work, if you made another hosted feature service of small buffers around the whole set of points, and then queried to report on the buffer features that do not have one of today's points inside them.