如何获取current.sys_id Service Portal(ServiceNow)的查询sys_id



我有一个关于我遇到的一个小问题的问题。我创建了一个小部件,它将在服务门户上运行,允许管理员接受或拒绝请求。

小部件的数据是从Approvals(approvel_approver(表中提取的。在我的GlideRecord下,我有一个查询,用于根据请求检查状态。(例如addQuery("状态"、"请求"(

为了缩小搜索范围,我尝试输入addQuery('sys_id',current.sys_id(。当我使用此查询时,我的脚本中断,在Service Portal端出现错误。

以下是我为Accept编写的GlideRecord脚本的示例。

[//Accept Request
if(input && input.action=="acceptApproval") {
var inRec1 = new GlideRecord('sysapproval_approver');
inRec1.addQuery('state', 'requested');
//inRec1.get('sys_id', current.sys_id);
inRec1.query();
if(inRec1.next()) {
inRec1.setValue('state', 'Approved');
inRec1.setValue('approver', gs.getUserID());
gs.addInfoMessage("Accept Approval Processed");
inRec1.update();
}
}][1]

我研究过网络,尝试过使用$sp.getParameter((作为解决方案,但没有改变。

我真的很感谢任何关于我可以做什么不同的帮助或见解,以使脚本发挥作用并过滤正确的记录。

如果我正确理解您的问题,那么您正在询问如何在小部件中从客户端获取sysapproval_approver记录的sysId。

除非在服务器脚本的其他地方定义了current,否则current是未定义的。其次,$sp.getParameter()用于检索URL参数。因此,除非您已经将sysId作为URL参数包含在内,否则将无法获得您想要的内容。

我使用的一种模式是在获得请求列表的初始查询之后将对象传递给客户端。

当您准备好从客户端向服务器发送输入时,可以向输入对象添加相关信息。请参阅下面的简化示例。为了简洁起见,下面的代码不包括错误处理。

// Client-side function
approveRequest = function(sysId) {
$scope.server.get({
action: "requestApproval",
sysId: sysId
})
.then(function(response) {
console.log("Request approved");
});
};
// Server-side
var requestGr = new GlideRecord();
requestGr.addQuery("SOME_QUERY");
requestGr.query(); // Retrieve initial list of requests to display in the template
data.requests = []; // Add array of requests to data object to be passed to the client via the controller
while(requestsGr.next()) {
data.requests.push({
"number": requestsGr.getValue("number");
"state" : requestsGr.getValue("state");
"sysId" : requestsGr.getValue("sys_id");
});
}

if(input && input.action=="acceptApproval") {
var sysapprovalGr = new GlideRecord('sysapproval_approver');
if(sysapprovalGr.get(input.sysId)) {
sysapprovalGr.setValue('state', 'Approved');
sysapprovalGr.setValue('approver', gs.getUserID());
sysapprovalGr.update();
gs.addInfoMessage("Accept Approval Processed");

}
...

最新更新