子网生命周期

子网表示层中公共设施网络拓扑的子集,其中所有参与要素均可遍历至相同的子网控制器。 子网的生命周期从其创建时开始,由用户对其进行管理和编辑时的多个阶段组成,仅在将其删除后才结束。 可以通过通常在子网上运行的各种子网管理任务更好地理解这一点。

以下总结了构成子网生命周期的各种子网管理任务:

  • 设置子网控制器 - 可以通过将一个或多个网络要素设置为子网控制器来创建子网。 将设备或交汇点对象上的终端设置为子网控制器时,将定义子网的名称。 将控制器添加到现有子网时,在验证已修改要素之前,现有子网的状态将不变。 如果要创建子网,则 Subnetworks 表SubnetLine 要素类中没有任何表示子网控制器状态的记录。
  • 验证网络拓扑 - 将验证已修改网络要素,以使用更改更新网络拓扑。 在验证操作期间,会执行追踪以发现哪些子网经过修改,并且发现的子网状态会更改为 Dirty
  • 更新子网 - 更新子网操作将从所有子网控制器执行追踪,更新已修改要素的子网名称,为 SubnetLine 要素类中的子网创建或更新记录,更新子网系统逻辑示意图,并将其所有控制器的状态更改为 Clean。 如果在更新子网操作期间遇到验证一致性问题或子网错误,则其所有控制器的状态将更改为 Invalid
  • 修改子网 - 将对子网进行修改以更改其名称,或者从子网中添加或移除子网控制器。 这些工作流将采用与设置新子网控制器相同的方式修改子网。 必须验证更改并更新子网,才能将状态更改为 Clean
  • 移除子网控制器 - 通过使用修改子网控制器窗格从终端中删除子网控制器设置,可以移除子网控制器。 由此可将 Subnetworks 表中控制器的 isDeleted 属性设置为 True。 如果其他控制器仍连接到子网,则可以从子网移除控制器。 否则,将在更新子网后返回一个错误。 这些工作流将采用与设置新子网控制器相同的方式修改子网。 必须验证更改并更新子网,才能将状态更改为 Clean
  • 导出子网信息 - 可以使用导出子网工具将有关子网的信息导出到 .json 文件中。 该信息后续可用于外部系统,例如停电管理和资产追踪程序。 子网的状态必须为 Clean,才能符合导出条件。
  • 删除子网 - 通过移除所有定义子网的子网控制器,可以从公共设施网络的层中删除子网。 移除后,子网控制器的记录将标记为已删除,并将运行更新子网操作以更新网络拓扑,以使分析操作不会将网络要素视为控制器。 然后,可以使用导出子网工具并选中设置导出确认参数,以导出有关已删除子网的信息,并从 Subnetworks 表中移除行,从而有效地从层中删除子网。

子网状态

系统提供多种工具用于子网管理,这工具会影响子网的状态。 子网的状态可确定能够在子网上运行的操作。

子网可以是清洁子网、脏子网或无效子网。 将由 Subnetworks 表中的 Is dirty 属性进行追踪,并在更新时应用于子网的所有子网控制器。 子网状态定义如下:

  • 脏 - 脏子网是包含更新子网操作尚未处理的已验证编辑内容的子网。 修改子网中网络要素的几何或网络属性后,验证网络拓扑会发现子网的控制器并将其标记为脏。 脏子网的 Subnetworks 表中的所有控制器都将其 isDirty 属性设置为 True
  • 无效 - 无效子网是在更新子网操作期间发现验证一致性失败子网错误的子网。 这些问题和错误必须通过修改受影响网络要素的几何或网络属性并进行验证以更新子网状态(将其更改为 Dirty)来解决。 在更新子网操作期间,将忽略无效子网,并且必须先将其设置为脏子网,然后才能再次对其进行更新并将其标记为 Clean。 无效子网 Subnetworks 表中的所有控制器均会将其 isDirty 属性设置为 Invalid
    注:

    使用企业级部署时,支持无效子网状态的逻辑需要 ArcGIS Enterprise 11.1 或更高版本。

  • 清洁 - 清洁(或一致)子网是已成功更新的子网。 Subnetworks 表中的所有控制器、SubnetLine 要素类中的记录、子网系统逻辑示意图以及已修改网络要素的各种字段均已更新,并与对网络拓扑进行的更改同步。 清洁子网的 Subnetworks 表中的所有控制器都将其 isDirty 属性设置为 False

子网管理任务及其影响

下表中列出了可对公共设施网络进行的多种编辑,这些编辑会影响子网状态或子网组件:

  • 操作 - 所执行操作的描述
  • 操作结果 - 子网中的更改列表

启用和禁用网络拓扑

将禁用网络拓扑以执行管理任务,例如管理网络规则、修改终端配置、解决子网错误或更新子网定义。 禁用操作完成后,Subnetworks 表中的所有子网控制器和 SubnetLine 要素类中的所有要素将标记为脏。 公共设施网络完成配置并可供使用后,即可初始启用网络拓扑,以处理脏区域、运行追踪并生成网络逻辑示意图。 启用操作后,将生成脏区以标记网络中存在拓扑错误的要素,Subnetworks 表中的所有子网控制器将标记为脏,并且 SubnetLine 要素类中的任何要素将标记为脏。

