准备编辑现有调查数据

除了通过调查向要素图层提交新数据外,可能需要对最近已提交的、一段时间以前已采集的或者其他调查用户已采集的调查数据进行编辑。

启用编辑

可以通过已发送文件夹和收件箱编辑调查响应。 要为调查启用编辑,则必须对基础要素图层启用编辑。

您可以对 Survey123 外业应用程序的已发送文件夹中之前提交的调查进行编辑。 有关如何配置已发送调查的选项的详细信息,请参阅已发送文件夹

要编辑存储在调查要素图层中的现有调查数据(例如,其他用户采集的数据),必须启用收件箱。

警告:

启用收件箱可以提供调查数据的读取权限,显示您的调查响应。 有关数据保护的详细信息和最佳做法,请参阅共享调查

要启用收件箱,请转至 Survey123 Connect 中您的调查的选项选项卡,然后单击启用收件箱。 将显示一系列选项,您可以使用这些选项控制用户与收件箱中的调查的交互方式。 对这些选项的任何更改将在调查发布时生效。

在

选择收件箱中的测量是否可以编辑、查看(只读)或复制到新调查。 您可以输入查询表达式以限制收件箱中返回的调查。 您也可以应用空间过滤器

注:

收件箱最多可以包含 5,000 个调查响应。 此限制仅应用于父调查记录(不应用于重复)。

要返回的记录越多,刷新收件箱所用的时间越长。 对于包含重复的调查,请注意收件箱在刷新时检索的记录总数可能远大于父记录的数量。 例如,如果要素图层包含 2,000 个父记录,每个父记录包含 10 个重复记录,则收件箱总共将检索 22,000 个记录。 您可以通过添加查询表达式或空间过滤器来限制父记录的数量。 可以通过在 bind::esri:parameters 列中定义查询来限制重复记录的数量。

警告:

调查响应一次只能存在于一个文件夹中的设备上。 当为调查同时启用已发送文件夹和收件箱时,刷新收件箱不会下载已发送文件夹中已存在的响应。 这意味着如果用户在另一台设备上更新了已发送文件夹中的响应,则更新后的响应将不会下载到收件箱。

因此,如果需要多个用户持续对现有响应进行编辑和更新,建议您不要对同一调查启用已发送文件夹和收件箱

WHERE 表达式

可在 Survey123 外业应用程序的收件箱中编辑的调查将由 Survey123 Connect 中调查的选项选项卡上指定的查询表达式决定。 每次修改此查询时都必须发布调查才能使更改生效。

查询表达式必须使用 ArcGIS 支持的常规 SQL 语法和函数。 所有查询都将针对调查的要素图层运行,因此您可以使用要素图层的 REST 端点上的查询操作来构建和测试您的表达式。 有关该过程的详细信息以及查询语法的示例,请参阅查询(要素服务)。 有关受支持函数的详细信息,请参阅 ArcGIS Online 中的标准化 SQL 函数

以下为使用案例和语法示例:

  • 此示例将返回 rating 字段中的数字大于或等于 2 的调查:

    rating>=2

  • 此示例将返回 EditDate 字段中日期为 2017 年 4 月 13 日或晚于该日期的调查:

    EditDate>='2017-4-13'

  • 此示例将返回 Editor 字段等于 'BKlauser' 的调查:

    Editor='BKlauser'

  • 此示例将返回 status 字段等于 'for_review' 的调查:

    status='for_review'

  • 此示例将返回 inspection_date 字段中的日期在过去 7 天之内的调查:

    inspection_date>CURRENT_DATE-7 AND inspection_date<=CURRENT_DATE

  • 此示例将返回 project_status 字段不等于 'complete' 的调查:

    project_status<>'complete'

  • 此示例会返回 final_approval 字段为空(空值)的调查:

    final_approval IS NULL

  • 此示例会返回 final_approval 字段不为空(空值)的调查:

    final_approval IS NOT NULL

收件箱查询也支持 username 变量。 此变量必须以与 XLSForm 表达式相同的格式指定。 例如,查询 Creator=${username} 将返回由当前登录的用户创建的所有调查记录。

