Kettle: JavaScript代码中的兼容模式

Kettle中的JavaScript中有个可选项【兼容模式】。官方资料是说,选了【兼容模式】之后,使用的是JavaScript 2.5引擎,如果不选该选项,则使用的是JavaScript 3.0引擎(由于对JavaScript了解的不是特别多,所以这两个版本的JavaScript的区别也不太清楚)。本来在使用这个转换时,都是默认勾选【兼容模式】的,但在某些情况下反而会导致错误。创建如下转换任务:

Kettle: JavaScript代码中的兼容模式

 其中,【表输入】中的配置如下:

Kettle: JavaScript代码中的兼容模式

这里需要先来关注一下country表中三个字段的数据类型:

Kettle: JavaScript代码中的兼容模式

下面要在【JavaScript代码】中处理这三个字段,以下都勾选了【兼容模式】:

  • 当【JavaScript代码】处理timestamp类型数据时会报ReferenceError错误。

Kettle: JavaScript代码中的兼容模式

  • 当【JavaScript代码】中处理Int类型/String型的数据时报Couldn't add Input fields to Script错误

Kettle: JavaScript代码中的兼容模式

 以上这两种情况,如果不勾选【兼容模式】都是可以正常处理的。