In addition to submitting new data to a feature service through a survey, you may need to edit survey data that you have recently submitted, has been collected some time ago, or has been collected by other survey users. This is possible with Survey123 for ArcGIS 2.0 and later.
By default, you can edit any previously submitted surveys that exist in the Survey123 field app's Sent box. To edit existing survey data (for example, data collected on another day or by another user), you must specify your intent before publishing the survey.
If your survey's workflow requires editing of submitted surveys, be aware that editing of attached photos is not currently supported.
To enable editing in a survey, you must first enable the inbox. To do this, go to Settings > Inbox for the survey in Survey123 Connect. Choose Enabled from the drop-down list. A query expression edit box appears with a check box (enabled by default) that enables you to apply a spatial filter.
The inbox may appear to hang when too many features are returned by the query. Because of this, it's recommended that you implement a where clause that will limit this number.
The surveys available for editing in the Survey123 field app are determined by the query expression written at the time of the survey's publishing. This where clause must be entered as a text string, so you have full flexibility in terms of the values, operators, and fields that are entered. However, the choices should reflect your editing workflow, have the correct syntax, and have accurate field names. The following are example use cases and syntax:
- This sample searches the EditDate field for dates on or after the 13th of April, 2017.
- This sample searches the Editor field for the name 'BKlauser'.
- This sample filters using the status field for all surveys marked with the string 'For Review'.
All queries are ultimately run against the survey's feature service, so building and testing can be achieved by going to its REST end point and using the query operation. For more information on this process and examples of query syntax, see the Query - Feature Service resource.
The spatial filter enables the filtering of surveys in the inbox. Once enabled as part of the survey publishing process, users can use the inbox map view extent to filter the survey data in the inbox list view.
When using Refresh on the extent in this image, the field app's inbox will only refresh the five survey responses visible in the view.
For the map view to be available, the survey must include a geopoint question. If the survey lacks a geopoint question, the map view will be hidden and spatial filtering will be unavailable.
Editing repeats is supported in Survey123 2.4 and later, allowing editing of features that have related records either from the Sent box or the Inbox. New records can be added and existing records edited, although deleting existing records is currently not supported.
The bind::esri:parameters column can be used to supply optional parameters for a repeat. These parameters are formatted as key value pairs, with values that contain spaces encased in quotes.
By default, no related records are downloaded with the survey responses via the Inbox. To access related records for a response, define a query in the bind::esri:parameters column for the repeat. The query property supports the same parameters as the where expressions above, for example, query="Editor='BKlauser'" to download only the related records with 'BKlauser' in the Editor field.
To download all records in a related table, specify a query without any parameters (query).
Other parameters that can be applied to repeats through the bind::esri:parameters column include the following:
- allowAdds—Allows new records to be added to a repeat when editing. The default is true. It can be set to false using allowAdds=false.
- allowUpdates—Allows existing records in a repeat to be updated when editing. The default is false. It can be set to true using allowUpdates or allowUpdates=true.
- orderBy-Specifies the order of related records by fields.
Multiple key value pairs can be used together separated by spaces, for example, allowUpdates=true query="Editor='BKlauser'". If these values have spaces in them, they can be encased in quotes.