最近遇到一个问题,在作业(job)中定义的变量,无法传递到转换中。
1. 作业job定义如图
2.转换定义如图
3.为了测试转换的设置,所以在转换中设置了【命名参数】和默认值
在本地用spoon执行一点问题没有,但上传到远程的服务器上,转换就是获取不到变量。
然后,另外又在另一台远程服务器装了一个测试环境,测试也没问题,这就奇怪了。
最后,经过多次测试,竟然发现,只要删除转换里面的【命名参数】(光删除默认值都不行),job定义的变量,就可以传入到转换中了
这就太神奇,是什么原因导致这个问题呢?
最后,对比了一下,本地电脑版本是8.2的,测试服务器是9.0的,会不会是版本的问题?
生成环境的服务器是linux的,无法使用图形的spoon,一直没有注意它的版本
通过${kettle_home}/pan.sh -version 查看版本,发现服务器的竟然是7.1的版本
突然想起8.0的release note 里面好像有修正这个变量的问题。
总结:
在kettle7中,转换要接收作业的变量,一定不能定义命名参数