当前位置: 代码迷 >> 综合 >> Pentahou Kettle 在Job里使用Javascript 处理复杂逻辑
  详细解决方案

Pentahou Kettle 在Job里使用Javascript 处理复杂逻辑

热度:53   发布时间:2023-12-09 22:40:54.0

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;

 

  相关解决方案