情境: 我在PDI中创建了一个转型。这个转换有一个Step'User Defined Java Class',我在其中调用一个外部库 此转换具有“参数”,目前,我必须获取所有参数 单独 以传递以在此步骤中使用它们(传递到我的外部jar),如下所示:< / p>
PgSqlHost = getVariable("PostgresHost");
PgSqlPort = getVariable("PgSqlPort");
PgSqlLoginUserId = getVariable("PgSqlLoginUserId");
PgSqlLoginPassword = getVariable("PgSqlLoginPassword");
我必须在此步骤中使用这些类似的50-60个参数。我必须单独获取它们并将它传递给外部java lib。
TransformationParameters tparams= new TransformationParameters();
tparams.PgSqlHost = PgSqlHost;
tparams.PgSqlPort = Integer.parseInt(PgSqlPort);
tparams.PgSqlLoginUserId = PgSqlLoginUserId;
tparams.PgSqlLoginPassword = PgSqlLoginPassword;
Configuration config = ConfigurationReader.getConfiguration();
config.setParameters(tparams);
这种方法的问题是:
我的问题: 有没有办法获取所有参数,如下所示:
HashMap<K,V> params = getAllVariables();
Configuration config = ConfigurationReader.getConfiguration();
config.setParametersMap(tparams);
我尝试了什么:
答案 0 :(得分:1)
在UserDefinedJavaClass
的流程行中使用此方法String[] variables = super.parent.listVariables();