数据库

 首页 > 数据库 > MySql > kettle中javascript步骤错误处理

kettle中javascript步骤错误处理

分享到:
【字体:
导读:
         摘要:举例说明kettle中javascript步骤的错误处理功能。 ...

kettle中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;

}

kettle中javascript步骤错误处理
分享到:
MySQL触发器 trigger之for each row
MySQL触发器 trigger之for each rowfor each row 每行受影响,触发器都执行,叫行级触发器。 oracle 触发器中分行级触发器和语句级触发器,可不写for each row,无论影响多少行都只执行一次。 mysql不支持语句触发器,所以必须写for each row; 实际操作验证: #触发器test5: DELIMITER $$ CREATE TRIGGER test5 AFTER UP...
use bbed(BBED-00200: invalid keyword (...
use bbed(BBED-00200: invalid keyword (file)) [oracle@ogg1 lib]$ cat filelist.txt  4 /opt/oracle/oradata/orcl11g/users01.dbf3 /opt/oracle/oradata/orcl11g/undotbs01.dbf2 /opt/oracle/oradata/orcl11g/sysaux01.dbf1 /opt/oracle/oradata/orcl11g/system01.dbf5 /opt/oracle/oradata/orcl11g/zbdba.dbf6 /opt/ora...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……