场景:

  判断抽取的数据在目标库中是否已经存在(同一个病人是否已经存在治疗方案号):
  1.若不存在,则GROUPROWNO=1,并Insert into 目标库   ( 判断外关联字段是否为空 )
  2.若已存在(同一个病人是否已经存在治疗方案号) ,则判断更新时间是否相同
    2.1若抽取数据的创建时间、修改时间与目标库创建时间、修改时间相同,说明数据完全相同
        则执行更新操作或不执行任何操作
    2.2若抽取数据的创建时间、修改时间与目标库创建时间、修改时间不相同,说明是同一个方案号的不同版本的数据
        则将目标GROUPROWNO+1,并将ORIGINALTREATMENTPLANNO设置为TREATMENTPLAN_NO_ODS,并Insert into 目标库

一、总图

二、外关联,用于判断源端数据是否在目标端存在

三、通过 js 判断空值,并按条件进行赋值

//Script here

if (!TREATMENTPLAN_NO_ODS && typeof(TREATMENTPLAN_NO_ODS)!="undefined" && TREATMENTPLAN_NO_ODS!=0 && !INSTITUTIONCODE_ODS && typeof(INSTITUTIONCODE_ODS)!="undefined" && INSTITUTIONCODE_ODS!=0 && !SOCIALSECURITYNO_ODS && typeof(SOCIALSECURITYNO_ODS)!="undefined" && SOCIALSECURITYNO_ODS!=0 )
{
var ISORNOTNULL = 't';
var GROUPROWNO=GROUPROWNO+1
}
else
{
var ISORNOTNULL = 'f';
var GROUPROWNO=GROUPROWNO
}

判断外关联表的字段是否为空

四、根据 ISORNOTNULL的值选择目标步骤:

五、判断更新时间是否相同

if (Number(CREATEDTIME_NUM)==Number(CREATEDTIME_NUM_ODS) )
{
var ISORNOTEQUQL = 't';
}
else
{
var ISORNOTEQUQL = 'f';
var GROUPROWNO=GROUPROWNO_ODS+1;
var TREATMENTPLAN_NO_ODS=TREATMENTPLAN_NO_ODS
var ORIGINALTREATMENTPLANNO=TREATMENTPLAN_NO_ODS;
}

判断时间是否相同

六、根据ISORNOTEQUAL值,通过SwitchCase进行目标步骤选择

kettle 6.1 通过JS脚本与SwitchCase结合实现目标步骤选择的更多相关文章

  1. 引用第三方高德地图接口---使用js脚本进行开发地图定位的步骤

    ①在高德地图开发平台注册一个账号,获取key ②添加新的key ③引入map插件 ④复制过来map的脚本代码和编写搜索框 <script type="text/javascript&q ...

  2. 关于Cocos Creator用js脚本代码播放骨骼动画的步骤和注意事项

    步骤: 1.用cc.find()方法找到相应的骨骼动画节点,并把这个对象赋值给一个var出来的新对象. 具体代码:var spineboy_anim = cc.find("UI_Root/a ...

  3. 【转】第6篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:自动注册JS脚本+自动反射方法分析

    作者: 牛A与牛C之间 时间: 2013-11-21 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第6篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  4. kettle学习笔记(十)——数据检验、统计、分区与JS脚本

    一.概述 数据剖析和数据检验: 用于数据的检查.清洗 . 统计步骤: 提供数据采样和统计的功能 分区: 根据数据里某个字段的值,拆分成多个数据块.输出到不同的库表和文件中. 脚本: Javascrip ...

  5. Firebug中调试中的js脚本中中文内容显示为乱码

    Firebug中调试中的js脚本中中文内容显示为乱码 设置 页面 UFT-8 编码没用, 解决方法:点击 "Firebug"工具栏 中的"选项"---" ...

  6. 通过easyui tab添加的子页面JS脚本必须放在body才生效

    通过easyui tab添加的子页面JS脚本必须放在body才生效 可通过Chrome查看元素时,head标签是否含有你自己写的JS代码

  7. AngularJs中,如何在render完成之后,执行Js脚本

    AngularJs是Google开源的前端JS框架.使用AngularJs, 我们能够容易地.健壮的开发出类似于Gmail一样的单页Web应用.AngularJs这个新兴的MVC前端框架,具有以下特点 ...

  8. JS脚本

    js脚本是嵌在网页里打出的一块区域,一般写在最下端 script   脚本 //      这是单行注释的一种语法 /**/  这是多行注释的一种语法 存储内容的东西叫变量 数据类型的有: 1  整型 ...

  9. C#中在AxWebBrowser控件注入JS脚本的方法

    /// <summary> /// 窗体加载 /// </summary> private void JS_Load(object sender, EventArgs e) { ...

随机推荐

  1. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-3项目架构说明

    本文目录1. 摘要2. 框架介绍 3. 权限管理之多一点说明4. 总结 1.  摘要 NCMVC角色权限管理框架是由最近练习Net Core时抽时间整理的系统,后续能不能发展成一个cms还要看朋友们是 ...

  2. List接口相对于Collection接口的特有方法

    [添加功能] 1 void add(int index,Object element); // 在指定位置添加一个元素. [获取功能] 1 Object get(int index); // 获取指定 ...

  3. spring ,springmvc,mybatis 最基本的整合,没有多余的jar包和依赖 2018.9.29日

    最基本的ssm框架整合 本案例采用2018商业版intellij  idea  编辑器    maven项目管理工具  tomcat8.5 接着上一篇使用springmvc最基本配置开始 https: ...

  4. 04. Pandas 3| 数值计算与统计、合并连接去重分组透视表文件读取

    1.数值计算和统计基础 常用数学.统计方法 数值计算和统计基础 基本参数:axis.skipna df.mean(axis=1,skipna=False)  -->> axis=1是按行来 ...

  5. Hive的配置| 架构原理

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能. 本质是:将HQL转化成MapReduce程序 1)Hive处理的数据存储在HDFS 2)Hi ...

  6. springboot配置log4j

    maven 配置jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...

  7. TF之BN:BN算法对多层中的每层神经网络加快学习QuadraticFunction_InputData+Histogram+BN的Error_curve

    # 23 Batch Normalization import numpy as np import tensorflow as tf import matplotlib.pyplot as plt ...

  8. Dev-C++安装第三方库boost

    Dev-C++安装第三方库boost  转 https://www.jianshu.com/p/111571e4d6f5?utm_source=oschina-app 之前鉴于codeblocks界面 ...

  9. Python之路【第八篇】:面向对象的程序设计

    阅读目录 一 面向对象的程序设计的由来二 什么是面向对象的程序设计及为什么要有它三 类和对象3.1 什么是对象,什么是类3.2 类相关知识3.3 对象相关知识3.4 对象之间的交互3.5 类名称空间与 ...

  10. 大数据技术 - MapReduce 作业的运行机制

    前几章我们介绍了 Hadoop 的 MapReduce 和 HDFS 两大组件,内容比较基础,看完后可以写简单的 MR 应用程序,也能够用命令行或 Java API 操作 HDFS.但要对 Hadoo ...