zoukankan      html  css  js  c++  java
  • kettle 6.1 通过JS脚本与SwitchCase结合实现目标步骤选择

    场景:

      判断抽取的数据在目标库中是否已经存在(同一个病人是否已经存在治疗方案号):
      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进行目标步骤选择

  • 相关阅读:
    一些图形API函数收录
    VC6.0常见编译错误及解决方法
    Google Test Primer(入门)(六) 结束部分
    转帖:C++程序内存泄露检测
    Google Test Primer(四)——简单测试
    Android Snippet
    DCAApp 和 DXPApp 类的探索
    WEB(Javascript)远程调用方案清单
    做一个treeview dropdownlist 最近会放上来
    DotLucene:37行代码全文搜索
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/6273804.html
Copyright © 2011-2022 走看看