从 ServiceNow REST 检索文本状态 API

Retrieving text State from ServiceNow REST API

我正在为 ServiceNow 构建一个相当简单的 REST 应用程序。使用 REST API Explorer(很棒的工具!)和此处的一些示例,我已经能够使用我需要的所有字段信息连接和生成事件记录。

我唯一想不通的是如何获取事件状态的文本标签 - 我可以从事件记录中获取整数,并且我知道其中建立了一种关系每个整数和相应标签之间的字典。例如。事件状态 =1,标签为 "New"

也许我错了,但我希望我可以通过 REST 查找另一个 table,提取整数并检索我的文本状态?我已经尝试在 API 资源管理器中访问词典 table,但这还不够...请提供帮助?

我对这个集成的目标是提出一个事件或请求,然后在需要时报告所述记录的状态 - 几天来我一直在努力...

您要查找的是显示值。 您可以使用名为 sysparm_display_value.

的 REST API Explorer 设置查询参数

值选项是:

  • true returns 显示所有字段的值。
  • false returns 来自数据库的实际值。如果未指定值,则此 参数默认为 false。
  • 所有 returns 实际和显示 值。

来自维基:here

使用值 all,这就是 incident_state:

的负载 returns

"incident_state": { "display_value": "On Hold", "value": "3" }

以下 REST API 调用将获取任何状态值的标签,

https:///api/now/table/sys_choice?sysparm_query=name=^element=state^value=

替换为适当的值。这是一个请求和响应示例,

这是一个 C# 方法,它将 return 状态的标签值,

public String getStateLabel(String tableName, String stateValue)
    {
        String URL = "https://demohost/api/now/table/sys_choice?sysparm_query=name=" + tableName + "^element=state^value=" + stateValue;
        var client = new WebClient();
        client.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");
        client.Credentials = new NetworkCredential("demouser", "demopassword");
        var response = client.DownloadString(URL);
        dynamic jsonMessage = Newtonsoft.Json.JsonConvert.DeserializeObject(response);
        return jsonMessage.result[0].label;
    }