onChnage 客户端脚本问题(ServiceNow)

问题描述 投票:0回答:0

我正在处理客户端脚本,它从 alm_hardware 表中读取数据并从字段 u_invoice_date 中读取值,该值显示在名为 invoice_date 的表单字段中。

此脚本工作正常,没有问题,但发现一个问题,当资产管理器未在特定设备的表单中填写资产时,输出为空白。工作脚本如下:

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading) {
        return;
    }
    if (newValue == '') {
        g_form.setValue("invoice_date", "");
        return;
    }

    var reqVarHelper = new GlideAjax('x_swea2_wies_servi.WPCatalogItemClientHelpers');
    reqVarHelper.addParam('sysparm_name', 'getRecord');
    reqVarHelper.addParam("sysparm_table", "alm_hardware");
    reqVarHelper.addParam("sysparm_query", "sys_id=" + g_form.getValue("select_device"));
    reqVarHelper.addParam("sysparm_fields", "name,u_invoice_date");
    reqVarHelper.getXML(function(response) {
        var result = JSON.parse(response.responseXML.documentElement.getAttribute("answer"));
        g_form.setValue("invoice_date", result.u_invoice_date);
    });
}

然后我找到表 fm_expense_line 和字段日期,它总是字段,因此有可能表格总是有一些价值。

我开始通过替换脚本中的表和字段来修改遗留脚本,但是它不起作用,您在下面的脚本中看到任何问题了吗?

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading) {
        return;
    }
    if (newValue == '') {
        g_form.setValue("invoice_date", "");
        return;
    }

    var reqVarHelper = new GlideAjax('x_swea2_wies_servi.WPCatalogItemClientHelpers');
    reqVarHelper.addParam('sysparm_name', 'getRecord');
    reqVarHelper.addParam("sysparm_table", "fm_expense_line");
    reqVarHelper.addParam("sysparm_query", "sys_id=" + g_form.getValue("select_device"));
    reqVarHelper.addParam("sysparm_fields", "name,date");
    reqVarHelper.getXML(function(response) {
        var result = JSON.parse(response.responseXML.documentElement.getAttribute("answer"));
        g_form.setValue("invoice_date", result.date);
    });
}

在浏览器控制台中检查,没有与此主题相关的错误。任何想法,为什么它在新脚本中不起作用?

我试图从脚本中删除 JSNO 部分并将其替换为 console.log 但也可能是我在那里犯了错误,因此恢复到在帖子中添加的版本。

javascript assets servicenow clientscript
© www.soinside.com 2019 - 2024. All rights reserved.