如何在 Pentaho 中的转换中的步骤之间传递变量

How to pass variables between steps inside a transformation in Pentaho

我想设计一个ETL作业,如附件所示。

第 1 步将设置两个变量 Variable_1Variable_2。我正在使用 Generate Rows 步骤来执行此操作,我在 Fields.

中定义了两个变量

第 2 步将通过 SQL 查询从数据库中读取日期。我正在使用 Table input 来实现这一点。而 sql 就像 select Variable_3 from table1 一样,它是一个单一的值。此处预览显示从数据库中读取值成功。

我想要第 3 步作为 Modified Java Script Value,我想在其中使用这 3 个变量并进行一些计算以导出输出 Variable_4,然后我想将其传递给未来的转换以供在那里使用。

我是 Pentaho 的新手,有以下问题:

1) 当我将步骤 2(数据库步骤)连接到步骤 3(Javascript 步骤)时,出现警告对话框:

We detected rows with varying number of fields, this is not allowed in a transformation. The first row contained 2 fields, another one contained 1

这个警告是什么意思?我究竟做错了什么?如何将第一步中的 2 个变量和第二步中的 1 个变量传递到我的 javascript 步骤?

2) 如何在我的 Javascript 步骤中设置计算的 Variable_4 以进一步用于其他转换?我是否要在 Transformation 1 上定义一个名为 Variable_4 的参数并从 javascript 设置它?如果是,如何?

我通过删除第一步(生成行创建两个变量)并在 Table 查看步骤之后添加常量步骤以添加变量 1 和变量 2 以及传递给它的变量 3 来解决这个问题Table 查看步骤。

最后,我的 Javascript 步骤中的所有 3 个变量都可用。

虽然我仍然无法弄清楚问题 2)。