乙個
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...