1】 分页
2】变量设置 == 全局/局部
3】查询总数据量,并设置变量
SELECT
count(1) total_page
FROM
dmlog_policy t
WHERE 1=1
and t.trans_status in ('0','3')
and contractid between ${fromContractId} and ${toContractId}
and riskCode = ${riskCode}
-- 过滤掉大团单
-- and not exists (select 1 from big_policy a where a.contractid= t.contractid)
4】js增加判断 == 是否继续/结束 false退出
var subject="自定义日志输出";
//实例化工厂类
var logFactory = new org.pentaho.di.core.logging.LogChannelFactory();
//实例化日志channel对象
var log= logFactory.create(subject);
//日志输出
log.logMinimal("-------------分页判断-------------------");
var currPage = parent_job.getVariable("curPage");// 从job获取当前页数值(当前第几页)
var page_size = parseInt(parent_job.getVariable("pageSige")); // 分页条数
var total_page = parent_job.getVariable("TOTAL_PAGE"); // 当前线程总数
var riskcode = parent_job.getVariable("riskCode"); // 当前迁移险种
log.logMinimal("-------------currPage:" + currPage + ",page_size:" + page_size + ",total_page:" +total_page+ ",riskcode:"+ riskcode+"-------------------");
if(total_page == null || total_page == undefined || total_page == ""){
// 总数为空的时候,直接返回错误
false;
}else{
total_page = parseInt(total_page);
}
if(currPage == null || currPage == undefined || currPage == ""){
// 当前页为空的时候,直接返回错误
false;
}else{
var nextCurrPage = parseInt(currPage)+1;
}
//超过100次循环会堆栈内存溢出,故限制在100次之内
if( (currPage*page_size) < total_page && nextCurrPage<=100 ){
parent_job.setVariable("curPage",(parseInt(currPage)+1));
true;
}else{
false;
}
补充1】
条件:检验字段的值