如何实现java执行kettle并传参数
更新时间:2025年01月02日 08:40:12 作者:小宋1021
文章主要介绍了在审批成功后如何使用Kettle传递批次号参数并执行KTR文件,同时,提到了所需的主要POM依赖,并强调了个人经验的价值,鼓励大家参考和使用
java执行kettle并传参数
@Override public void setStatus(String id, Integer bpmStatus) { List<LyntglAmmeterInfoDO> lyntglAmmeterInfoDOS = lyntglAmmeterInfoMapper.selectBpmList(id); if (lyntglAmmeterInfoDOS != null && lyntglAmmeterInfoDOS.size()>0){ lyntglAmmeterInfoDOS.forEach(item->{ item.setStatus(Long.parseLong(bpmStatus.toString())); lyntglAmmeterInfoMapper.updateById(item); }); } if (bpmStatus == 3){ if (!lyntglAmmeterInfoDOS.isEmpty()) { String subNoBatch = lyntglAmmeterInfoDOS.get(0).getSubBatchNo(); // 假设subnobatch是你需要的参数 // 执行kettle,传递subnobatch参数 kettleUtils.runKTR(kettleFileName,subNoBatch); } } }
审批成功后执行kettle传递批次号参数
- runKTR:
/** * @title runKTR * @description 执行KTR文件 * @param fileName * @param subBatchNo 提交批次号 * @return Map */ public Map<String,Object> runKTR(String fileName,String subBatchNo) { Map<String,Object> map = new HashMap<>(); int code = 200; String msg = ""; try { System.setProperty("KETTLE_PLUGIN_CLASSES", "org.pentaho.di.trans.steps.append.AppendMeta"); // 初始化环境 KettleEnvironment.init(); TransMeta transMeta = new TransMeta(kettleFilePath+fileName); Trans trans = new Trans(transMeta); // 向作业中添加参数-批次号 trans.setParameterValue("sub_batch_no", subBatchNo); // 执行Kettle作业 trans.execute(null); trans.waitUntilFinished(); if (trans.getErrors() > 0) { code = 500; msg = "KTR failed with errors."; } msg = "KTR executed successfully."; } catch (KettleException e) { msg = "Error-KTR: " + e.getMessage(); } map.put("code",code); map.put("msg",msg); return map; }
- 需要的pom依赖:
<!-- 关联kettle --> <dependency> <groupId>pentaho-kettle</groupId> <artifactId>kettle-core</artifactId> </dependency> <dependency> <groupId>pentaho-kettle</groupId> <artifactId>kettle-engine</artifactId> </dependency>
<dependency> <groupId>org.pentaho.di.plugins</groupId> <artifactId>pdi-core-plugins-impl</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
springboot配置过滤器和多个拦截器、执行顺序(案例详解)
这篇文章主要介绍了springboot配置过滤器和多个拦截器、执行顺序,在文章开头给大家介绍了过滤器配置的两种方法,创建两个拦截器,重写方法结合实例代码给大家介绍的非常详细,需要的朋友可以参考下2023-10-10
最新评论