如何實(shí)現(xiàn)java執(zhí)行kettle并傳參數(shù)
更新時(shí)間:2025年01月02日 08:40:12 作者:小宋1021
文章主要介紹了在審批成功后如何使用Kettle傳遞批次號(hào)參數(shù)并執(zhí)行KTR文件,同時(shí),提到了所需的主要POM依賴,并強(qiáng)調(diào)了個(gè)人經(jīng)驗(yàn)的價(jià)值,鼓勵(lì)大家參考和使用
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傳遞批次號(hào)參數(shù)
- runKTR:
/**
* @title runKTR
* @description 執(zhí)行KTR文件
* @param fileName
* @param subBatchNo 提交批次號(hào)
* @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ù)-批次號(hào)
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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java開發(fā)只要tomcat設(shè)計(jì)模式用的好下班就能早
這篇文章主要為大家介紹了java開發(fā)只要tomcat設(shè)計(jì)模式的示例詳解,<BR>只要設(shè)計(jì)模式用的好下班就能早,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
關(guān)于JAVA_HOME路徑修改之后JDK的版本依然不更改的解決辦法
今天小編就為大家分享一篇關(guān)于JAVA_HOME路徑修改之后JDK的版本依然不更改的解決辦法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04
Java 實(shí)現(xiàn)簡(jiǎn)單Socket 通信的示例
這篇文章主要介紹了Java 實(shí)現(xiàn)簡(jiǎn)單Socket 通信的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下2021-03-03
我用java實(shí)現(xiàn)了王者榮耀的皮膚和英雄技能
上篇文章主要實(shí)現(xiàn)了創(chuàng)建英雄,創(chuàng)建野怪,創(chuàng)建裝備.并且實(shí)現(xiàn)了簡(jiǎn)單的刷怪,購(gòu)買裝備等.本篇文章我優(yōu)化了我的操作界面,并且實(shí)現(xiàn)了英雄技能,英雄皮膚等,需要的朋友可以參考下2021-05-05
Java實(shí)現(xiàn)微信網(wǎng)頁(yè)授權(quán)的示例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)微信網(wǎng)頁(yè)授權(quán)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-07-07

