如何通过ServiceNow API检索变更信息及关联配置项(CI)
通过ServiceNow API检索变更请求及关联CI的正确方式
你的请求存在的问题
- 第一个请求的查询参数
parent.sys_class_name%3Dchan..是截断状态,需完整指定为change_request - 第二个请求的
parent.numberINCHG8568541语法错误,ServiceNow的IN运算符要求用括号包裹目标值,正确格式是IN(CHG8568541)
修正后的API请求
要获取指定变更请求(如CHG8568541)关联的CI,正确的cmdb_rel_ci表请求URL如下:
https://company.service-now.com/api/now/table/cmdb_rel_ci?sysparm_query=parent.sys_class_name%3Dchange_request%5Eparent.numberIN%28CHG8568541%29&sysparm_display_value=true&sysparm_fields=parent,child,type
参数说明:
sysparm_query:修正后的查询条件,确保IN语法合规,且父类指定为变更请求sysparm_display_value=true:返回字段的显示值(如CI名称、变更单号)而非仅sys_id,提升可读性sysparm_fields:指定返回核心字段,减少冗余数据传输
额外注意事项
- 认证要求:ServiceNow API必须携带有效认证信息(通常为Base64编码的用户名+密码构成的Basic Auth),否则会返回401未授权错误
- 关系类型过滤:如果你的实例中变更与CI的关系有特定类型(如“受影响的CI”),可在查询中添加
type=<关系类型sys_id>进一步过滤,示例:sysparm_query=parent.sys_class_name%3Dchange_request%5Eparent.numberIN%28CHG8568541%29%5Etype%3Daffects - 获取变更本身的信息:若需同时获取变更请求详情,可直接查询
change_request表:https://company.service-now.com/api/now/table/change_request?sysparm_query=number%3DCHG8568541&sysparm_display_value=true
内容的提问来源于stack exchange,提问作者Jamhson
相关产品推荐
相关产品推荐