注:

username 变量是唯一允许在收件箱查询表达式中使用 XLSForm 语法的情况。 尽管 username 变量必须写为 ${username},但其值派生自登录用户的 ArcGIS 账户,而不是调查中的问题。

要从包含多用户列表的字段返回登录用户的记录,必须在查询中使用 POSITION() 函数。 例如,查询 POSITION(${username} IN assigned_to) > 0 将返回包含登录用户的所有调查记录,其中 assigned_to 字段中的值可能是所有可能被分配者的逗号分隔列表,例如 'George_Smith, Nick_Jones'。

空间过滤器

在收件箱中,选择刷新将更新列表选项卡中显示的调查列表。 刷新操作通常返回满足收件箱查询表达式(如果已设置)并且尚未存储在设备上其他文件夹中的所有调查。 当选择地图选项卡中的刷新时,可以应用空间过滤器更新列表,以仅显示当前地图范围内的调查。

要启用空间过滤器,请选择 Survey123 Connect选项选项卡上的地图选项卡可见时应用空间过滤器。 在以下示例中,当选择刷新时,调查列表将更新以仅显示当前地图范围内可见的四个调查响应。 如果您的调查已设置实例名称,则地图上的每个要素都将使用该实例名称进行标注。

空间过滤的“地图”选项卡

重复

Survey123 允许编辑收件箱已发送文件夹中具有相关记录的要素。 可以添加新记录或编辑现有记录,但是不支持删除现有记录。 默认情况下,将禁用编辑现有记录,除非通过查询参数启用 allowUpdates=true

bind::esri:parameters 列可用于为重复提供可选参数。 这些参数格式化为键值对,其中值包含用引号括起来的空格。

默认情况下,相关记录不会通过收件箱已发送文件夹中的调查响应提供。 要访问响应的相关记录,需要在 begin repeat 问题类型的 bind::esri:parameters 列中定义查询。 查询属性支持与以上 WHERE 表达式相同的参数,例如 query="Editor='BKlauser'",用于仅下载 Editor 字段中具有 'BKlauser' 的相关记录。

要下载相关表中的所有记录,请指定没有任何参数的查询 (query)。

可以通过 begin repeat 问题类型的 bind::esri:parameters 列应用于重复的参数包括:

  • query - 允许查询记录并将其下载到相关表格中,例如 query="severity='high'"
  • allowAdds - 允许在编辑时将新记录添加到重复。 默认为 true。 可以使用 allowAdds=false 将其设置为 false。
  • allowUpdates - 允许在编辑时对重复中的现有记录进行更新。 默认为 false。 可以使用 allowUpdates=true 将其设置为 true。

可以同时使用以空格分隔的多个键值对,例如 allowUpdates=true query="Editor='BKlauser'"。 如果这些值中包含空格,可以使用引号将其括起来。

图像

Survey123 允许用户向现有的调查记录添加图像。 虽然不支持编辑现有图像,但在编辑调查时为每个图像问题都提供了一个复制按钮,可复制现有图像以供旋转、重命名或使用 drawannotate 外观进行编辑。

默认情况下,已启用提供新图像。 要禁用此功能,请在 bind::esri:parameters 列中输入 allowAdds=false

图像编辑存在一些已知的限制:

  • 不支持离线工作流。
  • signature 外观不支持复制函数。
  • 图像附件将使用关键字属性将图像与其提交的问题相关联。 ArcGIS Enterprise 10.8.1 之前的版本不支持关键字属性,因此如果将图像提交到 ArcGIS Enterprise 10.8.1 之前的版本在门户上发布的调查,则该图像不会与问题关联。 同样,通过调查以外的方法(例如,在 ArcGIS ProArcGIS Online Web 地图中)附加到要素的图像可能不具有关键字。
  • 将现有调查从收件箱下载到设备以供使用时,不会下载现有图像。 count-selected 函数仅对设备上的图像进行计数,当调查首次打开时,返回 0。 计数将包含捕获的所有新图像。