kettle 6.1 經過JS腳本與SwitchCase結合實現目標步驟選擇

場景:ide

  判斷抽取的數據在目標庫中是否已經存在(同一個病人是否已經存在治療方案號):
  1.若不存在,則GROUPROWNO=1,並Insert into 目標庫   ( 判斷外關聯字段是否爲空 )
  2.若已存在(同一個病人是否已經存在治療方案號) ,則判斷更新時間是否相同
    2.1若抽取數據的建立時間、修改時間與目標庫建立時間、修改時間相同,說明數據徹底相同
        則執行更新操做或不執行任何操做
    2.2若抽取數據的建立時間、修改時間與目標庫建立時間、修改時間不相同,說明是同一個方案號的不一樣版本的數據
        則將目標GROUPROWNO+1,並將ORIGINALTREATMENTPLANNO設置爲TREATMENTPLAN_NO_ODS,並Insert into 目標庫spa

 

     1、總圖code

 2、外關聯,用於判斷源端數據是否在目標端存在blog

3、經過 js 判斷空值,並按條件進行賦值ip

//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
 }
判斷外關聯表的字段是否爲空

 

 

4、根據 ISORNOTNULL的值選擇目標步驟:it

5、判斷更新時間是否相同event

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;
 }
判斷時間是否相同

 

6、根據ISORNOTEQUAL值,經過SwitchCase進行目標步驟選擇class

相關文章
相關標籤/搜索