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

当未配置层的 更新子网策略 以管理 Status 属性时,将简化子网生命周期。 在这种情况下,无论更新子网操作成功还是失败,子网始终显示为 Dirty 。 下图说明了未配置为管理 Subnetworks 表上的 Status 的层中子网的生命周期:

子网状态
系统提供多种工具用于子网管理,这工具会影响子网的状态。 子网的状态可确定能够在子网上运行的操作。
子网可以是清洁子网、脏子网或无效子网。 将由 子网表 中的 Status (Is dirty) 字段进行追踪,并在更新时应用于子网的所有子网控制器。 子网状态定义如下:
脏 - 脏子网是包含更新子网操作尚未处理的已验证编辑内容的子网。 修改子网中网络要素的几何或网络属性后, 验证网络拓扑 会发现子网的控制器并将其标记为脏。 脏子网的子网表中的所有控制器都将其
Status设置为Dirty。无效 - 无效子网是在更新子网操作期间发现 验证一致性失败 或 子网错误 的子网。 这些问题和错误必须通过修改受影响网络要素的几何或网络属性并进行验证以更新子网状态(将其更改为
Dirty)来解决。 在更新子网操作期间,将忽略无效子网,并且必须先将其设置为脏子网,然后才能再次对其进行更新并将其标记为Clean。 无效子网的子网表中的所有控制器都将其Status设置为Invalid。注:
使用 企业级部署 时,支持无效子网状态的逻辑需要 ArcGIS Enterprise 11.1 或更高版本。
清洁 - 清洁(或一致)子网是已成功更新的子网。 Subnetworks 表中的所有控制器、SubnetLine 要素类中的记录、子网系统逻辑示意图以及已修改网络要素的各种字段均已更新,并与对网络拓扑进行的更改同步。 干净子网的子网表中的所有控制器都将其
Status设置为Clean。
子网管理任务及其影响
下表中列出了可对公共设施网络进行的多种编辑,这些编辑会影响子网状态或子网组件:
操作 - 所执行操作的描述
操作结果 - 子网中的更改列表
启用和禁用网络拓扑
将禁用网络拓扑以执行管理任务,例如管理网络规则、修改终端配置、解决子网错误或更新子网定义。 禁用操作完成后,Subnetworks 表中的所有子网控制器和 SubnetLine 要素类中的所有要素将标记为脏。 公共设施网络完成配置并可供使用后,即可初始启用网络拓扑,以处理脏区域、运行追踪并生成网络逻辑示意图。 启用操作后,将生成脏区以标记网络中存在 拓扑错误 的要素,Subnetworks 表中的所有子网控制器将标记为脏,并且 SubnetLine 要素类中的任何要素将标记为脏。
下表概述了启用和禁用网络拓扑对子网状态的影响:
|
操作 |
操作结果 |
|---|---|
|
启用网络拓扑。 |
|
|
禁用网络拓扑。 |
|
修改要素并验证网络拓扑
当通过编辑网络要素的关联、终端配置信息、网络属性或几何来创建或修改网络要素时,将创建脏区以标记编辑内容的位置。 可用于指示已发生未在网络拓扑中反映的网络更改。 验证网络拓扑时,将对脏区进行清洁。 成功验证网络要素后,将使用更改来更新网络拓扑,同时将 Subnetworks 表和 SubnetLine 要素中的相应子网控制器标记为 Dirty 。 此脏状态表示子网状态和网络拓扑不同步。
注:
REST API 中 validateNetworkTopology 操作的响应将返回在操作期间标记为脏的任何子网的名称,以及包含子网的域网络和层作为 discoveredSubnetworks 。
下表概述了修改要素和验证网络拓扑对子网状态的影响:
|
操作 |
操作结果 |
|---|---|
|
创建或修改网络要素。 |
|
|
验证网络拓扑。 |
|
更新子网
更新子网后,将更新 Subnetworks 表中的信息、要素属性和对象,并且可以创建或更新 SubnetLine 要素类中的子网线。 如果在更新操作期间遇到子网错误或验证一致性失败,则更新操作将失败,并且子网将标记为 Invalid 。 要了解详细信息,请参阅 更新子网 。
下表概述了更新子网对子网状态的影响:
|
操作 |
操作结果 |
|---|---|
|
更新子网。 |
当在更新子网操作期间遇到子网错误或验证一致性失败时,更新子网操作将失败,并出现以下情况:
|
移除子网控制器并导出子网
从系统中移除子网并不频繁发生,但在需要时,必须以特定顺序执行多个步骤,才能将其正确移除。 您必须首先 移除子网控制器 ,方法为使用 修改子网控制器 窗格从终端中删除子网控制器设置。 移除此分配后,Subnetworks 表中相关子网控制器的 Is Deleted 属性将标记为 true。 与对网络要素进行的其他修改一样,此操作将创建必须进行清洁的脏区。 验证网络拓扑可确保拓扑是最新的,以使分析操作不再将终端视为子网控制器。 验证后,更新子网会将子网标记为 Clean ,如果已移除的控制器是该子网的最后一个控制器,则该工具还将从子网中任何已连接要素移除子网名称。 已删除的子网控制器将保留在系统中,直到管理员在导出子网时确认删除为止。
要将信息从清洁子网导出到 .json 文件以供外部系统使用,导出子网最常执行的方法。 导出子网操作 也可用于从 Subnetworks 表中移除已删除的子网控制器。 要移除已删除的控制器,请在选中 设置导出确认 参数的情况下运行 导出子网 工具。 此操作将更新 SubnetLine 要素类中的 Last ack export subnetwork 字段,并从子网表中删除控制器的记录,同时更新参与子网的所有剩余控制器的 Last Exported 字段。 移除子网的所有子网控制器后,在选中 设置导出确认 参数的情况下进行导出时,将从 Subnetworks 表中删除子网控制器,子网的 SubnetLine 要素也将一并移除。 自此,子网将不再可用于该层中的分析。
下表概述了移除子网控制器和导出子网信息时对子网的影响:
|
操作 |
操作结果 |
|---|---|
|
移除子网控制器。 |
|
|
导出子网。 |
|