要在离线时仍可使用地图,您可以在地图所使用的要素服务中启用同步功能。同步功能包括允许客户端使用数据本地副本的操作。如果发布者选择启用此功能,客户端便可编辑数据的本地副本并在连接可用时与要素服务进行同步。
注:
ArcGIS 客户端和开发人员 SDK 会逐步在要素服务中增加同步功能支持,该功能已引入 ArcGIS 10.2.1。支持离线使用地图以及使用同步功能来同步更改的首批客户端为 ArcGIS Collector 和 ArcGIS Runtime SDK。无法在 ArcGIS 10.2.1 之前发布的要素服务中启用同步功能。
其他客户端可通过 ArcGIS REST API 访问同步功能。
数据准备
要使用同步功能,要素服务中的所有数据必须都来自企业级地理数据库,并且必须将数据注册到地理数据库。此外,您还必须准备数据,以便数据可在离线时使用,并根据需要在您建立连接时通过要素服务进行同步。
在启用了同步功能的要素服务中使用的数据可以是启用存档功能的非版本化数据,如果您的组织数据或工作流需要,也可以将数据注册为版本。
请注意,仅当地图中的所有数据配置完全相同时,才能启用同步功能;不可以混合版本化数据和非版本化数据、传统版本化数据和分支版本化数据。
数据库中的权限
当您对 ArcGIS Server 要素服务使用同步功能时,同步过程将在企业级地理数据库中创建一个临时表,以在应用程序和数据库之间移动数据。这意味着连接以执行同步的数据库用户必须能够在数据库中创建临时表。在某些数据库管理系统中,创建临时表需要特定的权限或其他配置。请查阅数据库管理系统文档,以验证使用数据库中的临时表所需的权限和空间要求,并咨询您的数据库管理员,以确保您具有这些权限或所需表空间的访问权限。
启用存档功能的非版本化数据
可在启用了同步功能的要素服务中使用启用存档功能的非版本化数据。如果数据为非版本化数据,客户端将始终使用数据的当前形式。离线运行的客户端再次连接到要素服务后,便不需要使用后台进程获取最新更改。
按下述方式准备非版本化数据来与同步功能结合使用:
有关此场景演练的详细信息,请参阅教程:配置要素服务数据以供离线使用。
可以从 10.2 或更高版本的企业级地理数据库发布参考非版本化数据的要素服务、对数据进行离线编辑并通过要素服务使用企业级地理数据库进行同步更改。
传统版本化数据
如果您的组织要求以下任意一项,请使用传统版本化数据:
- 数据参与到需要对其进行版本化以供编辑的地理数据库功能。例如,如果要素类参与到几何网络中,则要素数据集必须注册为传统版本。
- 您的组织具有需要数据以使用传统版本化的工作流,例如具有数据的质量保证版本。
如果需要使用传统版本化,请按下述方式准备数据:
- 将全局 ID 添加到数据集。
- 将数据集注册为版本化数据集。不要使用将编辑内容移动到基表的选项进行注册。
- 关系类和附件必须使用全局 ID 列或用户管理的字段作为主键。有关详细信息,请参阅本主题的附件和关系类部分。
可以发布引用传统版本化数据的要素服务、对数据进行离线编辑,并通过要素服务使用企业级地理数据库进行同步更改。
有关详细信息,请参阅离线地图与版本化数据。
分支版本化数据
可以在 10.6 或更高版本的企业级地理数据库中发布注册为分支版本化数据的要素服务。可以对数据进行离线编辑,并通过要素服务使用企业级地理数据库进行同步更改。
注:
发布数据时,请确保已使用连接到企业级地理数据库的分支版本将数据添加到地图,并确保地图中的所有数据都已进行分支版本化。
默认情况下,离线数据是使用简单模型创建的。例如,在使用公共设施网络或宗地结构时,离线地理数据库中仅包含相关要素类。离线数据中不包括公共设施网络数据集和宗地结构。
编辑和同步公共设施网络数据时,将会在服务上创建脏区。需要在 ArcGIS Pro 中验证这些区域。
可以从以下版本的默认分支版本发布数据:从 ArcGIS Pro 2.1 或更高版本到 ArcGIS Enterprise 10.7 或更高版本。从 10.8.1 和 ArcGIS Pro 2.6 开始,还有一个发布分支版本化数据的附加选项,可用于在离线使用要素服务时从默认版本创建指定分支版本。当发布要在离线地图中使用的分支版本化数据时,您可以根据以下同步 > 版本创建选项控制离线编辑中使用的版本:
- 无 - 离线使用数据时,不会创建任何指定版本。当移动编辑者与地理数据库同步时,其直接与默认版本同步。此行为自 ArcGIS Pro 2.1 和 ArcGIS Enterprise 10.7 起即存在。
- 为每个下载的地图创建版本 - 每次离线使用包含此要素服务的 Web 地图时,都会创建指定版本。此版本也称为复本版本。当移动编辑者同步时,它们将与复本版本同步。
有关使用这些选项的信息,请参阅离线地图和分支版本化数据。
与默认版本同步
在此工作流中,移动编辑者下载 Web 地图时离线使用的要素服务数据来自于地理数据库中默认版本的当前状态。当用户同步其离线编辑的数据时,这些编辑内容将进入默认版本。这表示,以默认版本查看数据的任何人都可以立即使用这些编辑内容。这也意味着从地理数据库下载数据的其他现场编辑人员将收到这些更新。
此工作流要求数据注册为分支版本化。如果数据需要进行编辑,则向连接和发布数据的用户授予编辑地理数据库中数据所需的权限。
此工作流较为简单,且几乎没有滞后时间即可进行编辑,但是您无法在其他人看到编辑内容之前进行查看。如果需要先查看离线编辑内容,然后才能将其提供给其他访问数据的用户,则需要使用复本版本。
与复本版本同步
在此工作流中,发布者将要素服务发布到联合 GIS Server 站点时会将要素服务配置为为每个下载的地图创建版本。然后,只要移动编辑者离线使用数据,就会从默认的当前状态创建指定版本。在离线工作流中,此指定版本称为复本版本。当移动编辑者同步字段编辑时,这些编辑内容将应用至复本版本。移动工作人员可以反复将编辑内容同步到复本版本。
您必须执行以下操作以准备将数据同步到复本版本:
- 您发布的数据必须注册为分支版本化。
- 必须对数据启用复本追踪。对分支版本化图层运行启用复本追踪地理处理工具,然后将其添加到地图并发布。如果使用为每个下载的地图创建版本选项发布前未对数据启用复本追踪,则您将收到分析器错误,且只有纠正错误后才能发布。
- 向连接和发布数据的用户授予编辑地理数据库中数据所需的权限。
要提高数据质量,您还可以在发布启用了同步的要素服务之前创建属性规则,并将其添加或导入到您的分支版本化要素类中。
此工作流要求默认门户管理员角色成员或具有版本管理权限的自定义角色成员查看并解决冲突,协调和提交从复本版本到默认版本的更改,以使任何人都可以访问编辑。这表示此工作流需要更多的管理,且在进行编辑和将其提供给组织中的其他成员之间存在较长的滞后时间。但是,您可通过此工作流在广泛使用编辑内容之前,完成其质量保证审核。
全局 ID
添加至离线数据集的全局 ID 不能基于自定义字段;它们必须明确使用由 ArcGIS 创建的全局 ID 字段。要为数据添加全局 ID,请使用添加全局 ID 地理处理工具,或位于目录树中要素类、要素数据集和表快捷菜单上的添加全局 ID 命令。
附件和关系类
如果要离线使用的数据包含附件或加入到某关系类,则表之间或表与附件之间的关系必须以全局 ID 列或用户管理的字段作为主键。如果以 ObjectID 列作为主键,则会在下载离线用数据时返回错误。可以使用迁移关系类地理处理工具将基于 ObjectID 的关系类和附件转换为以全局 ID 字段作为主键。
GIS Server 站点的托管数据库
如果在向 GIS Server 站点发布时启用同步功能并且选择将数据复制到站点的托管数据库,则不需要进行数据准备。发布过程会将数据自动设置为支持同步功能。如果在发布时未将数据复制到站点的托管数据库或者在向托管数据库发布并复制数据之后才启用同步功能,则必须按之前部分所述准备地理数据库数据。
编辑者追踪
可以使用编辑者追踪离线时编辑的数据。将数据下载到客户端以供离线使用时,编辑者追踪字段的现有值会随数据其余部分一起复制到客户端。离线使用数据时,创建或编辑要素的日期和时间会分别记录到创建日期和编辑日期这两个字段中。数据与服务进行同步时会保留这些值。
注:
如果日期字段以某个时区而不是 UTC 来存储值,请在发布服务的时候指定该时区。如果未指定该时区,则假定为 UTC。ArcGIS 会将指定的时区应用于所有追踪日期字段的编辑器。
离线数据包括离线使用地图的用户的名称。它与编辑者追踪如下一同使用:
- 对于离线状态下创建的要素,创建者名称值将设置为使用离线地图的用户。
- 对于离线状态下编辑的现有要素,编辑者名称值将设置为使用离线地图的用户。这些要素的创建者名称值不会发生更改。
使用离线地图的人员或 ArcGIS Server 管理员均可连接至服务和同步数据。
分布式协作中的编辑者追踪
在分布式协作工作流中使用编辑者追踪时,行为如下:
协作之前启用发送组织的编辑者追踪时,会启用接收组织的要素图层的编辑者追踪。首次将数据复制到接收组织时,将重置编辑者追踪值,其中日期将设置 UTC 当前时间戳,并且创建者和编辑者将设置为发布用户。重置值将新复制的数据反映到新的组织中。进行同步时,将保留发送组织的编辑者追踪日期。因此,从共享数据的时间开始,接收组织将包含在发送组织中进行编辑的日期。从复制要素图层的时间开始,同步到接收组织中的插入和更新的创建者和编辑者值将设置为副本所有者(发布用户)。
对于协作中要素图层内的图层,可以启用某些图层的编辑者追踪,但是无法启用其他图层的编辑者追踪。在这种情况下,从 ArcGIS Enterprise 或 ArcGIS Online 进行发送时,将启用 ArcGIS Online 托管要素图层中所有图层的编辑者追踪。将启用 ArcGIS Online 和 ArcGIS Enterprise 的编辑者追踪,具体行为如上所述。仅在 ArcGIS Online 中启用图层的编辑者追踪时,同步过程将根据当前时间戳和副本所有者(发布用户)来设置编辑者追踪值。
从 ArcGIS Online 到 ArcGIS Enterprise 进行协作并且启用编辑者追踪时,ArcGIS Online 和 ArcGIS Enterprise 中要素图层的所有图层都将启用编辑者追踪。
如果在将要素图层添加到协作之后启用编辑者追踪,则接收组织将不会启用编辑者追踪。
将保留接收组织的访问控制设置,但没有任何结果,因为所有要素归接收组织中的副本所有者所有。
属性规则
从 ArcGIS Pro 发布的参考注册数据的要素图层可以包含属性规则。编辑要素图层时,ArcGIS 将应用您在地理数据库中定义的属性计算和约束规则。当编辑违反其中一个规则时,编辑者将收到错误。但是,如果离线编辑数据,则属性规则信息不会包含在离线数据中。对数据与要素图层进行同步时,将同时应用规则。违规的处理方式取决于数据的注册方式。
- 如果使用注册为版本化的数据,则属性规则冲突将阻止同步进程发生。当编辑违反属性规则时,同步将返回错误。您必须在数据的离线版本中解决冲突,然后再次尝试同步。
- 如果使用启用存档的非版本化数据,则将完成同步,但是不会应用违反属性规则的编辑。对于未同步的编辑,会将信息写入 ArcGIS Server 日志。如果使用非版本化数据和属性规则,则应始终在同步后检查 ArcGIS Server 日志,以查看未同步的编辑(如果存在)。解决离线版本数据中的冲突,然后再次同步。
托管要素服务
如果您正在发布 ArcGIS Online(托管要素图层)托管要素服务,则会在启用同步功能后自动准备数据(始终为非版本化数据)以使用同步功能。这是因为发布者无法访问 ArcGIS Online 托管服务器,因而无法手动准备数据以使用同步功能。
将托管要素图层发布到 Portal for ArcGIS 后,数据将复制到门户托管服务器的托管数据库。同时,始终未版本化该数据。如果门户的托管服务器将 ArcGIS Data Store 关系数据存储用于托管数据库,则会自动准备数据,以便在启用同步功能时使用同步。如果未使用用于托管数据库的关系数据存储,则您可能需要手动更改数据以进行同步。有关详细信息,请参阅 Portal for ArcGIS 帮助中的为离线制图启用托管要素服务。
旧版本:
ArcGIS Enterprise 10.5.1 是允许使用企业级地理数据库作为托管服务器的托管数据库的最新版本。如果需要配置新的托管服务器,请使用关系 ArcGIS Data Store。
要素服务准备
创作要素服务时,发布者会选择一些选项,这些选项用于定义可通过服务执行的编辑。以下部分将介绍离线使用地图时应用这些选项的方法。
允许的操作(功能)
要素服务功能可定义使用要素服务时允许执行的操作。对于参与离线地图使用的要素服务,支持的配置有两种:
- 只读数据 - 如果客户端仅查询从要素服务下载的数据以离线使用,则在要素服务上设置查询和同步功能。通过此配置,无法在离线时编辑数据,也无法将数据同步回服务。
- 可编辑数据 - 如果客户端要在离线时编辑数据并在建立连接时将所做更改与要素服务进行同步,则在要素服务上设置以下功能:
- 查询
- 同步
- 创建、删除和更新的任意组合
注:
- 如果地图包含错误图层并且在要素服务上启用了同步,请注意不应在离线地图中编辑这些错误图层。如果这样做,在同步时编辑将不会应用于错误图层。
所允许的操作仅应用于发布者和用户。服务器管理员和服务所有者对启用了所有操作的服务具有完全访问权限。
因此,管理员或服务所有者离线使用的数据始终可编辑。如果您需要只读离线要素图层,则这些图层必须由非管理用户而非要素服务所有者离线使用。
若您在发布到 ArcGIS Pro 中活动门户的联合服务器时启用同步功能,则将数据注册为版本化时,您还有其他选择。有关这些选项的信息,请参阅 ArcGIS Pro 帮助中的共享 web 要素图层。
创建要素服务后,发布者和管理员可以选择禁用同步功能。例如,发布者或管理员可以在执行数据维护任务(如重新构建索引)期间禁用服务上的同步功能,以阻止客户端与服务同步。
短事务
如果使用非版本化数据,编辑启用同步功能的要素服务时,避免编辑事务长时间处于打开状态。例如,如果您计划在 ArcMap 中编辑非版本化数据,而该数据同时由要素服务用于同步功能,请确保定期保存编辑并在编辑会话完成时停止编辑。
几何更新和真曲线
可以将要素服务配置为允许对包含真曲线的数据进行几何更新和编辑。将编辑从客户端同步到服务时会强制执行这些设置。如果客户端执行的任何编辑违反要素服务的几何更新和真曲线设置,则不会将这些编辑与服务进行同步。
基于所有权的访问控制
可以使用基于所有权的访问控制来控制要素访问。如果客户端执行的任何编辑违反基于所有权的访问控制规则,则不会将这些编辑与服务进行同步。这种情况下,同步编辑所用的登录用户将被视为编辑者。
使用离线地图的人员或 ArcGIS Server 管理员均可连接至服务和同步数据。管理员对离线状态下所做的编辑进行同步时,基于所有权的访问控制将取决于使用离线地图的指定用户,而不是管理员。
不可见和只读字段
创作要素服务时,可以选择将某些字段设置为只读字段或对要素服务不可见。对要素服务不可见的字段不会被下载到客户端以供离线使用。只读字段在已下载的数据中仍为只读状态。
注:
启用同步功能后,必须显示以下内容;否则,地图将无法离线使用。
- 子类型
- 如果存在关系类,则必须显示主键和外键字段
- 如果已启用编辑者追踪,则必须显示编辑者追踪字段
地图图层
无法对发布至 ArcGIS Server 或 Portal for ArcGIS 的包含两个基于相同要素类的图层的要素服务进行离线设置、编辑和同步。
例如,如果将道路要素类添加到地图以显示所有道路,添加相同道路要素类并针对其设置定义查询以显示正在施工的道路,然后从地图发布要素服务,则无法对要素服务进行离线编辑,也无法进行在线同步更改。
同步选项
只读要素服务(仅启用查询和同步功能)包含版本化数据时,如果离线使用数据,则不会创建任何版本。客户端与发布版本同步后,对发布要素服务所做的更改会自动应用于客户端。
对于可编辑要素服务,同步选项和行为会有所不同,具体取决于您用于发布的客户端以及服务中的数据是针对传统版本化还是针对分支版本化而注册。
- 发布来自 ArcGIS Pro 的分支版本化数据 - 同步选项可确定每次离线使用地图时是否创建版本,或者是否均不创建任何版本。有关使用这些选项的方案的描述,请参阅使用离线地图和分支版本化数据。
- 发布来自 ArcGIS Pro 的传统版本化数据 - 除了可选择针对每个离线地图均不创建版本和创建一个版本之外,您还可以选择为每个登录名创建一个版本。
- 发布来自 ArcMap 的传统版本化数据 - 默认情况下,每次包含要素服务的地图离线时都会创建一个版本,但是您可以在 ArcGIS Server Manager 中更改此设置。有关对传统版本化数据使用不同同步选项的说明,请参阅离线地图和传统版本化数据。
当客户端将更改同步到要素服务时,如果您对服务进行配置,使得编辑内容应用于默认版本,因此不会创建任何版本。如果将服务配置为针对离线或每次登录的地图创建版本,则编辑内容将同步到该版本。地理数据库管理员必须执行协调和提交过程,以共享编辑内容。
注:
为同步创建的版本名称不能超过 30 字节。
ArcGIS Server 站点的管理员或服务发布者可以在 ArcGIS Server Manager 中更改服务的同步选项。
请按照以下步骤更改包含版本化数据的要素服务上的同步选项:
- 以服务所有者或 ArcGIS Server 管理员的身份登录到 ArcGIS Server Manager。
- 确保选择 ArcGIS Server Manager 顶部的服务。
- 浏览至要素服务,然后单击服务名称以打开该服务的信息。
- 单击功能。
- 选择要素访问。
- 在属性下单击高级选项。
随即打开要素服务高级选项对话框。
- 在同步下进行选择,为每一个已下载的地图或用户创建一个版本。
- 单击确定关闭要素服务高级选项对话框。
- 单击保存并重新启动将设置更改应用于您的要素服务。
重新启动时,该服务将不可用。
通过数据本地副本下载或与服务同步进行的输出
将数据下载到本地客户端时,会在 ArcGIS Server 输出目录中创建一个包含相应数据的文件,然后您的客户端将下载该文件。默认情况下,任何超过 10 分钟未被任何进程访问的文件均会从输出目录中移除。如果您预计 10 分钟后客户端才开始下载该文件,则可以创建另一个清理时间更长的输出目录,并为您的要素服务使用此输出目录。此外,您还可以延长默认输出目录的清理时间,但是这将影响使用此默认输出目录的所有服务。
注:
使用 createReplica 操作创建数据的本地副本时,要选择图层、表格以及要复制数据的范围。默认情况下,本地副本中包含与表格中的范围和行相交的要素,其中表格与这些要素相关。对于表格,可以选择应用查询过滤器或包含所有行,而不使用默认设置。复制大量数据并且有许多关系类时,设置表格的过滤器或所有行可以提高性能。要设置过滤器或包含所有行,请参阅 ArcGIS REST API 帮助中 createReplica 操作的 layerQueries 参数。
同步和异步模式
用于下载数据本地副本或将更改同步到服务的同步操作既可在同步模式下运行也可在异步模式下运行。使用同步模式时,由服务完成处理;因此,会应用服务设置,包括使用的最小和最大实例数、超时间隔和回收间隔等。使用异步模式时,由随 ArcGIS Server 提供的预先配置的 SyncTools 地理处理服务完成处理;因此,会应用 SyncTools 地理处理服务的设置。
同步过程的系统信息
下载数据以供离线地图使用或将更改同步回服务时,与这些过程相关的信息会存储在要素服务作为源数据使用的企业级地理数据库的系统表中。要素服务的复本资源列出了要素服务的元数据。如果服务受保护,则只会列出与登录用户或匿名用户相关的元数据。地理数据服务也包含复本资源,其中列出了引用地理数据库的所有要素服务的元数据。管理员可使用地理数据服务执行多种任务,如列出每个服务的元数据或移除属于已移除要素服务的元数据。