当前位置:Gxlcms > mysql > kettle中javascript步骤错误处理

kettle中javascript步骤错误处理

时间:2021-07-01 10:21:17 帮助过:231人阅读

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步骤包含以下代码:


  1. varshould_error_on_a= (value.indexOf("a") == -1)?1:0;
  2. varshould_error_on_k= (value.indexOf("k") == -1)?1:0;
  3. try{
  4. if(should_error_on_a== 1 && should_error_on_k == 1){
  5. throw{
  6. message:"Value must contain 'a' and 'k'",
  7. nr_errors:2,
  8. field:"value",
  9. errcode:"ERR:003"
  10. }
  11. }
  12. elseif(should_error_on_a== 1){
  13. throw{
  14. message:"Value must contain 'a'",
  15. nr_errors:1,
  16. field:"value",
  17. errcode:"ERR:001"
  18. }
  19. }
  20. elseif(should_error_on_k== 1){
  21. throw{
  22. message:"Value must contain 'k'",
  23. nr_errors:1,
  24. field:"value",
  25. errcode:"ERR:002"
  26. }
  27. }
  28. //continue normally, passing the row on to the next step
  29. trans_Status= CONTINUE_TRANSFORMATION;
  30. }
  31. catch(e){
  32. //divert the current row to the error step and do not pass anything to thenext step
  33. _step_.putError(getInputRowMeta(),row, e.nr_errors, e.message, e.field, e.errcode);
  34. trans_Status= SKIP_TRANSFORMATION;
  35. }

人气教程排行