I’m new to WebMethods so please forgive if I ask questions with obvious answers…
I have been developing before using C, C++ and more recently Java and C#. The flow language presents something new: the pipeline.
1st thing I discovered is that the pipeline will just accumulate all the existing variables unless there are “dropped”. Fine, this shows what variables exist and actually it forces you to clean them as soon as you don’t need them, otherwise it’s a mess - let’s say this is good.
2nd thing is much more “surprising”: the pipeline is passed from services to services… What this mean is that when service A calls service B, A not only passes B’s input variables to B but it also passes all the variables in the pipeline.
Concrete example: B takes in input x and returns y
1. Pipeline before A calls B: a = 3, b = 5
2. A calls B and set x to 7
3. B has in the pipeline: a = 3, b = 5, x = 7
So the normal processing could be:
4. Some flow stuff in B
5. Pipeline is cleaned of the new variables created in B
6. B sets y to 8 and returns to A
7. Pipeline in A: a = 3, b = 5, x = 7, y = 8
A few problems occur then:
i) What happens if B also deletes or overwrites a variable with the same name as the one in the pipeline of A before it was called (b for instance)? Then A will not find the expected value when B will return!!!
ii) If B doesn’t clean up its pipeline then some unexpected variables will be returned to A
So that’s for setting the context, no my questions:
1. How can we solve i) and ii)?
2. Why is the pipeline passed from services to services??? Shouldn’t only inputs be passed?
Thanks for the help