我可以使用Invoke-RestMethod
检索特定事件ID的记录。但是,在检索数据时,Resolved To
,Updated By
等值会被sysid填充。
Resolved By
采用以下格式:
https<!>://devinstance.servicenow.com/api/sysid, value= sysid
我想查看用户名而不是sysid。
答案 0 :(得分:3)
“用户ID”(user_name)不在事件上,它位于sys_user表中,因此您必须点走。
如果您使用的是表格API ,则需要使用 sysparm_fields 指定要返回的点走的字段查询参数。
这没问题,只需像这样指定你的终端:
$uri = "https://YOUR_INSTANCE.service-now.com/api/now/table/incident?sysparm_query=number%3DINC0000001&sysparm_fields=resolved_by.user_name"
我已经指定了针对特定事件编号的查询,但您可以将其替换为您的查询。重要部分是 sysparm_fields = resolved_by.user_name 。您还需要在此处指定所需的任何其他字段。
运行此API调用后得到的JSON如下:
{
"result": [
{
"resolved_by.user_name": "admin"
}
]
}
请注意元素名称:“resolved_by.user_name”。
执行此操作的另一个选项是告诉API返回显示和实际值,方法是指定sysparm_display_value参数并将其设置为 all 以返回 sys_id和显示值,或仅 true 仅返回显示值。
您的URI将如下所示:
https://dev12567.service-now.com/api/now/table/incident?sysparm_query=resolved_byISNOTEMPTY%5Enumber%3DINC0000001&sysparm_display_value=all
您的JSON将包含以下内容:
"number": {
"display_value": "INC0000001",
"value": "INC0000001"
},
"resolved_by": {
"display_value": "System Administrator",
"link": "https://YOUR_INSTANCE.service-now.com/api/now/table/sys_user/6816f79cc0a8016401c5a33be04be441",
"value": "6816f79cc0a8016401c5a33be04be441"
},
"sys_updated_by": {
"display_value": "admin",
"value": "admin"
},
可以通过以下方式访问:
answer.result[n].resolved_by.display_value