Я использую ППД Ложка и написал этот сценарий в Values Script, чтобы получить значения, проверить и преобразование:Ошибка Не удается вызвать метод «подстроки» нулевых значений Script - PDI
var cte;
cte = gera_cte (CTRC.getString(), Numero_CTe.getString());
function gera_cte (arg1, arg2)
{
if (arg2 == 0) {
return arg1.substring(3,9);
}
else
{
return arg2.substring(4,10);
}
}
Но когда сценарий прочитайте последнюю запись, это произойдет:
2016/02/05 17:28:40 - Gera Num Cte.0 - ERROR (version 5.0.1-stable, build 1 from 2013-11-15_16-08-58 by buildguy) : Erro inesperado
2016/02/05 17:28:40 - Gera Num Cte.0 - ERROR (version 5.0.1-stable, build 1 from 2013-11-15_16-08-58 by buildguy) : org.pentaho.di.core.exception.KettleValueException:
2016/02/05 17:28:40 - Gera Num Cte.0 - Javascript error:
2016/02/05 17:28:40 - Gera Num Cte.0 - TypeError: Cannot call method "substring" of null (script#12)
2016/02/05 17:28:40 - Gera Num Cte.0 -
2016/02/05 17:28:40 - Gera Num Cte.0 - at org.pentaho.di.trans.steps.scriptvalues_mod.ScriptValuesMod.addValues(ScriptValuesMod.java:457)
2016/02/05 17:28:40 - Gera Num Cte.0 - at org.pentaho.di.trans.steps.scriptvalues_mod.ScriptValuesMod.processRow(ScriptValuesMod.java:692)
2016/02/05 17:28:40 - Gera Num Cte.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:60)
2016/02/05 17:28:40 - Gera Num Cte.0 - at java.lang.Thread.run(Unknown Source)
2016/02/05 17:28:40 - Gera Num Cte.0 - Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot call method "substring" of null (script#12)
Как решить эту проблему, потому что она находится в конце файла?
Уверенный приятель, у меня есть дополнительная строка в конце, и я не видел, но ваш скрипт решает мою проблему. Благодарю. – thiagofred
Рад, что вы его исправили. – bolav