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進行目標步驟選擇


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM