0
我對Talend很新,想從給定文件讀取表達式,然後在tMap函數中執行它。Talend開放數據集成:從excel文件讀取表達式,然後在tMap中執行它們
的計算公式是存儲在一個單獨的Excel列如下:
row7.value1 + row7.value2 == 0 ? 0 : row7.value1/(row7.value1 + row7.value2)
我完成閱讀它作爲一個字符串全球地圖:
((String) globalMap.get("row6.column_that_contains_expr"))
。
但我無法在tMap中執行表達式以獲得結果值。
我的工作是這樣的:
tFileInputExcel = ROW6 => tFlowToIerate => tPostgresqlInput = ROW7 => TMAP => tFileOutpuDelimited
你能告訴我如何從文件執行的表達和獲取導致雙重?
問候
西蒙
聽起來不錯!我會稍後再檢查一下,並讓你保持警惕。 – Simon
我在tJavaRow中嘗試了以下方法:ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName(「JavaScript」); String infix =「row7.value1 + row7.value2 == 0?0:row7.value1 /(row7.value1 + row7.value2)」; context.test = engine.eval(infix);這導致錯誤:javax.script.ScriptException:ReferenceError:「row7」未定義在任何想法? –
Simon
是的,當你點擊Talend時,你實際上是Meta編程。你在說要生成代碼。您在中綴中定義的是一些Java公式,您將傳遞給JavaScript進行解釋。您可以隨時在Talend中實施您自己的類和方法,以便能夠解釋您從文件中獲得的公式。 – user853710