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