Kettle外掛程式開發(Job)

2021-06-07 17:13:19 字數 2906 閱讀 9912

乙個

kettle

的job

外掛程式主要包括兩個類,和轉換步驟外掛程式一樣,乙個是用於客戶端定義引數配置的

ui dialog

類,乙個是

job  entry

類,主要是跟蹤儲存客戶的配置資訊和執行

job具體的功能(在

execute()

方法中執行)。 1

、ui dialog類。

ui dailog

類和轉換步驟中的

dailog

一樣,在

open

方法中進行配置介面的

ui繪製,然後能過構造引數中的

jobentryinte***ce

類載入歷史配置資訊到各種

ui控制項上。和轉換步驟一樣,注意的配置資訊變更狀態的更新。

job dialog

和step dialog

的不同之處包括以下幾點: (

1)job dialog

的open

方法返回的是乙個更改後的

job entry

,而stepdialog

返回的是

step

的名字。 (

2)job dialog

必須保證使用者輸入乙個正確的

job entry

名字,不能接受乙個空的名字,如果名字為空,不能讓使用者儲存配置資訊。 2

、國際化。

job外掛程式的國際化與轉換步驟的國際化相同,這裡不再闡述。 3

、job entry類。

這個類有以下三個主要的職責:(1

)跟蹤處理使用者的配置資訊(包括序列化到

xml或資源庫)。

job entry

類通過一些私有變數來跟蹤使用者的配置資訊,提供一些

get\set

方法使其能夠方便的訪問。同時也實現一些方法來將配置資訊儲存(讀取)到

xml或資源庫,也提供乙個

clone

方法來處理使用者複製

job的一些初始化工作。 (

2)向kettle

引擎報告各種處理狀態(下一步的跳轉方式)。

kettle

客戶端spoon

為job entry

預設了三種不同的處理狀態:成功

success(綠色)

,失敗failure(紅色)

,無條件的

unconditional

(黑色)

。每乙個

job entry

都要提供關於它所支援的處理狀態資訊。

kettle

會呼叫evaluates()

方法來確定

job entry

是否支援成功和失敗,呼叫

isunconditional()

來確定是否支援無條件跳轉。除非你不想支援這個

job之後執行別的後續任務,否則必須有乙個能返回

true

。如果你想給客戶更多的選擇,那麼兩個方法都返回

true

即可。如下所示:

public

boolean

evaluates()

public

boolean

isunconditional() (3

)執行這個任務需要執行的相關操作。

當乙個控制流程到達

job entry

時,kettle

將會執行它的

execute()

方法,這裡才執行真正的乙個任務的具體操作。這個方法有兩個引數,第乙個是乙個結果物件(

result object

),第二個是當前任務是第幾個任務的數值(這個引數很少會被用到)。結果物件裡有上乙個任務的

job entry

。很少情況下當前任務會關心上乙個任務的執行狀態,所以基本上都是在這個結果物件裡標識當前任務是否執行成功,如果你想跳轉到無條件跳轉路徑上,那麼你直接返回未更改的結果物件就可以。 4

、外掛程式定義(配置)。

<?

xml

version

="1.0"

encoding

="utf-8"

?>

<

pluginid=

"triggerreportonjasperserver"

iconfile="jaspersoft.png"

description="trigger report on jasperserver"

tooltip="trigger report on jasperserver"

category="experimental"

classname="plugin.kettle.jasperserver.trigger.jobentryjasperserverreport">

<

library

name

="js-trigger-report.jar"

/>

<

library

name

="lib/jasper.jar"

/>

<

library

name

="lib/jasper-ws.jar"

/>

libraries>

plugin>

需要在配置檔案中配置圖示,分類,

job entry

類及引用的

jar包。

原文:

kettle 外掛程式開發

kettle core kettle的核心模組,包括一些資料處理等。kettle dbdialog kettle資料庫連線介面邏輯。kettle engine kettle的引擎,負責執行kettle的具體作業和轉換的邏輯,並會呼叫core模組。kettle ui swt 使用者介面模組,包括使用者...

KETTLE系列5 新建JOB

新建轉換之後,可以使用job將多個轉換或job放在乙個job中,排程會方便很多。5.1 新建 job 開啟spoon,不連線資源庫 在 主物件樹 中,選中 jobs 右鍵,選擇 新建 會預設新建乙個名為 job 1 的job,且自動跳到 job 1 的 核心物件 開發介面 新建 start 步驟 勾...

Kettle5 x step外掛程式開發總結

假設我們要實現乙個step外掛程式,命名為 下面的類是必須實現的 public class extends basestep implements stepinte ce public class meta extends basestepmeta implements stepmetainte c...