问题描述
我正在尝试生成项目列表(来自名为“pm_project”的自定义表)和从事这些项目的用户。
使用 API Explorer 我可以获得项目列表(以下是我的 API 和数据示例)。
数据:
{
"result":[
{
"assigned_users":"7961b907db9253045fbdf1fabf9619d4,55617907db9253045fbdf1fabf9619d2,c4c46419dba6d7045fbdf1fabf9619b5","project_number":"11216"
}
]
}
并且使用单独的 API(参见下面我的 API 和数据示例),我可以从“Sys_User”表中获取用户列表。
数据:
{
"result":[
{
"sys_id":"7961b907db9253045fbdf1fabf9619d4","email":"test_user1@my-site.com"
},{
"sys_id":"55617907db9253045fbdf1fabf9619d2","email":"test_user2@my-site.com"
},{
"sys_id":"c4c46419dba6d7045fbdf1fabf9619b5","email":""
}
]
}
然后,我将在 ServiceNow 之外的“pm_project”和“sys_user”数据之间执行连接,以将“电子邮件”而不是“sys_id”分配给项目,并生成如下所示的最终列表:
{
"result":[
{
"assigned_users":"test_user1@my-site.com,test_user2@my-site.com,","project_number":"11216"
}
]
}
有没有办法(可能是脚本化的 REST API)让我在 ServiceNow 内部进行这个连接?而且,我不想在最终结果中包含来自“sys_user”的空“电子邮件”的用户。有人可以请指教!
解决方法
我虽然使用数据库视图 (https://docs.servicenow.com/bundle/paris-platform-administration/page/use/reporting/concept/c_DatabaseViews.html) 可能会这样做,但您似乎正在使用 Glide List 来保存用户列表。数据库视图相当有限,无法使用 Glide List 执行连接。
您唯一的选择是创建一个脚本化的 REST API,这将是完全自定义的 JavaScript。您可以在脚本化 REST API 中做任何您想做的事情。您可以返回任何您想要的数据并根据需要过滤数据。