Build 5.4.0.356 (applies to 6.0 also)
According to the documentation: "There is no accumulator with regard to the execution results either; if you are in-streaming, the results will show the last iteration only."
Contrary to the documentation and the 4.x behavior, a simple in 5.4 (and 6.x) BizDoc that instreams a file, applies a functoid, and maps an element - outputs the results for every iteration. For example, streaming in 3 elements results in the following output:
<Document>
<newTx>
<set>55</set>
<test>1001</test>
</newTx>
<newTx>
<set>56</set>
<test>1002</test>
</newTx>
<newTx>
<set>57</set>
<test>1003</test>
</newTx>
</Document>
The same BizDoc tested in 4.3.3 (with path references reverted to 4.x notation) results in the following, which is consistent with the documentation:
<Document>
<newTx>
<set>57</set>
<test>1003</test>
</newTx>
</Document>
For large files, this may result in a very large output that might not be desired, and may cause memory issues. However, if this is desired (to allow all results to be output) then we should do the following:
- ensure that we can return limited or no output with xa:response, or using xa:visible="prune", or other specification
- ensure that only the intended response elements take up resources, and that the rest of the Bizdoc memory is cleared upon each iteration
- update the documentation
I recommend that we support this behavior, since it allows more flexible design alternatives for output, as long as the memory is appropriately managed.
See attached BizDocs.