gpt4 book ai didi

java - pentaho 插件中未显示传出字段

转载 作者:行者123 更新时间:2023-12-02 10:54:22 25 4
gpt4 key购买 nike

我为 pentaho 创建了一个步骤插件,它提供了一些输出字段。它从前面的步骤中获取 2 个输入字段,添加一些元数据和输出字段。虽然输出被发送到下一步,但当我右键单击并单击输出字段时,它仅显示先前步骤中的字段和值,而不是我创建的步骤插件中的字段和值。下面是 Meta 类的 Java 代码。

import org.eclipse.swt.widgets.Shell;
import org.pentaho.di.core.annotations.Step;
import org.pentaho.di.core.exception.KettleStepException;
import org.pentaho.di.core.row.RowMeta;
import org.pentaho.di.core.row.RowMetaInterface;
import org.pentaho.di.core.row.ValueMeta;
import org.pentaho.di.core.row.ValueMetaInterface;
import org.pentaho.di.core.variables.VariableSpace;
import org.pentaho.di.repository.Repository;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;
import org.pentaho.di.trans.step.*;
import org.pentaho.metastore.api.IMetaStore;


@Step(
id = "FlatJson",
image = "com/cxps/flatjson/steps/resources/demo.svg",
i18nPackageName = "com.cxps.flatjson",
name = "FlatJson.name",
description = "FlatJson.description",
categoryDescription = "i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform"
)
public class FlatJsonMeta extends BaseStepMeta implements StepMetaInterface {
public FlatJsonMeta() {
super();
}

@Override
public void setDefault() {

}

@Override
public StepInterface getStep(StepMeta stepMeta, StepDataInterface sdi, int i, TransMeta transMeta, Trans trans) {
return new FlatJson(stepMeta, sdi, i, transMeta, trans);
}

@Override
public StepDataInterface getStepData() {
return new FlatJsonData();
}

public StepDialogInterface getDialog(Shell shell, StepMetaInterface smi, TransMeta transMeta, String name) {
return new FlatJsonDialog(shell, smi, transMeta, name);
}

@Override
public void getFields(RowMetaInterface r, String origin, RowMetaInterface[] info, StepMeta nextStep, VariableSpace space, Repository repository, IMetaStore metaStore) throws KettleStepException {
//RowMetaInterface fields = new RowMeta();
//fields.addRowMeta(r);


super.getFields(r, origin, info, nextStep, space, repository, metaStore);
}

@Override
public Object clone() {
FlatJsonMeta retVal = (FlatJsonMeta) super.clone();
return retVal;
}
}

这是我的插件的 Spoon View ,不显示输出字段。

enter image description here

最佳答案

方法getFields() 负责显示步骤(或插件)的输出字段。在您的代码中,此方法只是调用 super();这就是为什么它不显示您的逻辑结果的字段。

您需要实现此方法来显示字段。您可以从他们对现有步骤(例如 TableInput 步骤)的执行方式中获取引用。

您可以在 pentaho git 存储库上找到源代码,位置为 pentaho-

kettle/engine/src/main/java/org/pentaho/di/trans/steps/tableinput/TableInputMeta.java

关于java - pentaho 插件中未显示传出字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51889983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com