2013-07-04 14 views

回答

3

我不是一個Java腳本對水壺的狂熱愛好者,但我不知道任何其他標準步驟是否符合您的願望。

您可以在您的流中添加修改後的Java腳本步驟,並編寫一個簡單的代碼來映​​射字段列(列)的值。要做到這一點,假設您有AB這兩個字段,其中有兩個可能的值S,而對於B則爲大。要映射它們,你應該插入下面的JavaScript代碼:

// list of fields you wish to map 
var fieldsToMap = ["A", "B"]; 
var tmpField; 
var fieldIndex; 

// for each field to map... 
for (var i=0; i < fieldsToMap.length; i++) { 
    //get the index of the field once you only have it's name 
    fieldIndex = getInputRowMeta().indexOfValue(fieldsToMap[i]); 
    //get the field 
    tmpField = row.getValue(fieldIndex); 
    //don't forget to trim as Kettle usually pads strings 
    switch (trim(tmpField)) { 
     case "S": 
      tmpField.setValue("Small"); 
      break; 
     case "B": 
      tmpField.setValue("Big"); 
      break; 
    } 
} 

不要忘了在Java腳本一步檢查Compatibility mode?,否則你會與你不允許改變,新標準有一個JavaScript錯誤一次(請參閱如何修改數值(關閉兼容性) at http://wiki.pentaho.com/display/EAI/Modified+Java+Script+Value

+0

謝謝,這將有助於 –