kettle介绍-Step之Script Values/Mod(JavaScript 代码) 一

16 篇文章 0 订阅

Script Values/Mod JavaScript 代码介绍

JavaScript 代码步骤提供了一个用户界面,用户可以编写 JavaScript 代码到脚本区,脚本区域中的每一行代码都会执行一次,该步骤具有两个窗格和一个表
在这里插入图片描述

  • Step name:步骤的名称,在单一转换中,名称必须唯一

  • Java script functions

    • Transform Scripts:该步骤中创建的 JavaScript 脚本
    • Transform Constants:插件内置常量,用于数据行流程控制
      - SKIP_TRANSFORMATION:从输入行集中排除当前行,然后继续处理下一行
      - ERROR_TRANSFORMATION:从输入行集中排除当前行,生成错误,并且不处理其余所有行。
      - CONTINUE_TRANSFORMATION:在输入行集中包括当前行
    • Transform Functions:步骤内置函数(字符串,数字,日期,逻辑,特殊和文件函数),能在脚本中直接调用
  • String Functions

字符串类型的函数是针对字符串类型的参数、变量进行处理操作的函数在这里插入图片描述

  • date2str:日期转字符串函数date2str主要有4个方法
    - date2str(date):传入日期实例,转换成字符串类型
    - date2str(date,format):传入日期和格式化参数,进行格式化转换
    - date2str(date,format,iso):传入日期和参数格式化及ISO代码进行转换,(DE = German, EN = English, FR = France, …)
    - date2str(date,format,iso,zone):传入时区进行格式化,例如北京时区(GMT+8)
    用法示例:

//日期格式化参数format参数类型供参考:
var new_date = new Date();

//yyyy 年 4位:2024
var years_4 = date2str(new_date,“yyyy”);
//yy 年 2位:24
var years_2 = date2str(new_date,“yyyy”);
//MM 月 ,数字(00 -12):04
var months_d = date2str(new_date,“MM”);
//MMM 月,英文简称:
var months_e = date2str(new_date,“MMM”,“EN”);
//MMM 月,英文全称:
var months_f = date2str(new_date,“MMMM”,“EN”);
//dd 天 2位:15
var yays_2 = date2str(new_date,“dd”);
//d 天 1位:1
var yays_2 = date2str(new_date,“d”);
//E 星期简称
var weeks_j = date2str(new_date,“E”,“EN”);
//EEEE 星期全称
var weeks_f = date2str(new_date,“EEEE”,“EN”);
//HH 小时(00-23)
var hours_24 = date2str(new_date,“HH”);
//hh 小时(01-12)
var hours_12 = date2str(new_date,“hh”);
//mm 分钟 2位 05
var minutes_2 = date2str(new_date,“mm”);
//mm 分钟 1位 5
var minutes_1 = date2str(new_date,“m”);
//ss 秒 2位:05
var seconds_2 = date2str(new_date,“ss”);
//s 秒 1位:5
var seconds_1 = date2str(new_date,“s”);
//毫秒
var seconds_1 = date2str(new_date,“SSS”);

var str_new_date = date2str(new_date,‘yyyy-mm-dd HH:mm:ss.SSS’);在这里插入图片描述

  • escapeHtml(var):转义HTML

  • escapeSQL(var):转义SQL,该函数会把单引号转成双引号

  • escapeXml(var):转义XML

  • fillString(var,var):构造定长字符串

  • getOcuranceString(var,var):统计字符串出现频次,第一个参数是要搜索的完整字符串,第二个参数是要搜索统计的字符串

  • indexOf(var,var):获取字符串下标索引,获取出现字符串的索引开始位置

  • indexOf(var,var,var):获取字符串下标索引,指定开始位置,获取字符串索引开始位置

  • initCap(var):首字母大写,对指定字符串首字母大写处理

  • lower(var):字符串转小写,将传入字符串全部转小写

  • lpad(var,var,var):字符串填充左侧,用指定长度的给定字符将字符串填充到左侧,第一个参数传入字符串,第二个参数填充单字符,第三个参数填充单字符长度,如果length长度超过给定字符串的长度,将对填充字符串做减法,如果length长度小于给定字符串的长度,则默认返回原字符串,不做填充

  • ltrim(var):去空字符,从左侧开始去除空字符串

  • num2str(var):数字转字符串,转换num数字为字符串

  • num2str(var,var):数字转字符串,格式化数字为指定字符串

  • num2str(var,var,var):数字转字符串,按照本地ISO编码进行格式化

  • protectXMLCDATA(var):XML保护标签函数转换,传入给定字符串,添加标准保护

  • removeCRLF(var):移除字符串中CRLF字符,给定字符串中删除CR END LF的字符串

  • replace(var,var,var):替换字符串,从指定字符串中查询,然后替换

  • rpad(var,var,var):字符串右侧填充,使用方法同lpad,只是一个是左侧,一个是右侧

  • rtrim(var):去除空字符(右侧)

  • str2RegExp(var,var):正则切分,出入一个正则表达式,对string字符串进行Split操作

  • substr(var,var):字符串截取,通过指定索引开始对字符串进行截取操作,指定from索引开始截取字符串

  • substr(var,var,var):字符串截取,通过指定索引开始对字符串进行截取操作,指定开始和截止索引进行截取

  • trim(var):去除左右空格

  • unEscapeHtml(var):不转义HTML,针对以转义的HTML字符进行解密

  • unEscapeXml(var):针对以转义的HTML字符进行解密

  • upper(var):字符串转大写,将传入字符串全部转大写

    • Input fields:输入流的字段名称
    • Output fields:输出流的字段名称
  • Java script:JavaScript 代码脚本编辑区。可以从左窗口中插入常量、函数、输入输出字段、JavaScript 函数。右键单击后,会出现功能窗口
    在这里插入图片描述
    - Add new:添加新的脚本标签
    - Add copy:在新标签中添加现有脚本的副本
    - Set Transform Script:指定每个传入行执行的脚本
    注:默认情况下,第一个选项卡是转换脚本
    - Set Start Script:指定在处理第一行之前要执行的脚本
    - Set End Script:指定在处理完最后一行之后执行的脚本
    - Remove Script Type:指定不执行脚本

  • Compatibility mode?:选择“ 兼容模式”选项以使用 2.5JavaScript引擎的 版本,如果未选择此选项(默认),则该步骤使用 JavaScript 引擎的版本 3
    :在2.5 引擎中,值对象可以直接修改,并且其类型可以更改,例如,您可以将日期变量转换为字符串,3.0 引擎不支持此功能,因此 JavaScript 应该运行得更快

  • Optimization level:设置 JavaScript 优化级别。0 没有执行优化。1-9 执行所有优化。9 以最快的速度执行大多数优化,但编译速度较慢。预设值为 9

  • Fields:
    - Fieldname:设置输入流中的字段名称
    - Rename to:为输入字段指定一个新字段名称
    - Type:指定字段类型:字符串,整数,二进制,数字
    - Length:对于数字:数字的有效长度;对于字符串:字符串的总长度;对于日期:字符串的打印输出长度(例如,输入 4 只会返回年份)
    - Precision:对于数字:小数位数
    - Replace value ‘Fieldname’ or ‘Rename to’:下拉框选择 Y(是)和 N (否)将指定的“字段名称”替换为“改名为”字段
    :下拉框选择 Y(是),“改名为”必须是输入流中的字段

  • 27
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值