配置 Indoors 应用程序的启动操作

适用于具有 Indoors 功能许可的门户。​

ArcGIS Indoors 包含直接从 Indoor Viewer 中的信息面板以及 ArcGIS Indoors for iOSArcGIS Indoors for Android 中的信息卡片启动第三方应用程序操作的支持。通过允许 Indoors 应用程序的用户直接启动第三方应用程序,这些启动操作使 Indoors 组织能够轻松集成与 Indoors 项目或附加工作订单中可用的项目、资产以及 Indoors 地图中可能包含的其他感兴趣点图层相关的信息。可以配置启动操作以打开 web 页面或本机移动应用程序,从而允许用户针对 Indoors 中的所选项目提交事件或请求,并使用该项目中的信息自动填充表单字段,或者将 web 页面或移动应用程序直接打开至与 Indoors 中的所选项目相关的信息。

包含启动操作的功能可方便 Indoors 应用程序用户在 Indoors 地图中报告资产及其他项目,以及查找与这些项目相关的其他详细信息,而不会在支持多个业务系统的应用程序之间的过渡中迷失方向。可以通过配置 ArcGIS Pro 中 Indoors Configuration 表中的 APP_LAUNCH_ACTIONS 参数来实现此功能。

在准备 Indoors 数据库以共享用于 Indoors 应用程序中的 web 地图和移动地图包时,通过在共享 web 地图或移动地图包之前,在 APP_LAUCH_ACTIONS 配置参数中包含格式正确的 JSON 字符串,可以选择为特定图层和/或类别提供启动操作。

注:

如果您组织中使用 Viewer 的用户并未使用本机 Indoors 移动应用程序,则可以选择忽略此步骤,并使用由 Viewer 提供的配置面板来配置要包含在可配置 ArcGIS Indoors 应用程序实例中的启动操作。如果您打算使组织中的用户同时使用 ViewerIndoors 移动应用程序,则可以选择在 Viewer 中利用此配置面板,方法为首先在 web 应用程序中配置启动操作,然后将生成的 JSON 字符串复制到 APP_LAUNCH_ACTIONS 配置参数中,然后与 ArcGIS Enterprise 门户共享移动地图包。

JSON 语法

可以通过在 ArcGIS Pro 的 Indoors Configuration 表中的 APP_LAUNCH_ACTIONS 参数中包含正确配置的 JSON 字符串来启用启动操作。定义启动操作时,可以将这些操作应用于地图中的单个图层,以及 Categories 表中定义的单个类别和子类别。

此 JSON 字符串的语法如下所示:

JSON 键描述

actions

可供选择的图层和/或类别使用的操作列表。

label

将显示在可用操作列表中的单个操作的名称。

如果仅将一个操作配置为与 Indoors web 地图或移动地图包配合使用,则将显示操作的通用图标。如果配置了多个操作,则在应用程序中选择该按钮后,将显示“更多”图标,并且下拉菜单中将提供可用操作的列表。

url

格式正确的启动 URL。

layers

操作将应用到的地图图层列表。

目录

操作将应用到的已配置类别列表。

示例:
{
  "actions": [
    {
      "label": "Fill out survey",
      "url": " https://survey123.arcgis.com/share/surveyformGUID?portalUrl=https://myportal.myorg.com/portal?field:room={Units.NAME}",
      "layers": [
        "Units",
        "Levels"
      ],
      "categories": [
        "Places + Things",
        "Fire Extinguisher"
      ]
    },
    {
      "label": "Report Incident",
      "url": "https://servicenow.com/report?username={user.username}",
      "layers": ["*"],
      "categories": ["*"]
    },
    {
      "label": "Make Request",
      "url": "https://servicenow.com/report?username={user.username}&room={Units.NAME}",
      "layers": ["Units"]
    }
  ]
}

在本示例中,您将会注意到列出了三个单独的操作。第一个类别 “Fill out survey” 已限于位于 Units 或 Levels 图层或者 Places + Things 1 级类别或 Fire Extinguisher 2 级子类别中的所选项目。这是一个重要的区别,因为 Indoors 使您能够灵活地将操作集成限于非常特定类型的项目。当给定系统旨在支持特定类型的资产或活动时,此功能将非常有用。

第二个操作 “Report Incident” 在其定义中包含所有图层和所有类别的重要术语。在图层和类别列表中包含 “*” 术语可确保任何图层或类别中的任何项目(在 Indoors 应用程序中选择)均支持信息面板中的此操作类型。

第三个操作 “Make Request” 已限于来自单个图层并且没有任何关联类别的项目。

注:
  • 可以将操作分配给图层或类别,或者分配给两者。无需将操作同时分配给图层和类别。将操作分配给类别所表示的图层会将操作应用于针对该图层配置的所有类别和子类别。
  • 分配给 1 级类别的操作将自动适用于其关联的 2 级类别,并且无需在类别列表中进行复制。分配给 2 级子类别的操作仅适用于该特定子类别中的项目。
  • 未配置任何图层或类别的操作将不会显示在 Indoors 应用程序中。

URL 语法

启动操作由 URL 启用,并且语法必须遵循通用 URL 约定。例如,参数中的特殊字符必须经过 URL 编码,并且参数或值对必须使用标准 URL 约定进行分隔。

对于 Indoors,值必须包含在大括号中并且符合以下语法:

