如何通过Rest API关闭ServiceNow变更请求?已尝试Patch接口未生效
如何通过REST API关闭ServiceNow变更请求?
当然可以通过REST API关闭ServiceNow变更请求,你当前的请求存在几个关键问题,导致状态未更新:
JSON格式语法错误
你的请求体中close_code字段末尾缺少逗号,这会导致接口无法正确解析请求内容。正确的JSON格式要求每个键值对(除最后一个)末尾添加逗号。State字段值不正确
ServiceNow中变更请求的state字段通常使用内部数值而非显示字符串,比如"Closed"对应的数值可能是3(具体值取决于你的实例配置,可在后台查看change_request表的state字段选项值确认)。直接传入字符串"Closed"不会被系统识别。必填字段未正确填充
close_code是关闭变更请求的必填字段,不能传<em><strong>这类无效内容,需要传入实例中配置的合法选项值(比如"Successful"或对应的数值);close_notes也建议填写实际的关闭说明,而非空标签。
修正后的Patch请求示例
请求地址:sn_chg_rest/change/{sys_id}
请求体:
{ "state": 3, "close_code": "Successful", "close_notes": "变更已完成,正常关闭" }
额外检查项
- 确保调用API的用户拥有
change_request表的修改权限,以及将变更请求转为Closed状态的权限; - 如果使用的是较旧的ServiceNow版本,可能需要使用
PUT请求而非PATCH,或者确认sn_chg_restAPI的版本支持PATCH方法。
内容的提问来源于stack exchange,提问作者ramya
相关产品推荐
相关产品推荐

