使用 SSIS 集成 ServiceNow REST API 数据:分页处理与错误解决全指南

作者:API传播员 · 2025-10-13 · 阅读时间:5分钟
本文详细介绍了如何通过SSIS的JSON源从ServiceNow REST API获取数据,无需编写代码。内容包括配置HTTP连接、处理API集成场景中的POST、DELETE和PUT操作,以及大数据量时的分页响应方法。还提供了将数据导入SQL Server的步骤和常见错误的解决方法。

一. ServiceNow 简介

ServiceNow 是目前最受欢迎的 故障管理平台 之一,被广泛应用于各类企业中。本文将详细介绍如何通过 SSISJSON 源ServiceNow REST API 获取数据,无需编写代码。

同时,我们还将探讨:

  • 如何处理 API 集成场景中的 POST、DELETE 和 PUT 操作
  • 在处理大数据量(如超过 10,000 条记录)时的 分页响应方法

在开始具体教程之前,请确保您已满足相关的先决条件。


二. 使用SSIS访问ServiceNow数据的逐步指南

在本节中,我们将学习如何通过 SSIS JSON 源 从 ServiceNow API 获取数据。


三. 配置SSIS HTTP连接以访问ServiceNow REST API

访问 ServiceNow 数据的第一步是配置 JSON 源中的 HTTP 连接。本教程中,我们将使用 ServiceNow REST API

虽然该 API 提供了多种端点,但本文将重点使用 表 API 服务 来执行查询。

1. 操作步骤

a. 打开SSIS数据流设计器

进入 SSIS 包的数据流设计器,如果没有数据流,请新建一个数据流。


四. 配置ServiceNow API分页的JSON源

默认情况下,ServiceNow API 不会返回表中的所有记录。为了获取完整数据集,可以配置 分页设置

  • 启用分页后,系统会自动从新的 URL 持续获取数据,直到没有更多数据或达到 UI 中设置的最大行数限制(本例为 100 行)。
  • 您可以使用调试工具(如 Fiddler)查看 JSON 源发起的 HTTP 请求。

更多关于 SSIS 分页 的详细信息,请参考官方文档。


五. 配置ServiceNow JSONv2分页(旧版API)

在某些场景下,您可能需要使用旧版 ServiceNow JSONv2 API。以下示例展示了如何访问表数据:

1. URL示例

以下示例查询 sys_db_object 表,每批返回 15 条记录:

https://instance001.service-now.com/sys_db_object.do?JSONv2&sysparm_record_count=15&sysparm_query=ws_access=true^sys_mod_count=1^ORDERBYsys_id

完成 JSON 源配置后,您即可将数据加载到 SQL Server 中。

2. 将数据导入SQL Server

a. 拖放目标

OLEDB 目标 拖放到 SSIS 数据流界面中。

b. 配置连接器

根据需求配置目标连接器(如 Microsoft OLEDB Provider 或 ZappySys 提供的目标连接器),可将数据导入:

  • SQL Server
  • 平面文件
  • Oracle
  • Excel 等系统

六. 常见错误及解决方法

1. 截断相关错误

这是最常见的问题之一。发生原因:

  • SSIS 在设计阶段仅扫描前 300 行来推断数据类型
  • 运行时若返回更长字符串,可能导致 截断错误

解决方案
请参考 ZappySys 提供的文档《如何处理SSIS错误(截断、元数据问题)》。


2. 认证相关错误

常见于包部署或迁移到其他机器运行时。原因是:

  • SSIS 默认使用创建包时的 Windows 用户账户 加密敏感数据(如令牌、密码)
  • 换账户运行时无法解密

解决方案

  • 在创建使用认证的组件(如 OAuth 连接管理器、带凭证的 HTTP 连接管理器)时,建议通过 参数或变量 传递令牌和密码
  • 避免敏感信息直接硬编码到包中

更多关于敏感数据配置,请参考官方文档。


七. 总结

本文详细介绍了如何通过 SSIS JSON 源ServiceNow REST API 获取数据,包括:

  • 分页配置
  • 使用旧版 JSONv2 API
  • 将数据导入 SQL Server
  • 常见错误与解决方法

在实际应用中,确保正确配置 认证信息分页设置 是关键,这将帮助您更高效地集成 ServiceNow 数据并避免常见问题。


原文链接: https://zappysys.com/blog/how-to-read-data-from-servicenow-rest-api-ssis/