I’m using the “invoke workflow” activity and I think that the “in” type variable do not work correctly
If I use an input string, set the value inside the invoke and then ask for the value outside, the variable is empty. This is normal, since the variable was input.
However, when I do the same thing with a dictionary, I can modify its value inside workflow and the changes are kept outside of the invoke
I’m not sure if I’ve understood your query correctly, but if you mark an argument an In/Out, then the it will assume the value that is present in the Parent calling it, before changing the value and sending it back to the parent.
If the argument is marked as In, it will only assume the value present in the Parent, but it won’t send anything back to the parent.
If the argument is marked as Out, it will not assume any value, but will send whatever value it holds back to the parent.
If you want your dictionary to retain the value it receives from the Parent, then you have to mark it as In.
That is usually how we treat the Config Dictionary in ReFramework.
@CTCJ This is basically because the Dictionary is being passed as a Reference and not as a value. So whenever a Modification is being done to it, it is also reflected in the original dictionary.
Below post also discusses about the same problem faced :