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;

}
时间: 2024-10-24 21:28:49

kettle中javascript步骤错误处理的相关文章

KETTLE使用javascript步骤过滤特殊字符

使用kettle在抽取大量excel数据时,总是遇到excel中有一些特殊字符,导致ExecuteSQL script步骤执行失败,本文记录一些方法过滤一些特殊字符.同行有更好的方式实现,欢迎指点,共同学习. 完整的实现转换截图如下 1.  使用javascript步骤过滤所有string字段的字符 使用javascript步骤可以通过代码来实现,避免增加过多的步骤,且一次性过滤所有的字段:代码如下: for (vari=0;i<getInputRowMeta().size();i++){ /

Kettle中JavaScript内置函数说明

本文链接:https://blog.csdn.net/u010192145/article/details/102220563 我们在使用JavaScript组件的时候,在左侧核心树对象栏中可以看到Kettle为我们提供了很多简洁强大的内置函数,帮助我们在写脚本的时候对数据.参数变量等能很轻松的做处理,体验编码的感觉.本篇将详细介绍JavaScript组件中的函数功能 脚本组件包含的函数主要包括六大类,分别是: 字符串类型的函数(String Functions) 浮点型的函数(Numeric

kettle中访问前一行数据

 kettle中访问前一行数据 在kettle中,当需要访问数据流前一行数据时,很多人都是用javascript步骤的特性:实际上没有必要,不是说javascript步骤不好,主要是性能低,同时也增加了复杂度,因为写代码让javascript步骤难以理解,最好是使用kettle标准步骤实现.我们的原则是代码最小化,过程轻松. (The Analytic Query Step)分析查询步骤 TheAnalytic Query 步骤可以查找数据流中的前面行或后面行,并且取值到当前行,很多场合是非

kettle中使用javascript步骤和fireToDB函数实现自定义数据库查询

kettle中使用javascript步骤和fireToDB函数实现自定义数据库查询 假设你需要实现非传统的数据库查询操作,为了讨论这种情景,我们假设你需要读取数据库中的正则表达式,然后检查输入的每行的字段匹配表达式的个数. 在javascript步骤执行数据库查询 在javascript步骤初始化的时候,查询数据库,获取正则表达式记录集.然后每一行的输入数据循环检查是否匹配表达式,如果匹配,记录变量加一,最后把结果写到到前行的新增字段中.思路很清楚,但是如何在javascript步骤实现数据库

kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询

kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询 如果你须要实现非传统的数据库查询操作.为了讨论这样的情景,我们如果你须要读取数据库中的正則表達式,然后检查输入的每行的字段匹配表达式的个数. 在javascript步骤运行数据库查询 在javascript步骤初始化的时候,查询数据库.获取正則表達式记录集.然后每一行的输入数据循环检查是否匹配表达式,假设匹配.记录变量加一,最后把结果写到到前行的新增字段中. 思路非常清楚,可是怎样在javascript步骤实

kettle中使用JavaScript的一个例子

最近在使用kettle的时候遇到一个问题,需要对输入的一个字段进行格式化,逻辑比较复杂(需要做替换掉指定的字符串,然后将数字部分不足四位的数前边补0等操作),kettle中没有提供直接的插件来支持复杂的业务逻辑处理,所以就自己写代码来处理. kettle中可以支持Java代码和JavaScript代码,java代码我尝试了几次,不是太稳定,所以就使用了JavaScript 1.在左侧选择脚本中的 JavaScript代码 2.上个步骤传过来的字段 都在Input fields中,在JavaScr

在kettle中实现数据验证和检查

在kettle中实现数据验证和检查 在ETL项目,输入数据通常不能保证一致性.在kettle中有一些步骤能够实现数据验证或检查.验证步骤能够在一些计算的基础上验证行货字段:过滤步骤实现数据过滤:javascript步骤能够实现更复杂的计算. 通常以某种方式查看那些数据是有缺陷的也是实用的,由于大多数ETL是无人值守执行的,所以通常ETL程序会把这些缺陷数据通知给ETL开发人员或管理员.建议把这些问题数据行保存到一个特定的公共表格中,以便跟踪这些数据:那么该表格应该包含一些元信息,如:执行转换的名

kettle中调用java类

有时需要在kettle调用java类,如:验证.查询或自定义加密等.有时甚至连基本的数据访问都不那么简单,如获取一个存储文件或使用一个数据库连接,某些数据源可能封装在应用程序中,手工使用自定义的java客户端访问是唯一的方法.本文介绍如何在kettle中调用java类.示例代码在这里下载. 注:如果你使用kettle4.0及以上版本,也你也可以使用user defined java class 步骤实现.   Modified Java ScriptValue 步骤 关键要在kettle中使用M

Eclipse去除JavaScript验证错误

这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步: 去除eclipse的JS验证: 将windows->preference->Java Script->Validator->Errors/Warnings-> Enable Javascript Sematic validation前面的勾去掉; 第二步: 右键项目 -> properties -> Buil