javascript
kettle于javascript步骤错误处理
javascript步驟錯誤處理
?
?????? 假設(shè)你熟悉kettle誤差特性轉(zhuǎn)換。你可能想知道javascript步驟如何使用。驟用戶界面機(jī)制是同樣的,在javascript步驟右擊,選擇“定義錯誤處理”啟用錯誤處理并配置。javascript代碼能夠識別錯誤行,并將他們轉(zhuǎn)發(fā)到配置的錯誤處理步驟,通過使用_step_對象的putError()方法,須要下面幾個參數(shù):
1)????RowMetaInterface對象描寫敘述行結(jié)構(gòu)
2)????當(dāng)前的錯誤行
3)????在此行檢測的錯誤數(shù)
4)????錯誤描寫敘述字符串(錯誤消息)
5)????引起錯誤的字段名稱(字符串)
6)????錯誤代碼(字符串)
?
通常情況下,原始的,未經(jīng)改動的輸入行被傳遞到錯誤處理步驟。因此,前兩個參數(shù)通常被指定為getInputRowMeta()和row。其它參數(shù)取決于你想怎么詳細(xì)描寫敘述所遇到的錯誤。javascript步驟定義錯誤處理配置能夠配置那些字段輸出到錯誤處理步驟。
這個轉(zhuǎn)換的樣例首先生成隨機(jī)字符串。為了說明目的,javascript步驟推斷前面生成的字符缺少字母'a'和'K'就報錯,每一個缺少字母就產(chǎn)生一個錯誤。
javascript步驟包括下面代碼:
?
varshould_error_on_a= (value.indexOf("a") == -1)?1:0; varshould_error_on_k= (value.indexOf("k") == -1)?1:0; try{ if(should_error_on_a== 1 && should_error_on_k == 1){ throw{ message:"Value must contain 'a' and 'k'", nr_errors:2, field:"value", errcode:"ERR:003" } } elseif(should_error_on_a== 1){ throw{ message:"Value must contain 'a'", nr_errors:1, field:"value", errcode:"ERR:001" } } elseif(should_error_on_k== 1){ throw{ message:"Value must contain 'k'", nr_errors:1, field:"value", errcode:"ERR:002" } } //continue normally, passing the row on to the next step trans_Status= CONTINUE_TRANSFORMATION; } catch(e){ //divert the current row to the error step and do not pass anything to thenext step _step_.putError(getInputRowMeta(),row, e.nr_errors, e.message, e.field, e.errcode); trans_Status= SKIP_TRANSFORMATION; }
版權(quán)聲明:本文博主原創(chuàng)文章,博客,未經(jīng)同意不得轉(zhuǎn)載。
轉(zhuǎn)載于:https://www.cnblogs.com/zfyouxi/p/4800626.html
總結(jié)
以上是生活随笔為你收集整理的kettle于javascript步骤错误处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone的卡贴到底是啥原理?
- 下一篇: 橙光游戏《AGE》攻略