Как получить значение поля в определяемом пользователем классе Java в чайнике?

Я пытаюсь получить поле Link на шаге User Defined Java Class из приведенного ниже преобразования. введите здесь описание изображения

Вот код, который я написал в User Defined Java Class:

private String link;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
    Object[] r=getRow();
    if (r == null) {
        setOutputDone();
        return false;
    }

    if (first) {
        link = getParameter("Link");
        first = false;
    }

    String linkField = get(Fields.In, link).getString(r);
    logBasic("link:" + link);


    return true;

}

Когда я запускаю приведенный выше код, вот ошибка, которую я получаю на этапе пользовательского класса Java:

2016/06/28 11:26:57 - User Defined Java Class.0 - ERROR (version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy) : Unexpected error
2016/06/28 11:26:57 - User Defined Java Class.0 - ERROR (version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy) : org.pentaho.di.core.exception.KettleStepException: 
2016/06/28 11:26:57 - User Defined Java Class.0 - Unable to find In field helper for field name 'null'
2016/06/28 11:26:57 - User Defined Java Class.0 - 
2016/06/28 11:26:57 - User Defined Java Class.0 -   at org.pentaho.di.trans.steps.userdefinedjavaclass.TransformClassBase.get(TransformClassBase.java:628)
2016/06/28 11:26:57 - User Defined Java Class.0 -   at Processor.processRow(Processor.java:15)
2016/06/28 11:26:57 - User Defined Java Class.0 -   at org.pentaho.di.trans.steps.userdefinedjavaclass.UserDefinedJavaClass.processRow(UserDefinedJavaClass.java:1018)
2016/06/28 11:26:57 - User Defined Java Class.0 -   at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2016/06/28 11:26:57 - User Defined Java Class.0 -   at java.lang.Thread.run(Thread.java:745)
2016/06/28 11:26:57 - User Defined Java Class.0 - Finished processing (I=0, O=0, R=1, W=0, U=0, E=1)

Чтобы подтвердить поля, вот снимок данных предварительного просмотра до шага Filter rows:

введите здесь описание изображения

Где я ошибаюсь?


person psr    schedule 28.06.2016    source источник


Ответы (1)


Я понял, где я пропал. В User Defined Java Class на вкладке «Параметры» ниже мне нужно явно указать имя поля и его псевдоним, например: введите здесь описание изображения

person psr    schedule 28.06.2016