ServiceNow 是一个基于云的平台,可简化跨企业级系统的 IT 服务管理、运营和工作流。 许多使用 ArcGIS 的组织同时也是 ServiceNow 用户,涵盖各种工作流。 作为一个关键的企业级业务系统,许多组织希望通过多种模式,在 ArcGIS 与 ServiceNow 之间集成工作流和数据。 以下提供的选项针对如何思考 ArcGIS 和 ServiceNow 集成模式提供了一些指导,包括是否提供标准解决方案,或者是否存在值得推荐的概念或方法。
ServiceNow 管理员和设计师可以构建各种 UI 组件以完成其工作流。 一种可能成功的集成模式是使用 HTML <iframe> 组件来嵌入 ArcGIS web 应用程序,包括可配置的应用程序(如 ArcGIS Experience Builder 应用程序),或者使用 ArcGIS Maps SDK for JavaScript 构建的自定义应用程序。 这些应用程序通常支持 URL 参数,可以在 ServiceNow 界面中动态定义这些参数,以便在地图加载时,针对特定位置或感兴趣区域对其进行预配置,或者在地图上显示特定要素或资产。
从 ServiceNow 访问 ArcGIS 内容的另一种集成模式是使用 ServiceNow Integration Hub 功能,可以根据 ServiceNow 操作发送 REST 消息,或者查询远程 REST 服务以返回可用于添加或丰富 ServiceNow 记录的数据。 此模式可用于查询 ArcGIS 地理编码服务或要素图层以获取空间背景信息,并在收到 REST 响应后,将属性或几何与 ServiceNow 对象一同存储。
对于主要在 ArcGIS 中工作的用户,其工作流也可能受益于 ServiceNow 数据或属性。 可通过多种模式以实现 ArcGIS 与 ServiceNow 数据的对接,例如所提供的这些模式。
可以开发自定义数据源以提供对特定 ServiceNow 数据集的直接要素图层访问。 根据 ServiceNow 资产或记录的复杂程度,可以配置多个图层,并且在充分的规划和开发投入前提下,编辑也能得到支持。
Maps SDK for JavaScript 自定义应用程序,或者使用 ArcGIS Maps SDK(例如 ArcGIS Pro 插件数据源)构建的其他应用程序,可以创建用于查询 ServiceNow 数据集或端点的自定义图层。 此查询也可以生成相应数据,可将该数据添加至应用程序内的弹出窗口或界面。
可以编写基于 Python 的 ETL 以使用 ServiceNow Python API 从 ServiceNow 进行查询,这有助于在访问 ServiceNow API 时进行身份验证并提高开发人员的效率。 Python 代码可以在 ArcGIS Pro 中运行,也可以作为自动化或计划进程的一部分,通过 ArcGIS Online 或 ArcGIS Notebook Server 中的 ArcGIS Notebooks 来运行。
Esri 制作了一个演示视频,其中显示了 ServiceNow 和 ArcGIS Workflow Manager 如何使用系统间的 REST 请求协同工作。 此演示的逻辑流程如下:
在 ServiceNow 中创建事件时,会向 Workflow Manager createJob 端点发送一个请求,该请求随附包含事件 ID 的负载。
然后,可将 Workflow Manager 作业设计为向 ServiceNow 回查以获取有关该事件的更多详细信息(使用单独的 REST 请求),然后继续执行若干步骤类型,其中包括通过用户操作来验证事件是否可以关闭。
在 Workflow Manager 中解决该事件后,一个单独的 Web 请求步骤会将另一个请求发送回 ServiceNow 以更新事件状态,从而标识工作流已完成。
这种来回交互的集成模式突显了 ArcGIS Workflow Manager 的灵活性和强大功能,并可进行推广或调整以适用于 ServiceNow 和 ArcGIS 需要协同工作的各种集成需求或场景。
另一个基于工作流或应用程序的集成示例是能够在 ServiceNow 移动应用程序与 ArcGIS 移动应用程序(例如 Field Maps)之间进行切换的功能。 可以通过多种方式在移动设备上使用 ServiceNow 服务和体验,从响应式网站到专用原生应用程序。
在上述任一场景中,通过利用应用程序特定的 URI 进行深度链接,可支持用户从 ServiceNow 界面跳转至 ArcGIS 移动应用程序,使用要素或资产特定的标识符以直接缩放至要素或快速启动编辑工作流。 ArcGIS Field Maps 和 ArcGIS Survey123 均支持深度链接。