在子作业(Kettle 作业)中循环文件名

Loop over file names in sub job (Kettle job)

任务是从文件夹中获取文件名,然后将相同的任务(作业)一个一个地循环遍历所有文件。

我创建了一个简单的转换作业(获取文件名),然后创建了带有标志 "Execute for each row" 的作业(现在只是记录文件名)。

是否按照此处描述的方式进行操作:http://ramathoughts.blogspot.ch/2010/08/processing-group-of-files-with-kettle.html

但是,接收文件的路径没有传递给子作业(日志记录不显示变量值)。但是子作业的执行次数与输入文件夹中的文件数一样多。所以看起来它在某种程度上被传递了,但由于某种原因不能作为变量使用。

带有日志详细信息的图像,如所见,变量显示为 ${path} 而不是路径值: http://i.imgur.com/pK1iHtl.png?1

下面的示例代码是包含作业和转换的存档以及示例输入文件。感谢您的帮助,因为我可能在这里遗漏了一些简单的东西 https://www.hightail.com/download/bXBhL0dNcklCMTVsQXNUQw

问题是第 2 个作业(即 j_log_file_names.kjb)无法检测到参数 path。只需尝试为该作业定义参数;如下图:

这将确保来自上一个的参数。步骤已正确提取到作业中。你的其他工作看起来非常好。

希望这对您有所帮助:)