Some clarification from WRC: "The "RuleActionUserData" is a value set in the rule when or otherwise clause and can be overwritten at each iteration of the <foreach>. The <Send> action is not executed immediately at each iteration, but a list of <Send> action is generated while evaluating the <When> condition and will be execuated all at once after the evaluation. That's why the last value set in the RuleActionUserData was sent to the same DTL twice in this case."
In the end, we were able to get this work by instead passing a list of the segment IDs, and then modifying the list within the transform.
.png)
Here, each iteration of the RGS segment appends the IDRGS to the comma delimited list, and then in the transform, we grab the first piece, and then if it is not the last item on the list, we modify the list (so the next Send action will get the next item):
.png)
This resulted in the previously expected behavior of one message with each RGS segment.
Is this a known issue or bug? I'm running into the exact same problem on IRIS for Health (IRIS for UNIX (Red Hat Enterprise Linux 8 for x86-64) 2024.1.3 (Build 456U) Thu Jan 9 2025 12:20:51 EST [Health:5.1.0-3.m4])
Here's our rule, and it does the same thing (Trace = 1, Trace =2, then calls the transform).png)
The far-future state we'd like to achieve is more of a master source control state with Dev>Test>Prod environments where changes we make in the development environment would be promoted to Test for testing and subsequently to production, but right now the differences between our dev and prod Interop Productions are such that we need to completely rethink them before we can possibly address the idea of whether some sort of environment variables can be established/used to customize production elements (such as service/operation names, ports, etc.)