如何實現(xiàn)java執(zhí)行kettle并傳參數(shù)
更新時間:2025年01月02日 08:40:12 作者:小宋1021
文章主要介紹了在審批成功后如何使用Kettle傳遞批次號參數(shù)并執(zhí)行KTR文件,同時,提到了所需的主要POM依賴,并強調(diào)了個人經(jīng)驗的價值,鼓勵大家參考和使用
java執(zhí)行kettle并傳參數(shù)
@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是你需要的參數(shù) // 執(zhí)行kettle,傳遞subnobatch參數(shù) kettleUtils.runKTR(kettleFileName,subNoBatch); } } }
審批成功后執(zhí)行kettle傳遞批次號參數(shù)
- runKTR:
/** * @title runKTR * @description 執(zhí)行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"); // 初始化環(huán)境 KettleEnvironment.init(); TransMeta transMeta = new TransMeta(kettleFilePath+fileName); Trans trans = new Trans(transMeta); // 向作業(yè)中添加參數(shù)-批次號 trans.setParameterValue("sub_batch_no", subBatchNo); // 執(zhí)行Kettle作業(yè) 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依賴:
<!-- 關聯(lián)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>
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java開發(fā)只要tomcat設計模式用的好下班就能早
這篇文章主要為大家介紹了java開發(fā)只要tomcat設計模式的示例詳解,<BR>只要設計模式用的好下班就能早,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02關于JAVA_HOME路徑修改之后JDK的版本依然不更改的解決辦法
今天小編就為大家分享一篇關于JAVA_HOME路徑修改之后JDK的版本依然不更改的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04