I need each ‘Voter’ to be it’s own record. To do this I have set my input data path to the below and get the desired results with each voter as it’s own record. My issue is I need the data that sits below my voter data (Event Identifier and Messages) to be displayed in every record. This data will be the same for every record and is only present once at the end of my xml file. The way i have it set up now the Event Identifier and Messages data isn’t even being displayed in the xml viewer. Is there a way to map these values and have it repeat for every record?
@bonsuth. I happen to have a very similar problem to yours. I have a data source that is structured similarly to yours and I also have no control over the data creation.
Hey @joshf, I ended up adding a step into my workflow process, when i run my xml through it adds the bottom level data (EventIdentifier and Messages) into each element so it was mapped at each repeat meaning it is always present in my datamodel for each record. This updated xml is what is than automatically used for the rest of the process.
Thank you, @bonsuth. Was that workflow step that you added an “Open XSLT” step?
I was able to create an Open XSLT step that works for my application on a small sample of my production data, but when I throw the production file at it, the output is untouched. It seems to be failing silently. Probably due to the size of the xml file I’m trying to process (About 700mb)
Due to its internal configuration and the library used to read XML file, saif XML file can reach up to 10 times their size in Worklow memory which, as a reminder, is a 32 bit application, limited in memory to 1.8 gb.
Should you be able to get another type of input file, like a JSON file or anything else, that would be better.
You could also try to extract the XML needed be repeated from the XML file and pass its content as a runtime paramter to the Datamapper, allowing its access to all records.
You could even run a different Datamapper only to extract the XML needed to all record, store it in a variable in Workflow and pass it as a runtime parameter to the Datamapper needing it.