kettle于javascript步骤错误处理
javascript步骤错误处理
indexof的用法javascript
假设你熟悉kettle误差特性转换。你可能想知道javascript步骤如何使⽤。骤⽤户界⾯机制是同样的,在javascript步骤右击,选择“定义错误处理”启⽤错误处理并配置。javascript代码能够识别错误⾏,并将他们转发到配置的错误处理步骤,通过使⽤_step_对象的putError()⽅法,须要下⾯⼏个參数:
1)    RowMetaInterface对象描写叙述⾏结构
2)    当前的错误⾏
3)    在此⾏检測的错误数
4)    错误描写叙述字符串(错误消息)
5)    引起错误的字段名称(字符串)
6)    错误代码(字符串)
通常情况下,原始的,未经改动的输⼊⾏被传递到错误处理步骤。因此,前两个參数通常被指定为getIn
putRowMeta()和row。其它參数取决于你想怎么详细描写叙述所遇到的错误。javascript步骤定义错误处理配置能够配置那些字段输出到错误处理步骤。
这个转换的样例⾸先⽣成随机字符串。为了说明⽬的,javascript步骤推断前⾯⽣成的字符缺少字母'a'和'K'就报错,每⼀个缺少字母就产⽣⼀个错误。
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;
}
版权声明:本⽂博主原创⽂章,博客,未经同意不得转载。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。