首页 > 解决方案 > TypeError:无法调用 null 的方法“indexOf”

问题描述

我正在尝试从 CSV 文件的“简历”字段中查找包含“SO -”或“NS - SO”或“SO -”或“SWAT”的记录,以分配一个新类别(在这种情况下为“呼叫中心”)。所以,我使用“indexOf”功能女巫工作得很好。

当我更改数据源(它也是一个 CSV)时,问题就来了,这给了我在该步骤中的下一个错误:“Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot call method "indexOf" of null (script #2)”

目标是通过识别源文件中的单词来分配类别

我的代码

if (RESUMEN.indexOf("SO -")!=-1 || RESUMEN.indexOf("NS - SO")!=-1 || RESUMEN.indexOf("SO –" )!=-1 || RESUMEN.indexOf("SWAT")!=-1)
{
var RESULTADO = "Call Center"
}
else RESULTADO = ""

我希望像第一个文件一样分配呼叫中心类别(我什么都没做)

问候!

标签: javascriptpentahoindexofpentaho-spoonpentaho-data-integration

解决方案


你把问题复杂化了。

在回答之前,记住一些事情,有几个步骤和步骤组合,可以实现数量惊人的转换以制作可用的模式,最后的手段是用户定义的 Java 表达式。

似乎您想要实现的是值映射,在您的情况下,您与直接值映射的区别在于,您正在测试的行必须包含“SO -”,而其他情况下,文本中的某处。

在此处输入图像描述

使用这个简单的过滤器,您可以根据需要转换包含这些信息的数据,并在“FALSE”方面处理错误。

这将稍微扩展您的转换,但是当您需要更改某些内容时,这将比使用大量代码的单个步骤更容易。


推荐阅读