从 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;
}
我正在为 ServiceNow 构建一个相当简单的 REST 应用程序。使用 REST API Explorer(很棒的工具!)和此处的一些示例,我已经能够使用我需要的所有字段信息连接和生成事件记录。
我唯一想不通的是如何获取事件状态的文本标签 - 我可以从事件记录中获取整数,并且我知道其中建立了一种关系每个整数和相应标签之间的字典。例如。事件状态 =1,标签为 "New"
也许我错了,但我希望我可以通过 REST 查找另一个 table,提取整数并检索我的文本状态?我已经尝试在 API 资源管理器中访问词典 table,但这还不够...请提供帮助?
我对这个集成的目标是提出一个事件或请求,然后在需要时报告所述记录的状态 - 几天来我一直在努力...
您要查找的是显示值。
您可以使用名为 sysparm_display_value
.
值选项是:
- true returns 显示所有字段的值。
- false returns 来自数据库的实际值。如果未指定值,则此 参数默认为 false。
- 所有 returns 实际和显示 值。
来自维基:here
使用值 all,这就是 incident_state
:
"incident_state": { "display_value": "On Hold", "value": "3" }
以下 REST API 调用将获取任何状态值的标签,
https://
将
这是一个 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;
}