Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

OnComponentOk and order with tMap

I have the following flow:

1 Component that needs to be executed to extract from MYSQL a certain timestamp
3 MYSQL input that needs to use that timestamp
1 tMap which needs to get the 3 mysql input
However, I am not allowed to connect the 3 mysql into the single tMap because they are depending on the first component (through OnComponentOk) but with different order. How do I orchestrate this sort of situations?
Regards
Edmondo
Labels (2)
4 Replies
Anonymous
Not applicable
Author

If you show us a screenshot of what you have already, it might help a bit more. But I suspect that you need to use the tHashInput/Output components.
First of all you need to enable them if they are not already. Look here for this ( https://www.safaribooksonline.com/library/view/talend-open-studio/9781782167266/ch01s03.html).
Consider these components as in-memory storage. You can save 3 separate datasets or append your data from your 3 db inputs into one dataset. Here is a Talend tutorial showing how these can be used ( https://help.talend.com/pages/viewpage.action?pageId=8123271#technical-thashinput-scenario_speed).
You could make use of these components by dumping your data from your db into tHashOutput components. Then in a separate subjob connect the corresponding tHashInput components to your tmap (which should now be allowed). The reason you cannot connect them as you want to is that you cannot split a flow and then merge it again in the same subjob.
vapukov
Master II
Master II

as alternative
tMySQLInput -> tFlowToIterate - save timestamp to Variable -> tJavaFlex as dummy ->
OnComponentOk
as many Input as You want which use this variable in SELECT
but agree - description not clean, would be good to have picture - what really expected
Anonymous
Not applicable
Author

I gues sthe answer was given on Stackoverflow. If I use onSubjobOk  between the subjob1 and the subjob2 where all the mysql selects are placed, everything works correctly
vapukov
Master II
Master II

I gues sthe answer was given on Stackoverflow. If I use onSubjobOk  between the subjob1 and the subjob2 where all the mysql selects are placed, everything works correctly

not sure -what are You mean
but as described above - it not 100% correct, just connect it not true
if You are need as You describe in question use result of first input component in pother subjobs, You must save value somewhere
it could be global variable as example