使用具有输出要素服务的 Web 工具

使用具有常规要素输出的 Web 工具时,输出将在服务器上生成且该输出将作为要素被发送回客户端。 输出要素服务位于托管服务器的 ArcGIS Data Store 上,您可通过网络提供输出要素数据和非空间表格,而无需将结果保存在本地磁盘上。 这一操作还节省了将生成的数据传输回客户端的开销,提升了在输出要素结果的较大时 Web 工具的工作效率。 它还可以从各种客户端(如 Web 客户端、桌面应用程序和外业应用程序)中获取数据。

制作

要使用此要素,输出必须是要素类或表。

无论您的输出是可选项还是必需项,在设计 Web 工具时都无需进行任何更改。

发布

要与输出要素服务共享 Web 工具,必须满足以下软件要求:

  • ArcGIS Pro 2.3 或更高版本
  • ArcGIS ServerPortal for ArcGIS 10.7 或更高版本
  • ArcGIS Server 必须联合到 Portal for ArcGIS
  • Portal for ArcGIS 必须具有托管服务器。

运行工具后,在共享为 Web 工具窗格中配置以下设置:

  • 仅与门户或 ArcGIS Enterprise 中的群组共享 Web 工具。 将所有人选项保留未选中状态,以在使用工具时避免权限问题。
  • 执行模式选项设置为异步
  • 在地图图像图层中查看输出选项保持取消选中状态。
  • 服务器返回的最大记录数设置对输出要素服务没有影响。
  • 要禁用已发布输出中的输出要素服务参数,请单击配置工具属性按钮 配置工具属性,然后取消选中添加可选输出要素服务参数选项。

使用 CreateGPSDDraft 函数发布 Web 工具时,将 server_type 参数指定为 MY_HOSTED_SERVICES。 没有用于移除此可选输出要素服务名称参数的选项。

使用 GeoprocessingSharingDraft 类时,将 enableOutputFeatureService 属性设置为 TrueFalse,具体取决于您是否需要此可选输出要素服务名称参数。

使用具有新输出要素服务的 Web 工具

使用具有要素或表输出的 Web 工具时,在选项列表的末尾可以使用名为输出要素服务名称的附加可选输入参数。 以下选项是用于覆盖现有输出要素服务覆盖现有输出托管要素服务如果覆盖失败,则新建托管要素服务选项。 输出参数在发布期间生成。 Web 工具发布后,无法将其移除或重命名。 要成功使用包含新的输出要素服务的 Web 工具,请在文本框中提供满足以下要求的服务名称:

  • 输出要素服务的名称在门户的所有托管服务中必须是唯一的,因为所有输出要素服务都将保留在门户的托管文件夹中。
  • 名称仅可以包含字母数字字符或下划线,且必须包含超过 120 个字符。
  • 门户用户必须具有相关权限才能创建输出要素服务。 只有“发布者”和“管理员”角色具有此权限。 对于具有自定义角色的门户用户,该角色必须具有成员/查看、内容/发布托管要素图层以及内容和分析/标准要素分析权限。

使用具有输出要素服务的 Web 工具时,无论原始结果保留在服务器的哪个位置,所有输出要素都将复制到托管服务器的数据存储中。

注:

将 Web 工具发布到与门户联合的 ArcGIS Server 站点时,必须在托管服务器上运行 allowconnection 命令。 否则,结果无法复制到托管服务器中。

Web 工具运行时,服务器会提供结果要素服务的 URL。 如果您使用 ArcGIS Pro 中的 Web 工具,则会将结果作为带有服务 URL 的图层添加到内容列表。 如果从 REST 端点使用 Web 工具,则结果为 URL 的 JSON 表达。

注:

输出要素服务名称参数为可选项。 如果保持输出要素服务名称参数的未指定状态,并且使用 Web 工具,则会生成常规输出要素或表。

原始输出参数属性会影响要素服务的呈现方式。 以下是常见场景:

  • 多个输出 - 当有多个输出要素参数时,将把每个输出结果作为一个图层添加到输出要素服务,但在运行 Web 工具时只呈现一个输出要素服务。 如果在这些图层之间存在不同的空间参考,则所有图层都会投影至第一个图层的空间参考。
  • 空输出 - 如果在运行 Web 工具时输出参数的结果为空,将生成一个包含空要素的图层并将其添加到服务中。
  • 可选或派生输出 - 如果输出参数类型为可选或派生,则在运行 Web 工具时可能不会生成输出。 在这种情况下,不会向服务添加任何图层。
  • 多值输出 - 如果运行中的 Web 工具包含的输出具有多个值,则不支持要素输出服务。
  • 符号系统 - 如果已为工具输出定义符号系统,则输出要素服务将保留该符号系统。 如果在创建工具时未定义符号系统,则会使用默认符号系统。

覆盖现有托管要素服务

您可以覆盖 ArcGIS Pro 3.0ArcGIS Enterprise 11 或更高版本中的现有输出要素服务。 在覆盖输出要素服务之前,请考虑下方要求和权限

以下要求与空间参考和客户端类型相关:

  • 如果当前分析输出的空间参考与现有输出要素服务图层的空间参考不同,则无法覆盖服务。
  • 仅可以从 ArcGIS Pro 3.0REST 端点覆盖。 不支持从 PythonMap Viewer 经典版Web AppBuilder 进行覆盖。

覆盖现有输出要素服务的权限与 ArcGIS Enterprise 登录帐户的角色相关。

  • 角色必须具有创建输出要素服务的权限,即仅限于发布者和管理员。 对于自定义角色,您必须启用成员/查看;内容/发布托管要素图层;内容/创建、更新和删除;及内容和分析/标准要素分析权限
  • 管理员角色可以覆盖任意托管要素服务。
  • 管理员仅可以覆盖所拥有的托管要素服务。

执行以下操作以从 ArcGIS Pro 3.0 执行覆盖:

  • 打开 Web 工具任务,然后选中输出要素服务名称选项。 参数下方是未选中的覆盖现有输出托管要素服务复选框,以及一个未激活的如果覆盖失败,则新建托管要素服务复选框。
  • 使用文本框提供现有服务名称或 JSON 表达式以作为输入,或单击浏览按钮以选择要覆盖的服务。
  • 选中如果覆盖失败,则新建托管要素服务复选框后,如果覆盖失败,则新建托管要素服务处于激活状态。 保留已激活复选框的未选中状态,或者选中并单击运行以覆盖。
  • 对于未选中如果覆盖失败,则新建托管要素服务复选框的未成功的覆盖操作,将返回一条错误消息。 如果选中该复选框,则不成功的覆盖操作将在初次失败尝试后创建一个新的输出托管要素服务,使用 _1 作为附加后缀。 后续尝试会将附加后缀增加至 _2_3 等。