Pentahou Kettle 在Job里使用Javascript 处理复杂逻辑
SSIS 有 script component 允许用户用C# 或者 VB来定义复杂逻辑
Pentaho Kettle 有 Javascript 允许用户用js来定义复杂逻辑
Javascript 最后必须返回一个布尔变量(如下面示例代码中的 true;), 表示成功或者失败
可用使用 parent_job.setVariable(); 来定义变量
下面有一段示例代码, 使用了js 和日期有关的函数, 定义了一个字符串类型的日期变量(昨天)和一个序号类型(自2015/01/01起始)的日期代号:
var yesterday_milliseconds=new Date().getTime()-1000*60*60*24;
var date = new Date();
date.setTime(yesterday_milliseconds);
var seperator1 = "-";
var year = date.getFullYear();
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var yesterdate = year + seperator1 + month + seperator1 + strDate;
parent_job.setVariable("date",yesterdate);
var s1 = '2015/01/01';
s1 = new Date(s1);
s2 = new Date();
var days = s2.getTime() - s1.getTime();
var dateid = parseInt(days / (1000 * 60 * 60 * 24))+1;
parent_job.setVariable("dateid",dateid);
true;