从 Pentaho kettle 中的 shell 脚本设置变量,可以被进一步的作业访问
Setting varible from shell script in Pentaho kettle which can be accessed by further jobs
我想知道如何从 pentaho kettle 中可用的 shell 作业设置变量,工作流程中的进一步作业(简单评估)可以访问该变量。
我正在尝试创建一个工作流,其中我有一个开始元素,该元素将作为 shell作业触发以检查文件夹是否存在,如果文件夹存在则设置一个变量。下一个作业是简单评估,它需要检查变量(由 shell 作业设置)是否为真,以继续工作流或终止工作流。
开始-->ShellJob(检查创建的文件夹并设置变量)-->SimpleEvaluation Job。
--米克
好问题。我不知道这种功能,因为 "Execute a shell script..." 步骤并非设计为数据管道。再者,should/can一个脚本return对你有什么价值?是 echo
的结果吗? shell 脚本基本上可以是任何东西。我会说 PDI 中没有内置功能是有原因的。
话虽如此,你可以做的是这样的:
- 执行脚本,在脚本结束时将变量写入文件系统上的文本文件
- 创建一个子转换,从您在 shell 脚本步骤中编写的文件中读取变量,然后将 it/them 存储在全局范围变量
中
- 评估作业中的变量
它可能看起来有点麻烦,但它应该可以为您完成工作,因为您要求以一种并非真正设计用于使用的方式使用 Shell 脚本步骤。
下面是一个高级实现的例子(子转换的实现应该很简单):
希望对您有所帮助。
我想知道如何从 pentaho kettle 中可用的 shell 作业设置变量,工作流程中的进一步作业(简单评估)可以访问该变量。
我正在尝试创建一个工作流,其中我有一个开始元素,该元素将作为 shell作业触发以检查文件夹是否存在,如果文件夹存在则设置一个变量。下一个作业是简单评估,它需要检查变量(由 shell 作业设置)是否为真,以继续工作流或终止工作流。
开始-->ShellJob(检查创建的文件夹并设置变量)-->SimpleEvaluation Job。
--米克
好问题。我不知道这种功能,因为 "Execute a shell script..." 步骤并非设计为数据管道。再者,should/can一个脚本return对你有什么价值?是 echo
的结果吗? shell 脚本基本上可以是任何东西。我会说 PDI 中没有内置功能是有原因的。
话虽如此,你可以做的是这样的:
- 执行脚本,在脚本结束时将变量写入文件系统上的文本文件
- 创建一个子转换,从您在 shell 脚本步骤中编写的文件中读取变量,然后将 it/them 存储在全局范围变量 中
- 评估作业中的变量
它可能看起来有点麻烦,但它应该可以为您完成工作,因为您要求以一种并非真正设计用于使用的方式使用 Shell 脚本步骤。
下面是一个高级实现的例子(子转换的实现应该很简单):
希望对您有所帮助。