umlsysml

How to pass variables between a nested activity diagram and its calling action in Cameo Systems Modeler?


I want to re-use code abstracted out as activity diagrams in Cameo Systems Modeler. I plan to make them functions which accept input variables and return other variables.

I am noticing that None gets passed out of the sub-diagram to its calling parent. How can I overcome this limitation?

I have already added input and output nodes to the model for the nested activity, and they appear both in the parent view and the nested view. I got a yellow/orange "warning" around the nested activity diagram which provided a clickable menu with a warning triangle symbol and options to automatically add the input(s) and output(s) to the nested activity diagram.

If I want to re-use these activity diagrams, do I have to make sure the input and output variables of the calling parent match what shows in the nested diagram? I believe I have done that and yet I cannot figure out what is wrong.

I was hoping that the variable would be passed up to the calling parent, but it is not getting passed. I have even "debugged" by setting breakpoints and watching what happens in the nested diagram, and the problem is the interface with the caller, not in the nested diagram.


Solution

  • I understand your question as: "How to pass objects from CallBehaviorActions to the called Activity and back?"

    Actually, that should be straight forward. Just define an Activity with ActivityParameterNodes. When you drop such an Activity on the diagram of another Activity, Cameo will create a CallBehaviorAction with matching Pins. That's it.

    Of course, you can also create matching Pins manually.