ServiceNow中具有参考值的问题

ServiceNow中具有参考值的问题,servicenow,Servicenow,我现在对服务很陌生 我有两张桌子,公司和地点 位置表具有列名。 公司表有列名称和位置。这里的位置类型是reference 公司和位置表数据如下所示 位置 名称 钦奈 液压 公司 名称位置 ABC金奈 CDE液压系统 我的任务是从公司表中查询名称和位置。查询如下 var company = new GlideRecord('u_company'); subCat.query(); while (company.next()) { alert("Location: " + company.

我现在对服务很陌生 我有两张桌子,公司和地点

位置表具有列名。 公司表有列名称和位置。这里的位置类型是reference

公司和位置表数据如下所示

位置
名称
钦奈 液压

公司
名称位置
ABC金奈
CDE液压系统

我的任务是从公司表中查询名称和位置。查询如下

var company = new GlideRecord('u_company');
subCat.query();

while (company.next()) {
   alert("Location: "  + company.location);         
}


这里的值始终是十六进制值。如何获取位置的实际文本值?

您看到的应该是
location
参考字段的
sys\u id

如果您在业务规则中执行此操作,则可以使用该方法相当轻松地提取此操作

如果您是作为客户端脚本来执行此操作的,那么它会涉及更多内容,但您可以使用。看看这里的例子,这里有一个简单的例子

创建可由客户端调用的新脚本Include

var MyCompanyUtils = Class.create();
MyCompanyUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getLocationName : function() {
        // parameters
        var company = this.getParameter('sysparm_my_company');

        // query
        var rec = new GlideRecord('u_company');
        rec.addQuery('sys_id', company);
        rec.query();

        data = "Company not found."
        while (rec.next()) {
            var loc = rec.location.getRefRecord();
            data = loc.name;
        }

        return data;
    },

    type : "MyCompanyUtils"
});
创建一个调用此脚本Include的客户端脚本

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    // get the company referece value
    var company = g_form.getValue('company');

    var ga = new GlideAjax('MyCompanyUtils'); // call the object
    ga.addParam('sysparm_name', 'getLocationName'); // call the function
    ga.addParam('sysparm_my_company', company); // pass in company
    ga.getXML(showLocation);
}

function showLocation(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");

    alert("Location: " + answer);
}
您是在客户端脚本中还是在服务器脚本(如业务规则)中执行此操作?我猜是因为您的示例在客户端有一个
警报。
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    // get the company referece value
    var company = g_form.getValue('company');

    var ga = new GlideAjax('MyCompanyUtils'); // call the object
    ga.addParam('sysparm_name', 'getLocationName'); // call the function
    ga.addParam('sysparm_my_company', company); // pass in company
    ga.getXML(showLocation);
}

function showLocation(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");

    alert("Location: " + answer);
}