使用REST API无法解决ServiceNow事件

时间:2018-10-22 21:24:20

标签: .net api servicenow

我在应用程序中使用ServiceNow REST API

我需要解决现有的事件

为此,我使用PUT方法,并且可以更新诸如short_description之类的某些字段。但是,如果我尝试更新state字段,则API不会更新此字段。

我使用非常简单的C#代码:

_restClient.BaseUrl = new Uri(string.Format("https://{0}.service-now.com", serverName));
var request = new RestRequest(string.Format("/api/now/table/incident/{0}", incidentId), Method.PUT)
{
    RequestFormat = DataFormat.Json
};
request.Credentials = new NetworkCredential(userName, password);
request.AddBody(new { state = "6" });
var response = _restClient.Execute(request);

我尝试将state更新为值6,因为此值为Resolve

但是该字段未通过REST API更新。但是,我可以通过Web UI解决我的事件。

为什么状态字段未使用REST API更新?

3 个答案:

答案 0 :(得分:1)

可能的原因之一是在该表上设置了访问控制列表(ACL)。您可以阅读有关它们的信息,例如here

在我遇到的一种情况下,除非更改“ automated_state_flow”参数设置为false,否则会有一个特殊的“状态更改流程”来禁止更改票证的状态。您的情况可能会一样吗?我会尝试使用以下JSON发送请求:

{"automated_state_flow"="False";
"state" = "6"}

,然后发送第二个Web请求:

{"automated_state_flow"="False"}

答案 1 :(得分:1)

您可能会缺少填写必填字段的信息。通过WebUI解决事件时,请记录所有必填字段,并将这些字段添加到PUT请求的正文中。

您还应该共享请求的响应。这可以帮助发现问题所在。

答案 2 :(得分:1)

您尝试更新的字段不应为只读。