地理处理服务示例:列出、创建和删除地理数据库版本
文件夹 |
GDB 版本 |
权限用途 |
使用这些工具通过 ArcGIS Server 在您的企业级地理数据库中列出、创建和删除版本。 |
服务 |
GDBVersions(地理处理服务)。 |
地理处理任务 |
ListVersions、CreateVersion、DeleteVersion |
输入 |
企业级地理数据库 - 要创建或删除的版本名称 |
输出 |
ListVersions 会在地理数据库中输出一个版本表格 |
数据 |
用户必须提供一个企业级地理数据库 |
扩展名 |
无 |
对应的文件夹
本示例的数据可从 ArcGIS.com 下载。下载后,提取 zip 文件至 C:\arcgis\ArcTutor。GP Service Examples\GDBVersions 文件夹包含了完成的模型和 Python 脚本。
关于本示例
此示例显示了创建和使用地理处理服务的详细步骤,该地理处理服务包含了管理地理数据库版本的任务。服务中使用的 ListVersions、CreateVersion、DeleteVersion 模型工具来自于数据管理工具箱版本工具集。这些地理处理任务可使您得到地理数据库版本列表、创建新版本或删除现有版本。应用程序可使用这些工具支持版本化的工作流,工作流包括地图服务和要素服务。视应用程序的要求而定,并非所有任务都需要发布。例如,当应用程序需要支持仅在版本间切换时,才需要发布 ListVersions 任务。
数据
此示例需要的现有企业级地理数据库拥有您希望通过地理处理服务显示给用户的版本。
模型和工具数据
地理处理服务的工具箱是 GDBVersions.tbx。
模型概览
为更好地理解模型,将 GDBVersions.tbx 工具箱展开。
ListVersions
右键单击 ListVersions 模型,然后选择编辑以便在模型构建器中打开模型。模型 ListVersions 如下图所示。有一个输入变量,Enterprise_GDB。运行模型时,您必须提供连接(指向您要使用的企业级地理数据库)。
VersionListToTable 工具是一个脚本工具,在 GDBVersions.tbx 中也提供。通过右键单击 VersionListToTable 脚本,然后选择编辑在默认的 Python IDE 中打开 Python 代码,即可查看该工具执行的 Python 代码。该脚本将创建一个输出表格,并在表格内填充关于公共版本和受保护版本和私有版本的信息,对此私有版本所有者提供了 Enterprise_GDB 连接。
如果对连接使用操作系统认证,这将包括公共版本和受保护版本,以及由 ArcGIS Server运行的账户所拥有的私有版本。在 ArcGIS 的典型安装中,服务器将以安装时创建和配置的 ArcGIS 帐户运行。
输出表格包含以下与各个版本有关的信息:
字段 | 说明 |
名称 | 版本的全限定名称。 |
access | 表明版本是公共、私有还是受保护。 |
created | 版本的创建日期。 |
description | 同版本一起存储的描述。 |
isowner | 指示连接的用户是否拥有版本。 |
lastmodified | 上次修改版本的日期。 |
parentversionname | 父版本名称。 |
根据默认,将创建一个名为 versions 的内存表。您也可修改模型,以创建一个写入到输入地理数据库的表格。每次运行 ListVersions 工具时,之前创建的表格将被删除,用新表格代替。
CreateVersion
右键单击模型 CreateVersion,然后选择编辑。模型 CreateVersion 如下图所示。此模型有两个输入变量:要创建的新版本的 Version Name 和 Enterprise_GDB。当运行模型时,与之前对 ListVersions 模型的操作一样,您必须对连接(指向您希望使用的企业级地理数据库)提供 Enterprise_GDB 参数。您如果计划同其他模型一起发布此模型,请确保引用同一个企业级地理数据库连接。
CreateVersion 工具在企业级地理数据库中创建了一个新版本,该版本在 Enterprise_GDB 中用 Version Name 参数提供的名称对其进行了引用。在模型中,该版本从默认版本创建,并成为私有。您可以更改这些参数以适应您的应用程序需要。如果执行任务或服务时试图创建一个已经存在的版本,就会返回错误。
DeleteVersion
右键单击 DeleteVersion 模型,然后选择编辑以便在模型构建器中打开模型。模型 DeleteVersion 如下图所示。此模型有两个输入变量:要删除版本的 Version Name 和 Enterprise_GDB。当运行模型时,您必须提供 Enterprise_GDB 参数给连接(指向您希望使用的企业级地理数据库)。您如果计划同其他模型一起发布此模型,请确保引用同一个企业级地理数据库连接。
RemoveVersion 工具会从企业级地理数据库中删除一个现有版本(在 Enterprise_GDB 中以所提供名称引用),如果工具成功删除版本,还会输出一个内容为 True 布尔变量。提供的名称必须为版本的全限定名称。ListVersions 工具可用来获取这个全限定名称。RemoveVersion 工具是一个脚本工具,在 GDBVersions.tbx 中也提供。右键单击脚本工具并选择编辑,即可重新查看工具执行的 Python 代码。脚本工具以输入版本名作为字符串参数来调用 DeleteVersion 工具。如果您不具备删除版本的权限,版本不存在或有依存的祖先版本,会返回错误。
为发布创建服务器管理连接
请确保您有向服务器发布的权限。如果有,请按照以下步骤创建到服务器的发布者或管理连接:
- 转到 GIS 服务器 > 添加 ArcGIS for Server 可弹出添加 ArcGIS Server 对话框。
- 选中发布 GIS 服务或管理 GIS 服务器。
- 在常规面板上,输入一个值给服务器管理员 URL 并提供用户名和密码的值。
- 单击完成完成连接。
创建服务
- 在目录 窗口中,导航至 C:\arcgis\ArcTutor\GP Service Examples\GDBVersions。
由于您可能会对模型进行编辑,因此值得提倡的做法是复制并粘贴整个 GDBVersions 目录至其他本地目录中,您可以在此本地目录中做修改。
- 双击要发布的任一模型工具以打开其对话框。
- 为企业级地理数据库设置 Enterprise_GDB 参数。
- 单击确定以运行工具。
工具执行完毕后,结果 窗口中将写入新的结果。要打开结果 窗口,选择 ArcMap 主菜单中的地理处理 > 结果。
- 查看结果 窗中的结果,检查工具执行是否成功。若执行失败,则结果旁边会显示错误图标 。
- 对其他您要发布的模型工具重复 1 到 5 步。
创建一个地理处理服务的步骤
创建一项地理处理服务,共享结果。
- 在结果 窗口中,右键单击以上生成的结果之一并选择分享为 > 地理处理服务。将打开共享为服务 向导。
- 选择您希望发布至的服务器以及希望存储服务的文件夹。服务默认名称和工具名称相同。您可以接受默认服务名称或输入新名称。
- 在共享为服务 向导的最后一个面板上,单击继续以打开服务编辑器。
- 如需添加另外一个任务,单击添加结果 按钮以打开添加结果 对话框。在添加结果 对话框中,选择以上结果中的另一个再单击确定。如还需添加任务,请重复步骤 4。
- 在服务编辑器 的参数页面,更改执行模式为同步因为服务会执行得很快。
使用地理处理服务
以下步骤显示了如何使用之前发布的地理处理服务。
- 打开新的 ArcMap 文档。
- 在目录 窗口中,导航至 GIS 服务器下的服务器连接,查找在前一部分发布的地理处理服务,然后将其展开。将出现您之前发布过的任务。
- 双击 ListVersions 任务以打开任务对话框。
- 单击确定以运行地理处理任务。
输出在 GPInMemoryWorkspace 中以表格形式返回。打开表格您可以看见在企业级数据库中的版本列表。
- 如果发布了 CreateVersion 任务,请:
- 双击任务 CreateVersion 以打开任务对话框。
- 提供要创建的版本的名称。
- 单击确定以运行地理处理任务。
- 重复步骤 1 至 4。注意新版本出现在新输出表格中。
- 如果发布了 DeleteVersion 任务,请:
- 双击任务 DeleteVersion 以打开任务对话框。
- 给出您要创建的版本(例如在以上步骤中刚创建的版本)的全限定名称。
- 单击确定以运行地理处理任务。
- 重复步骤 1 到 4。注意版本已经被删除,因此不会出现在新输出表格中。