A signal is an event that you create that throws information within a process and which can be received anywhere within the process. Catching a signal event is equivalent to catching a message or alarm event except that only the name of the signal needs to be specified. This means it could be caught inline (like a wait), as an alternative in a pick (like onAlarm), as a handler (like onAlarm), or using a boundary event.
This is a Process Developer extension activity.
Unlike a message (which a signal resembles), a signal can be received by more than one activity. It also differs in that a message must know the activity to which the message is directed. In contrast, a catch signal is broadcast and the signal decides which of the signals being broadcast it should process.
To add signals to your process, drag a Signal icon to the Process Editor canvas. Signal resides in the Throw and Catch event palettes.
After dragging a throw signal to the canvas, you must assign it a
Signal Name
. Do not confuse this with an
Activity Name
. When you define the properties of the catch signal, you will identify the signal it catches by this name. It needs this name because a process can have more than one signal.
When a signal is thrown, all signal handlers that are active and waiting a signal of that name execute and they do this before the end of the current transaction.
For information on defining a signal's properties, see
Defining an Activity and Its Properties
.
If you are using an existing workspace and have customized your palette, signal events may not show in it. If you run into this problem, copy the signal events entries over into the workspace or remove the workspace's customized palette. This does not occur when you create a new workspace signal events show in the palette.