下表概述了启用和禁用网络拓扑对子网状态的影响:

操作操作结果

启用网络拓扑。

  • Subnetworks 表中的所有子网控制器均为脏。
  • 所有 SubnetLine 记录均为脏。
  • 所有子网系统逻辑示意图均为脏,并且未标记为系统逻辑示意图。

禁用网络拓扑。

  • Subnetworks 表中的所有子网控制器均标记为脏。
  • 所有 SubnetLine 记录均为脏。
  • 所有子网系统逻辑示意图均为脏,并且不再标记为系统逻辑示意图。

修改要素并验证网络拓扑

当通过编辑网络要素的关联、终端配置信息、网络属性或几何来创建或修改网络要素时,将创建脏区以标记编辑内容的位置。 可用于指示已发生未在网络拓扑中反映的网络更改。 验证网络拓扑时,将对脏区进行清洁。 成功验证网络要素后,将使用更改来更新网络拓扑,同时将 Subnetworks 表和 SubnetLine 要素中的相应子网控制器标记为 Dirty。 此脏状态表示子网状态和网络拓扑不同步。

注:

REST API 中 validateNetworkTopology 操作的响应将返回在操作期间标记为脏的任何子网的名称,以及包含子网的域网络和层作为 discoveredSubnetworks

下表概述了修改要素和验证网络拓扑对子网状态的影响:

操作操作结果

创建或修改网络要素。

  • 不影响子网的状态。

验证网络拓扑。

  • 已修改子网的所有子网控制器将在 Subnetworks 表中标记为 Dirty
  • 已修改子网的所有 SubnetLine 记录将标记为 Dirty
  • 已修改子网的所有子网系统逻辑示意图均为脏。

更新子网

更新子网后,将更新 Subnetworks 表中的信息、要素属性和对象,并且可以创建或更新 SubnetLine 要素类中的子网线。 如果在更新操作期间遇到子网错误或验证一致性失败,则更新操作将失败,并且子网将标记为 Invalid。 要了解详细信息,请参阅更新子网

下表概述了更新子网对子网状态的影响:

操作操作结果

更新子网。

  • 已修改子网的所有子网控制器将在 Subnetworks 表中标记为 Clean
  • 已修改子网的所有 SubnetLine 记录将标记为 Clean
  • 所有子网系统逻辑示意图均为清洁。
  • 如果层的更新子网策略配置为不管理Is dirty属性并且操作是从默认版本运行的,则 Is deleted 属性 = true 的所有子网控制器将从子网表中移除。

当在更新子网操作期间遇到子网错误或验证一致性失败时,更新子网操作将失败,并出现以下情况:

  • 关联子网的所有子网控制器将在 Subnetworks 表中标记为 Invalid
  • 相关联子网的记录在 SubnetLine 要素类中将标记为 Invalid
  • 所有子网系统逻辑示意图仍为脏。
  • 该操作将忽略任何现有无效子网。

移除子网控制器并导出子网

从系统中移除子网并不频繁发生,但在需要时,必须以特定顺序执行多个步骤,才能将其正确移除。 您必须首先移除子网控制器,方法为使用修改子网控制器窗格从终端中删除子网控制器设置。 移除此分配后,Subnetworks 表中相关子网控制器的 Is Deleted 属性将标记为 true。 与对网络要素进行的其他修改一样,此操作将创建必须进行清洁的脏区。 验证网络拓扑可确保拓扑是最新的,以使分析操作不再将终端视为子网控制器。 验证后,更新子网会将子网标记为 Clean,如果已移除的控制器是该子网的最后一个控制器,则该工具还将从子网中任何已连接要素移除子网名称。 已删除的子网控制器将保留在系统中,直到管理员在导出子网时确认删除为止。

要将信息从清洁子网导出到 .json 文件以供外部系统使用,导出子网最常执行的方法。 导出子网操作也可用于从 Subnetworks 表中移除已删除的子网控制器。 要移除已删除的控制器,请在选中设置导出确认参数的情况下运行导出子网工具。 此操作将更新 SubnetLine 要素类中的 Last ack export subnetwork 字段,并从 Subnetworks 表中删除控制器的记录,同时更新参与子网的所有剩余控制器的 Last Exported 字段。 移除子网的所有子网控制器后,在选中设置导出确认参数的情况下进行导出时,将从 Subnetworks 表中删除子网控制器,子网的 SubnetLine 要素也将一并移除。 自此,子网将不再可用于该层中的分析。

下表概述了移除子网控制器和导出子网信息时对子网的影响:

操作操作结果

移除子网控制器。

  • 不影响子网的状态。
  • Subnetworks 表中相关子网控制器的 Is Deleted 属性将标记为 true。

导出子网。

  • 不影响子网的状态。
  • 选中设置导出确认参数时,会出现以下情况:
    • 将从 Subnetworks 表中移除 Is Deleted = true 的所有子网控制器。
    • 将更新相关子网 SubnetLine 记录的 Last ack export subnetwork 字段。