Hi,
I am developing ETL-Graphs with the ColverETL Designer and I am quite new to this topic. I hope that I can get some kind of hint to the following issue:
If I use an ExtFilter with a lookup on a LookupTable it runs smoothly when executed from within the CloverETL Designer. But if execute this very same graph with the LGPL-version of the CloverETL Engine the execution fails.
Is this happening on purpose (meaning is it a restriction in the open source version) or am I missing the point? Does anyone had the same issue?
Cheers
Johannes
Hello Johannes,
AspellLookupTable and PersistentLookupTable belong to commercial plug-in, that is embedded in CloverDesigner, but is not available with free CloverETL engine. SimpleLookupTable, DBLookupTable and RangeLookupTable work with CloverDesigner, as well as with free CloverETL engine.
Hello Johannes,
AspellLookupTable and PersistentLookupTable belong to commercial plug-in, that is embedded in CloverDesigner, but is not available with free CloverETL engine. SimpleLookupTable, DBLookupTable and RangeLookupTable work with CloverDesigner, as well as with free CloverETL engine.
“avackova”
Yes. I was aware of the fact that some objects are just working in the commercial engine. I have to admit that my first post was not as thorough as it should have been.
Clearification: I am using a SimpleLookupTable for some values. I would like to reuse these values within an ExtFilter object. So I just used the lookup function in the filter expression. As I said this works fine when running the graph from within the designer but fails when using the open source engine.
Cheers
Johannes
Are the plug-ins loaded, when you run the graph from the command line? (-plugins switch - see Running CloverETL for more information). What is the error message?
Are the plug-ins loaded, when you run the graph from the command line? (-plugins switch - see Running CloverETL for more information). What is the error message?
“avackova”
Yes. All plug-ins are loaded. Including the ExtFilter. Just as a clarification: The whole graph is running just fine if I strip the lookup function from the ExtFilter and use some kind of standard expression instead. So it can’t be the ExtFilter-Object that failes in general.
Can you show your graph? I suppose, that you use the function incorrectly.
Sure. The whole graph is quite long so I am only posting the ExtFilter-Node and the connected edges:
<Node enabled="enabled" guiHeight="0" guiName="EB / VKZ filtern" guiWidth="0" guiX="25" guiY="728" id="EXT_FILTER0" type="EXT_FILTER">
<attr name="filterExpression"><![CDATA[($0.KontoSoll.in.(split(lookup(LookupTable1, "1").AccountRangeList,",")))
OR
($0.KontoHaben.in.(split(lookup(LookupTable1, "1").AccountRangeList,",")))
]]></attr>
</Node>
<Edge fromNode="EXT_FILTER0:0" guiBendpoints="" id="Edge43" inPort="Port 0 (in)" metadata="Metadata3" outPort="Port 0 (accepted)" toNode="REFORMAT0:0"/>
<Edge fromNode="EXT_FILTER0:1" guiBendpoints="" id="Edge99" inPort="Port 0 (in)" metadata="Metadata3" outPort="Port 1 (rejected)" toNode="REFORMAT9:0"/>
This works perfectly when run from within the CloverDesigner but fails when run externaly with the engine. It fails with the following error message:
Node EXT_FILTER0 finished with status: ERROR caused by: null
at org.jetel.graph.runtime.WatchDog.watch(WatchDog.java:322)
at org.jetel.graph.runtime.WatchDog.executePhase(WatchDog.java:451)
at org.jetel.graph.runtime.WatchDog.call(WatchDog.java:179)
at org.jetel.graph.runtime.WatchDog.call(WatchDog.java:62)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
By the way: This call of the lookup-funtion works perfectly (with the Designer and the engine) when used in another component (e.g. Reformat).
I can’t reproduce the issue. Can you send whole graph log?
It seemed to be a version issue or my colleague just messed up this one copy of the engine. Anyways it runs fine on the 2.8.1 LGPL engine. Thank you for your help!