可使用步骤验证确认某步骤中任务用户所编辑、创建或选择的要素数量是否正确。 步骤验证还可以检查属性和要素几何是否满足指定条件。
向步骤添加验证操作可防止任务运行失败。 例如,某任务使用合并工具来合并要素并为其赋予属性值,则可利用步骤验证操作来确认如下内容:
- 在执行合并工具的步骤之前,验证是否已选中两个或多个要素。
- 合并工具执行结束后,通过验证是否已选中某一要素来确认合并是否已成功完成。
- 在下一步中,确认步骤完成时是否为所选要素提供了正确的属性值。
可以在步骤执行命令之前以及步骤完成时配置步骤验证操作。 请参阅以下示例:
- 在执行地理处理工具的步骤之前,可利用步骤验证检查是否选择了正确的要素。
- 在完成某一步骤并移至下一步骤之前,可通过步骤验证检查是否已创建具有正确属性的正确要素数量。
步骤验证表达式类型
可以使用结构化查询语言 (SQL) 或 Arcade 创建步骤验证表达式。
结构化查询语言 (SQL)
SQL 表达式使用运算符和数学函数的组合来查询属性并评估逻辑语句。
使用 SQL 表达式的步骤验证用于查询在步骤中创建、修改或选择的要素数或记录数是否满足指定条件。 例如,SQL 验证表达式可以查询并验证在步骤中创建的要素数是否大于指定数量。
如果步骤验证表达式不满足指定条件,可能显示一条错误消息并且任务不会移至下一步。
Arcade
Arcade 表达式使用包含运算符、数学函数和空间查询的多行脚本创建更加复杂的评估。 Arcade 表达式可以查询数据,还可以评估要素之间的空间和拓扑关系。 例如,Arcade 步骤验证表达式可以验证在步骤中创建的新要素几何是否与其他要素几何相交。
Arcade 验证表达式必须返回 true 或 false。 如果满足表达式中的所有条件,表达式必须返回 true;如果表达式中至少有一个条件未满足,则必须返回 false。 如果步骤表达式返回 false,可能显示一条错误消息并且任务不会移至下一步。
Arcade 验证表达式使用任务 Arcade 配置文件。 Arcade 配置文件是评估和理解 Arcade 表达式的上下文。 Arcade 配置文件需要特定的输入和输出。 例如,任务 Arcade 配置文件返回的类型始终是布尔型(true 或 false)。
使用 Arcade 表达式的益处
与 SQL 表达式相比,Arcade 表达式具有以下益处:
- Arcade 表达式可以查询和评估要素的属性和空间关系。
- Arcade 表达式不会存储为数据库方案的一部分。 可独立于数据进行创建。
- 采用多行脚本形式的表达式可能更加复杂。
添加步骤验证
要添加步骤验证操作,按照以下步骤:
- 在任务窗格中,展开任务并选择您想要配置的步骤。
- 单击任务设计器窗格中的操作选项卡。
- 单击执行命令前或退出步骤时下的添加操作下拉菜单,然后选择验证。
提示:
可为单个步骤配置多个验证。
- 从验证要素数或记录数下拉列表中选择要验证的要素。
还可根据已保存选择对要素进行验证。
- 从表中下拉列表中选择待验证要素的属性表。
- 在表达式类型下拉列表中选择表达式类型。
可以使用 SQL 或 Arcade 创建验证表达式。
- 如果正在使用 SQL,按照以下子步骤:
- 从应满足的条件下拉列表中选择验证条件。
- 通过单击使用表达式过滤所选内容选择是否应用过滤器检查要素属性。
可使用过滤器表达式验证正在接受验证的要素属性是否满足指定的条件。 例如,可验证所选建筑物覆盖区要素中的 AssetNumber 字段是否为空。
- 键入一条错误消息,当验证条件未得到满足时,将在阻止步骤继续执行并显示此错误消息下显示该错误消息。
- 单击完成添加验证操作。
- 如果正在使用 Arcade,按照以下子步骤:
- 使用要素类字段和 Arcade 函数构建评估表达式。
表达式必须返回 true 或 false。
例如,如果正在评估的要素的 Name 字段不为空,以下 Arcade 表达式返回 true:Return !IsEmpty($feature.Name。
- 键入 Arcade 表达式返回 false 时要在阻止步骤继续执行并显示此错误消息下显示的错误消息。
- 单击完成添加验证操作。
- 使用要素类字段和 Arcade 函数构建评估表达式。