Pentaho 中的 JavaScript 错误 - 无法调用 null 的方法“toUpperCase”

Posted

技术标签:

【中文标题】Pentaho 中的 JavaScript 错误 - 无法调用 null 的方法“toUpperCase”【英文标题】:JavaScript Error in Pentaho - Cannot call method "toUpperCase" of null 【发布时间】:2018-01-23 17:42:32 【问题描述】:

// 将所有字母设置为大写

var str = ae_a_asset_e$manufacture_code.toUpperCase();
var str2 = ae_a_asset_e$serial_no.toUpperCase();
var str3 = ae_a_asset_e$manu_part_number.toUpperCase();
var str4 = ae_a_asset_e$region_code.toUpperCase();
var str5 = ae_a_asset_e$fac_id.toUpperCase();

知道如何解决这个问题吗?我认为必须有一种方法可以说如果 value = null 然后不用担心。

【问题讨论】:

“我认为必须有一种方法可以说如果 value = null 则不用担心。”,是的,您尝试过实现吗? 我该怎么做呢?这一切都是全新的。 if(null != ae_a_asset_e$manufacture_code) var str = (if (ae_a_asset_e$manufacture_code) == null) ? (真正的块): : (else ae_a_asset_e$manufacture_code.toUpperCase())) 【参考方案1】:

首先你要考虑一些值是null是否正确,比如ae_a_asset_e$manufacture_code

如果它们可以是null,您可以像这样以安全的方式访问它们(根据需要将此代码扩展到所有其他变量):

var str = ae_a_asset_e$manufacture_code ? ae_a_asset_e$manufacture_code.toUpperCase() : "";

如果它们不能是null,那么你应该先检查你的数据完整性,然后运行这个脚本(假设它们永远不是null)。

【讨论】:

我正在做一个 excel 输入,有些列没有数据,这很好。只需要代码查看空值。 好的,那么我发布的代码应该非常适合您的场景。 var str = ae_a_asset_e$manufacture_code ? ae_a_asset_e$manufacture_code.toUpperCase() : ""; var str2 = ae_a_asset_e$serial_no ? ae_a_asset_e$serial_no.toUpperCase() : ""; var str3 = ae_a_asset_e$manu_part_number ? ae_a_asset_e$manu_part_number.toUpperCase() : ""; var str4 = ae_a_asset_e$region_code ? ae_a_asset_e$region_code.toUpperCase() : ""; var str5 = ae_a_asset_e$fac_id ? ae_a_asset_e$fac_id.toUpperCase() : "";好看吗? 不客气!如果它解决了您的问题,请考虑accepting这个答案。 抱歉,*** 也是新手。接受了!再次感谢。

以上是关于Pentaho 中的 JavaScript 错误 - 无法调用 null 的方法“toUpperCase”的主要内容,如果未能解决你的问题,请参考以下文章

Pentaho 中的 Hive 数据集成错误

如何解决 pentaho 数据网格中的错误?

Pentaho 8.0 中的无效数据源错误(oracle)

Pentaho 数据集成输入/输出位类型错误

Pentaho CDF 错误:对象类型 *Component* 无法映射到有效类

ORA-00001 / TOP001 - Pentaho 错误处理