Tags and keywords
A Transition between States in a StateMachine can have an optional 'effect' Behavior:
A target State of the Transition can have an 'entry' Behavior:
In the case where the Transition is triggered by a Signal with attributes, the 'effect' or 'entry' Behavior should have 'in' parameters matching those Signal attributes.
What happens if you have both an 'effect' Behavior and an 'entry' Behavior? What happens if you have neither? What happens when the 'effect' or 'entry' Behavior parameters don't exactly match the Signal attributes? Some cases are explored here.
Note that an 'effect' or 'entry' Behavior must be owned by its Transition or State, so you can't directly use a Behavior owned by the owner of the StateMachine; for such cases use wrapper Activities, which are indicated here related to their wrapped Activities using a custom Stereotype «wraps».
EffectVsEntry of the StateMachine, they are just OpaqueBehaviors that print the value 'v'. But in general 'effect' or 'entry' Behaviors might need to access the owning context.The tool MOSTLY looks after this "wrapping" for you:
But some tool actions "steal ownership" of such Behaviors! The example also shows some "pathological" cases. In Magic Model Analyst® (Cameo Simulation Toolkit®) one can in fact feed some inconsistent arguments into an 'effect' or 'entry' Behavior. The OpaqueBehaviorStringArg with argument s:String accepts the v:Real without complaint! If you instead use an OpaqueBehavior BlockArg with argument b:FAILME - where FAILME is a Block - you at least get a warning like this:
There are also cases where the Signal TrigEffectOrEntry is not consumed at all. There is no Transition with trigger  TrigEffectOrEntry from State HadEffectBlockArg. A warning is correctly issued to the simulation console:
 
    
 
