2016-04-06 14 views
0

Bir alanın değerini almaya çalışıyorum ama dinamik olarak inşa edilecek alanın ismine ihtiyacım var.Pentaho/Kettle Javascript: Dinamik olarak bir alanın çağrılması

Geçtiğimiz yıl insanların gün sayısı olarak adlandırılan sütunlarda doğduğumu düşünün. DAY_1, DAY_2, DAY_3 ve benzeri sütunlarınız var. "_ GÜN" + i Yani

var sütun_ismi =: Ve değerler 5, 12, 33 ... Tüm bu değerler üzerinde bir döngü yapmak istiyorum ve bunun için dinamycally alan adını inşa daha sonra, döngüleri tek tek artırabilirim.

Sorun şu ki javascript DAY_i'yi geçerli bir giriş alanı olarak tanımıyor, bu yüzden alanın değerini alamıyorum, Pentaho onu bir dize olarak ele alır.

cevap

1

Javascript adımında row dizi değişkeni var. Sen getInputRowMeta().indexOfValue("DAY_" + i) kullanarak sütunun bir dizin için arama ve sonra geçerli satırda alanın değerini almak için o indeksi kullanabilirsiniz:

var column_name = "DAY_" + i; 
var column_index = getInputRowMeta().indexOfValue(column_name); 
var column_value = row[column_index]; 

column_value bazı Java türünde bir nesne için referans olacağını unutmayınız (örneğin java .lang.String), javascript Dize yöntemleri bu değerde çalışmaz. Değeri bir javascript türüne dönüştürmeniz veya java yöntemlerini kullanmanız gerekir.

+0

Teşekkürler, işe yaradı! –

İlgili konular