kettle转换中使用javascript例子整理(2)
7(重) JavaScript -dialog.ktr(需要调用Java代码,有界面)
// This JavaScript asks for a start and ending date with text dialog boxes. // It is a proof of concept if dialogs could be used out of JavaScript within transformations. // This could be a base for discussion if a general input step dialog should be created. // It runs within Spoon, Pan and launched by the "Test script" button within the JavaScript editor. // @author Jens Bleuel // @since 2006-07-11 // to get the "Test script" button at the editor working correctly we need the existing Display / Shell var display; var displayHasToBeDisposed=false; var shell=null; try { display=Packages.org.eclipse.swt.widgets.Display.getCurrent(); shell=display.getActiveShell(); } catch(e) { // if it runs in batch mode (Pan or preview mode) no Display is available, so we have to create one display=new Packages.org.eclipse.swt.widgets.Display(); displayHasToBeDisposed=true; shell=new Packages.org.eclipse.swt.widgets.Shell(display); } // if we run in Pan we need to load the properties: if(!Packages.org.pentaho.di.ui.core.PropsUI.isInitialized()) { Packages.org.pentaho.di.ui.core.PropsUI.init(display,2); //2=TYPE_PROPERTIES_PAN } var dateDefaultFrom=DateFromProposal.getString().substr(0,10);//only the date and not the time var dialogDateFrom=newPackages.org.pentaho.di.ui.core.dialog.EnterTextDialog(shell,"Date from", "Please enter the beginning date", dateDefaultFrom); var dateFromAsString=dialogDateFrom.open(); if(dateFromAsString!=null&& dateFromAsString.length()>0) { var dateDefaultTo=DateToProposal.getString().substr(0,10);//only the date and not the time; var dialogDateTo=newPackages.org.pentaho.di.ui.core.dialog.EnterTextDialog(shell,"Date to", "Please enter the ending date", dateDefaultTo); var dateToAsString=dialogDateTo.open(); if(dateToAsString!=null&& dateToAsString.length()>0) { // here you could check or change formats a.s.o } else { // stop transformation when user cancels throw new Packages.java.lang.RuntimeException("Input canceled by the user."); } } else { // stop transformation when user cancels throw new Packages.java.lang.RuntimeException("Input canceled by the user."); } if(displayHasToBeDisposed) { display.dispose(); } |
文本文件输出
DateFromProposal@DateToProposal@dateFromAsString@dateToAsString 2006/01/01 00:00:00.000@2006/12/31 00:00:00.000@2014/01/02@2014/12/31 |
8 JavaScript - extract date fromfilename.ktr(从文件名中提取日期,字符串处理)
// C:\temp\LIM_kettle\ST18.PROTOKL.TENOPROD_2006*07_21_00_09 // rightstr(16),截取右边16个字符 var dat = DIR.Clone().rightstr(16).str2dat("yyyy*MM_dd_HH_mm"); |
文本文件输出:
DIR@@@dat C:\temp\LIM_kettle\ST18.PROTOKL.TENOPROD_2006*07_21_00_09@@@2006/07/21 00:09:00.000 |
9 JavaScript - Get the filenamefrom a path.ktr(从路径中提取文件名)
var strArray = File.getString().split("/");//数组 var last = strArray[strArray.length-1];//数组中的最后一个即文件名 |
文本文件输出
File@@@@last C:/Test/file.txt@@@@file.txt |
10.JavaScript - Hex to Integer conversion.ktr(16进制->10进制)
java; //不写木发现影响,仅限本例 //16进制->10 var nummerke = Packages.java.lang.Integer.valueOf(Hex.getString(), 16).intValue(); //Alert(nummerke); |
文本文件输出:
Hex;nummerke DEAD; 0057005 |
11 JavaScript - parse Debet-Credit prefix innumbers.ktr(数值中有前缀)
var first = amountField.Clone().substr(0,1).getString(); var amount = amountField.Clone().substr(1).str2num("###.00",".").getNumber(); if (first.equals("D")) { amount = -amount; } |
文本文件输出:
amountField@@@first@@@amount C100.00 @@@C@@@00100.00 D100.00 @@@D@@@-00100.00 |
kettle转换中使用javascript例子整理(2)相关推荐
- kettle转换之多线程
kettle转换之多线程 ETL项目中性能方面的考虑通常是最重要的,特别是所讨论的任务频繁执行,或一些列的任务必须在固定的时间内执行.本文重点介绍利用kettle转换的多线程特性,以优化其性能. ...
- 解决kettle配置文件中的中文乱码
在日常开发中有时候配置文件会出现中文(如config.properties 里有中文),为了避免出现乱码,因而要转成unicode编码. 1.在设置变量的javascript(转换中的JavaScri ...
- kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询
kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询 如果你须要实现非传统的数据库查询操作.为了讨论这样的情景,我们如果你须要读取数据库中的正則表達式,然后检查输入的 ...
- kettle转换JavaScript获取命令行参数
日常开发中由于很多参数是变化的,需要在部署时才能确定.而写在配置文件里又显得很笨重,因而可以运行时实时指定.那么kettle是怎么获取命令行中的参数的呢? kettle可以通过转换里的JavaScri ...
- Kettle(spoon)从转换中提取数据
主要操作就是在被提取数据的转换中的最后一步连上<复制记录到结果>,在需要提取数据的转换步骤上,进行result rows配置: 直接上: 1.新建一个转换test01,并配置基础流程(获取 ...
- 第十一章:WEB浏览器中的javascript
客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...
- Kettle转换作业50个案例代码
Kettle转换作业应用脚本 本文是Kettle转换作业微案例相关的脚本(代码)及注释的说明.本项目旨在技术交流与学习,由于本人能力有限,代码中难免有些错误,欢迎留言.私信反馈给我,希望对你有所帮助. ...
- 在 IE 中调试 JavaScript
简介 虽然越来越多的用户转向使用 FireFox 等非 IE 内核浏览器,但是 Internet Explorer(IE, 6 以及后续版本 ) 仍然有着超过 50% 的市场占有率,大部分产品产品都需 ...
- 在javascript中使用el表达式(jsp中的javascript中支持写el表达式,毋庸置疑,单独的js文件中不支持写el表达式,别钻牛角尖)
哎,够背的,最后4张图怎么调整都很小,看不清楚,所以大家还是看我这篇文章吧在javascript中使用el表达式(图片清晰版,有图有真相),这篇文章的图片可以正常看清楚,跟我这篇文章是一样的内容! 有 ...
最新文章
- Machine Learning——DAY1
- C#委托与事件学习笔记
- API Gateways – An Evaluation of Zuul 2
- Java黑皮书课后题第8章:***8.20(游戏:四子连)两人玩游戏,轮流将有颜色的棋子放在一个六行七列的垂直悬挂网格中。谁先实现一行、一列或者一对角线上有4个相同颜色的棋子。
- oracle 基于备份 duplicate 没有目标连接,RMAN 概述及其体系结构
- kafka生产者开发方式
- HDFS文件和HIVE表的一些操作
- 做一个类似登录的循环
- shell for循环两个变量并列_从Go汇编角度解释for循环的两个疑点
- vCenter 或者 vmwareworkstation 虚拟机 安装vmware tools
- [转帖]成功者的十四项心理定律
- 数学建模 Lingo 基本算法模板
- 读书笔记之《随机漫步的傻瓜》
- 银河麒麟V10(Kylin Linux V10)安装ElasticSearch
- 谷歌浏览器好用的复制粘贴插件_chrome浏览器好用的插件
- Visual FoxPro 6.0常用命令
- 基于asp.net028住院部病人管理系统
- 银行网申计算机技能怎么填,邮政储蓄银行网申填写技巧分享二
- Android APP头像的图标与背景的设置
- Django个人博客开发练手demo笔记