Hi @jbudd, thanks for your answer.
My answers for your questions:
- Do you have control over the structure of your input messages?
No, it is the HORRIBLE output of the ArcSight ESM API, and what I did with NodeRED is translate that output from this:
To this:
2a. Do you get 13 completely seperate messages, each containing a single property to add to your output array?
Yes
2b. Does every one of these messages include the property maxColumns = 13?
No, but I can add it if it is needed, modifying the function that I did
2c. Or are the 13 properties to add to your array contained in the "rows" array?
No
- How often do this group of (perhaps) 13 messages arrive? What interval is there between two groups of messages? Can these timings be exploited to get the join node to timeout?
I'm receiving 13 messages or a multiple of 13 messages, one after the other. The idea is that in this case are 13, but in other runnings of the workflow can be a different amount, and I want to use the join node to join that fixed number of messages every time, obtaining that number from maxColumns msg that I got before I used a function to transform the output of the API in something better. There is no interval between two groups of messages, is one message after the other when the workflow run, so I cannot exploit these timings to get the join.
- Why is @Steve-Mcl's suggestion of sending msg.complete after sending maxColumns messages not right for you?
Maybe can be an option, but in that case I need to modify my function that is transforming the output, and what I want to know is if there is a simple way to use the value of maxColumns in the "parts" of a join node, without modifying my function, like for example put the value of maxColumns in a flow variable when I get it, and use it in the "parts" of a join node in manual mode.
That was my original question, if it is possible to do that
I was not asking how to do it if I cannot use the variable in "parts" of a join node, I don't want to bother anyone, I'm a beginner with NodeRED and Javascript in general.
Really thanks for your answer.
Regards,
Alejandro