此评估存在意外失败,提供了无效的类型

问题描述

我正在尝试运行以下代码,这些代码几乎是从OoTheBox UI Action中复制的,称为“查看用户的响应”。

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 + '&sysparm_assessable_type=' + type + '&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 + '&sysparm_assessable_type=' + type + '&sysparm_reader_view=true';

    var d = new GlideOverlay({
        title: "User's Response",0);
        }
    });
    d.render();
}

解决方法

您正在尝试在客户端脚本中使用 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之间的区别,请看here