如何實現(xiàn)java執(zhí)行kettle并傳參數(shù)
更新時間:2025年01月02日 08:40:12 作者:小宋1021
文章主要介紹了在審批成功后如何使用Kettle傳遞批次號參數(shù)并執(zhí)行KTR文件,同時,提到了所需的主要POM依賴,并強(qiáng)調(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(); // 假設(shè)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依賴:
<!-- 關(guān)聯(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>總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot 在ftl頁面上使用shiro標(biāo)簽的實例代碼
這篇文章主要介紹了springboot 在ftl頁面上使用shiro標(biāo)簽的實例代碼,通過文字說明結(jié)合實例的形式給大家介紹的非常詳細(xì),需要的朋友參考下吧2018-05-05
Java使用Spire.XLS?for?Java實現(xiàn)Excel與XML互轉(zhuǎn)
在當(dāng)今的數(shù)據(jù)驅(qū)動時代,不同系統(tǒng)間的數(shù)據(jù)交換與集成已成為常態(tài),本文將深入探討如何利用強(qiáng)大的Spire.XLS?for?Java庫,在Java環(huán)境中輕松實現(xiàn)Excel到XML以及XML到Excel的靈活轉(zhuǎn)換,希望對大家有所幫助2026-02-02
java 使用線程監(jiān)控文件目錄變化的實現(xiàn)方法
這篇文章主要介紹了java 使用線程監(jiān)控文件目錄變化的實現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-10-10

