#servicenow
#servicenow
Вопрос:
Я пытаюсь запустить следующий код, который в значительной степени скопирован из действия пользовательского интерфейса OoTheBox под названием «Просмотр ответа пользователя».
function showRiskAssessment(){
var ra = new GlideRecord('asmt_assessment_instance');
ra.addQuery('task_id', '=', current.sys_id);
ra.orderByDesc('taken_on');
ra.setLimit(1);
ra.query();
// var id = g_form.getUniqueValue();
var id = ra.sys_id;
//var type = g_form.getValue('metric_type');
var type = '468aeff2db9357008aeba9f7059619ca';
var url = 'assessment_take2.do?sysparm_assessable_sysid=' id 'amp;sysparm_assessable_type=' type 'amp;sysparm_reader_view=true';
var d = new GlideOverlay({
title: "User's Response",
iframe: url,
width:'80%',
height: '100%',
onAfterLoad: function() {
var iframe = d.getIFrameElement();
setTimeout(function(){
iframe.height = parseInt(iframe.height) 1;
},0);
}
});
d.render();
}
Если я жестко закодирую это так, это сработает. Все, что я пытаюсь сделать, это в записи изменения я хочу найти самый последний экземпляр оценки для этого конкретного изменения и отобразить в оверлее. Очевидно, что я не могу жестко закодировать id
однако, похоже, запрос вообще не распознает эту информацию.
function showRiskAssessment(){
// var ra = new GlideRecord('asmt_assessment_instance');
// ra.addQuery('task_id', '=', current.sys_id);
// ra.orderByDesc('taken_on');
// ra.setLimit(1);
// ra.query();
// var id = g_form.getUniqueValue();
var id = '5c516eeddb87d090ebce60ab1396198a';
//var type = g_form.getValue('metric_type');
var type = '468aeff2db9357008aeba9f7059619ca';
var url = 'assessment_take2.do?sysparm_assessable_sysid=' id 'amp;sysparm_assessable_type=' type 'amp;sysparm_reader_view=true';
var d = new GlideOverlay({
title: "User's Response",
iframe: url,
width:'80%',
height: '100%',
onAfterLoad: function() {
var iframe = d.getIFrameElement();
setTimeout(function(){
iframe.height = parseInt(iframe.height) 1;
},0);
}
});
d.render();
}
Ответ №1:
Вы пытаетесь использовать current.sys_id в сценарии на стороне клиента. Рекомендуется использовать g_form для сценариев на стороне клиента. Вы также пытаетесь выполнить GlideRecord в клиентском скрипте, что также не рекомендуется.
Чтобы исправить, замените:
ra.addQuery('task_id', '=', current.sys_id);
с:
var sysId = g_form.getUniqueValue();
ra.addQuery('task_id', '=', sysId);
Кроме того, для определения разницы между g_form и current посмотрите здесь.