我正在处理客户端脚本,它从 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 但也可能是我在那里犯了错误,因此恢复到在帖子中添加的版本。