如果为null,如何设置参数的默认值?

时间:2017-11-10 13:42:35

标签: pentaho kettle pentaho-spoon

如果运行时未提供load_date参数的默认值,我需要将2017/11/10 14:19:13 - Spoon - Transformation opened. 2017/11/10 14:19:13 - Spoon - Launching transformation [123]... 2017/11/10 14:19:13 - Spoon - Started the transformation execution. 2017/11/10 14:19:13 - 123 - Dispatching started for transformation [123] 2017/11/10 14:19:19 - get_variables.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0) 2017/11/10 14:19:19 - Write to log.0 - 2017/11/10 14:19:19 - Write to log.0 - ------------> Linenr 1------------------------------ 2017/11/10 14:19:19 - Write to log.0 - load_date = null 2017/11/10 14:19:19 - Write to log.0 - 2017/11/10 14:19:19 - Write to log.0 - ==================== 2017/11/10 14:19:19 - get_system_info.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0) 2017/11/10 14:19:19 - if_null.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0) 2017/11/10 14:19:19 - Write to log.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0) 2017/11/10 14:19:22 - Spoon - The transformation has finished!! 设置为{{1}}。我可以通过检查传递的值来实现这一点,并根据NULL检查进行相应的分配。是否有内置功能来实现这一目标?

我甚至尝试使用if_null步骤,这似乎是一个问题。

这是我在日志中得到的

{{1}}

这就是我的转型。每个步骤的图片中嵌入了详细信息。

123.ktr

1 个答案:

答案 0 :(得分:1)

事实上,If Null不接受replace by value中的字段,只接受一个值。

虽然可以使用其他解决方案,但您可能需要使用Modify JavaScript Value。根据作业为您的转换提供参数的方式,您可能需要将条件替换为if(load_date!='null')if(!load_date.isEmpty())

enter image description here