?arg={Layer.Attribute}&arg={Attribute}

注:

图层为可选项,如果未包含,则默认为 Indoors 中的当前选定项目。许多使用案例都会需要传递来自地图或场景内不同图层的属性。图层运算符支持此功能。参数和值不区分大小写。

请参阅以下示例:

单个值

?Name={KNOWNAS}&building={facility_name}&space={Units.Name}

多个值

?center={shape.y},{shape.x}

来自另一个要素类的值

&site={FACILITIES.SITE_ID}

将值传递到特定字段

&field:room={units.name}

受支持的参数和值格式

启动操作 URL 可以支持传递带有通用参数 (field={Units.UNIT_ID}) 的值或者指向 Survey123 表单中特定字段 (field:room={Units.Name}) 的值。

此外,可以一起列出多个参数,并在其中输入文本。

示例

https://<MySurveyURL>?Name={knownas}&office=office%3A%20{units.NAME}&loc={shape.x},{shape.y},{shape.z}

Survey123 集成

Survey123 被包括在 Indoors 许可内。如果缺少任何其他受支持的工单或票务系统,则可以将启动操作配置为使用 Survey123

要使用 Survey123 自定义操作按钮的体验,需要在 URL 上附加有效的参数或值对。

示例:默认行为的基本 URL

https://survey123.arcgis.com/share/surveyformGUID?portalUrl=https://myportal.myorg.com/portal

示例:自定义

本示例将使用 Units 图层中的名称字段来覆盖默认房间输入。

https://survey123.arcgis.com/share/surveyformGUID?portalUrl=https://myportal.myorg.com/portal&field:room={Units.NAME}

示例:启动移动设备上的 Survey123 本机应用程序

"url": "arcgis-survey123://?itemID=surveyformGUID&portalUrl=https://myportal.myorg.com/portal&field:comments={Units.NAME}"

注:

在配置启动操作以用于 Viewer 时,使用特定于本机移动应用程序的 URL 时需要小心操作,因为桌面用户不支持这些 URL。在定义启动操作时,使用本机应用程序 URL 应限于支持本机 Indoors 应用程序或者通过移动浏览器访问的 Viewer 的工作流。

与第三方系统集成

如果第三方系统支持 URL 可配置表单或参数以在启动时驱动操作,则也可以将操作按钮配置为打开第三方 URL 并向其传递属性值。在这种情况下,可以将 Indoors 应用程序配置中用于调用系统的 URL 与集成系统的相应 URL 配合使用。一些常见用途是链接到第三方工单管理系统或资产管理系统。

在使用第三方系统时,请考虑以下内容:

  • field: 运算符可能有所不同。
  • 支持 URL 参数的 web 表单可能需要附加配置。
  • 有关其是否起作用以及如何起作用的详细信息,请参阅集成系统供应商。

注:

在某些情况下,一些字符可能不受支持,例如 # 或 + 字符,具体取决于所使用的业务系统。

与工作订单管理系统集成

Indoors 支持启动外部资产和工作订单管理系统。可以配置 Viewer 中的信息面板和 Indoors 移动应用程序中的信息卡片上的操作按钮以打开要用于记录新信息(例如与空间、资产或 Indoors 中的其他项目相关联的事件或请求)的 web 表单或第三方本机应用程序,或者在第三方工作订单管理应用程序中打开现有工作订单。

Indoors 支持传递工单和 Indoors 图层属性作为 URL 中的查询字符串。要支持启动,语法必须遵循 Indoors 的 URL/URI 方案和工单应用程序系统。

该属性值必须包含在大括号中并且符合以下语法:

?arg={Work order Attribute}&arg={Layer.Attribute}

以下是附加语法示例:

工单图层中的单个值

?arg={workorderid}

工单图层中的多个值

?arg={workorderid}&arg={priority}

工单和 Indoors 图层中的值

?arg={workorderid}&arg={Layer.Attribute}

ServiceNow URL

以下示例将工单号作为参数传递,并打开一个现有工单:

https://<MyServerURL>/nav_to.do?uri=task.do?sysparm_query=number={workorderid}

请参阅更多配置 ServiceNow 启动操作的示例。

在 Indoors Configuration 表中设置启动操作配置字符串

必须将一个或多个第三方应用程序的 URL 添加到 Indoors Configuration 表,才能在 Indoors for iOSIndoors for Android 的信息卡片上显示操作按钮。Viewer 启动操作可以在配置面板中进行配置,但是如果 Indoors Configuration 表中包含有效配置 JSON 字符串,则配置面板将使用该值作为默认设置。Indoors Configuration 表是 ArcGIS Indoors 信息模型中的独立表。当您为 Indoors 移动应用程序创建移动地图包时,必须将其包含在内,但其对于 Viewer 的 web 地图却是可选项。

要在 Indoors Configuration 表中使用一个或多个 URL 配置启动操作,请完成以下步骤:

  1. ArcGIS Pro内容窗格中,右键单击 Indoors Configuration 表,然后单击打开

    随即显示 Indoors Configuration 表视图。

  2. 双击 APP_LAUCH_ACTIONS配置值字段(位于“配置键”下方),然后为配置的操作设置 JSON 配置字符串。
    注:

    如果未设置 APP_LAUCH_ACTIONS,则将在 Indoors for AndroidIndoors for iOS 中的信息卡片中禁用启动操作按钮。