带参数化表输入的Pentaho釜映射

带参数化表输入的Pentaho釜映射,pentaho,etl,kettle,data-integration,Pentaho,Etl,Kettle,Data Integration,我正在将一个值传递给子转换,子转换会很好地接受该值,因为我已经使用java脚本步骤来提醒它 但是我在子转换步骤中有一个表输入步骤,我需要使用父转换值作为表输入步骤的参数来对其运行查询,但它不起作用,因为表输入步骤不理解字段,我如何实现此行为 我被困在这一点上,不能再往前走了 剩下的唯一选项是使用Pentaho作业,但是否可以在转换内部使用映射 我试图在子转换中从javascript中设置变量,但没有任何效果 我希望您的子转换与下图中的子转换类似。您确定正确传递了参数吗?重要的是: 映射输入规

我正在将一个值传递给子转换,子转换会很好地接受该值,因为我已经使用java脚本步骤来提醒它

但是我在子转换步骤中有一个表输入步骤,我需要使用父转换值作为表输入步骤的参数来对其运行查询,但它不起作用,因为表输入步骤不理解字段,我如何实现此行为

我被困在这一点上,不能再往前走了

剩下的唯一选项是使用Pentaho作业,但是否可以在转换内部使用映射

我试图在子转换中从javascript中设置变量,但没有任何效果


我希望您的子转换与下图中的子转换类似。您确定正确传递了参数吗?重要的是:

  • 映射输入规范
    中的参数数量与
    表格输入
    步骤中使用的参数数量相同
  • 替换脚本中的变量
    已选中
  • 插入步骤中的数据
    已填充
  • SQL查询中使用的参数

如果需要将更多参数传递到
表输入
,则上一步中的参数数量(
映射输入规范
,在我的示例中)需要尊重表输入中使用的参数数量。然后在查询中使用
更多次。例如,对于3个参数,您可以有:

WHERE name = ? AND surname = ? AND age = ?
此外,您还需要遵守来自上一步的参数顺序:


请发布一些代码或您尝试过的一些屏幕截图。我刚刚在帖子中放置了两张图像,请查看它们,子转换有一个警报,正确捕获了参数,但表输入没有得到它:(?不起作用,但${variablenamehere}起作用,但不返回数据,甚至数据库中存在记录。是否
映射(执行子转换)
在根转换中运行子转换?在此步骤中是否正确设置了
输入
输出
参数?如果将子转换的内容粘贴到根转换中,是否有效(意味着您在根转换中拥有全部内容)?在根转换中更容易使其全部工作,然后如果某组步骤重复,则将其移动到子转换中。
${param}
语法用于插入转换参数。它不用于插入上一步中的数据。顺便说一句,屏幕截图中的一个错误显示为-SQL查询中的错误。这是因为Kettle没有替换脚本中的变量。如果需要将更多参数传递给
表输入
上一步中的参数数>需要尊重您在
表输入中使用的参数数量
。然后您在查询中使用
更多次。例如,对于3个参数,您可以有:
其中name=?和name=?以及age=?
。此外,您还需要尊重来自
上一步的参数顺序
您可以记录
的结果表输入
通过
写入日志
步骤。或者,当您执行转换时,您可以设置
日志级别=行级别(非常详细)
以查看更多信息。我想我已经回答了您原来的问题。.接下来的调试步骤需要由您执行。:)