feeds a external trigger into this execution.
Typically a signal causes the execution to proceed, but that doesn't necesserily has to be the case . The {@link ExternalActivity} is responsible for interpreting the signal and acting upon it.
A signal can optionally be given {@link #signal(String) a signal name}, {@link #signal(Map) a map of parameters} or {@link #signal(String,Map) both}.
Since it's an external trigger, this method requires that this execution is waiting for an external trigger. So this method must be called as an external client and can not be called while this execution is executing. In an {@link Activity} for example you're not allowed to call the signal on the execution cause it is executing. But you are allowed to invoke this method on any other execution (at least, if that one is waiting for an external trigger).
Typically a signal will cause the execution to start executing, but that is not a must. What happens with this signal is defined in the {@link ExternalActivity#signal(Execution,String,Map)} of the {@link #getNode() current node}.
@see #signal(String)