您好,欢迎访问一九零五行业门户网

kettle中javascript步骤错误处理

javascript步骤错误处理 如果你熟悉kettle转换的错误特性,你可能想知道在javascript步骤如何使用。支持错误机制的步骤用户界面机制是相同的,在javascript步骤右击,选择定义错误处理启用错误处理并配置。javascript代码可以识别错误行,并将他们转发到配置
javascript步骤错误处理
如果你熟悉kettle转换的错误特性,你可能想知道在javascript步骤如何使用。支持错误机制的步骤用户界面机制是相同的,在javascript步骤右击,选择“定义错误处理”启用错误处理并配置。javascript代码可以识别错误行,并将他们转发到配置的错误处理步骤,通过使用_step_对象的puterror()方法,需要以下几个参数:
1) rowmetainterface对象描述行结构
2) 当前的错误行
3) 在此行检测的错误数
4) 错误描述字符串(错误消息)
5) 引起错误的字段名称(字符串)
6) 错误代码(字符串)
通常情况下,原始的,未经修改的输入行被传递到错误处理步骤。因此,前两个参数通常被指定为getinputrowmeta()和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;}
其它类似信息

推荐信息