A Signal is for general communication within and across Process Levels, across Pools, and between Business Process Diagrams. A Signal is similar to a signal flare that shot into the sky for anyone who might be interested to notice and then react. Thus, there is a source of the Signal, but no specific intended target. This is different than a API Message, which has a specific Source and a specific Target.
A Signal has a
- SignalType
- FromRef
- Message
The SignalTypes known to the API are
public enum SignalType
{
SYSTEM_START_EVENT_ENTER, SYSTEM_START_EVENT_EXIT, SYSTEM_START_TRIGGER,
SYSTEM_EVENT_ENTER, SYSTEM_EVENT_EXIT,
SYSTEM_END_EVENT_ENTER, SYSTEM_END_EVENT_EXIT,
SYSTEM_GATEWAY_ENTER, SYSTEM_GATEWAY_EXIT,
SYSTEM_PROCESS_ENTER, SYSTEM_PROCESS_EXIT,
SYSTEM_SUB_PROCESS_ENTER, SYSTEM_SUB_PROCESS_EXIT,
SYSTEM_TASK_ENTER, SYSTEM_TASK_EXIT, SYSTEM_TASK_TRIGGER,
USER_SIGNAL
}
A Signal is one of the few objects that the API provides directly. You would create a and throw a Signal through the API SignalService like this
Signal signal = new Signal(getID(), SignalType.USER_SIGNAL, "Hello"); SignalService sigService = SignalService.locateSignalService(); sigService.throwSignal(signal);
A component registers a API SignalListener with the API SignalService to catch the Signal.
Comments