You are not logged in.
Announcement
Unanswered posts
|
Pages: 1
Hi,
I have a number of patient IDs in an XML file. Since it contains patient notes, there are duplicates when extracting all IDs. For each unique patient I add a new entry in a lookup table that maps the patient's ID to a new meaningless ID. There's probably a few approaches to doing this, and here's mine:
tFileInputXML -> tFlowToIterate -?> tJoin -> (got it from here)
Now I want to do a tJoin for each ID from the XML with the lookup table. Each rejected inner join means the patient ID is not yet in the lookup table so I'll add it downstream. There is probably something I am not yet grasping (I'm new to Talend) but I can't connect the tFlowToIterate to the tJoin.
Thanks for any hint,
Yves

You will need some way to extract the values from your flowToIterate and put them back in a flow. Take a look at the tFixedFlowInput component.
All of the column values from your xml file will be pushed into the global map by your tFlowToIterate-- take a look at the code tab to see exactly what they are.
Offline
Hi,
Your suggestion works but I'm not sure whether I really need to iterate since the result after tFileInputXML seems no different...
My purpose for using tJoin is to filter out duplicate patient IDs which already have an entry in the lookup table. Only for the inner join rejects I add a new entry that maps the ID to a new (meaningless) ID.
tMSSqlInput -[lookup]-> tJoin -[Inner join reject]-> tMSSQLOutput
Strangely, it's as if the lookup happens only once regardless the number of iterations.
Any hints?
Yves

Lookups are loaded once per subjob
Offline
Aah. Good. This probably saved me more than a couple of hours!
Would you agree it is better to remove duplicates using tUniq <i>before</i> doing the tJoins then? Having each tJoin done in a subjob for the sake of incorporating the latest additions to the lookup table would unnecessarily complicate things, no?
Pages: 1