The basic usage of BPMN Boundary event, just sends a string named as ErrorCode. For some cases it might not be enough. We just had an interesting discussion in activiti forum about what should be proper definition according to the specification.
Here is the summary of my latest conclusion:
a clearer and more direct diagram is Figure 10.69 in section 10.4. It is clearly mentioned that “intermediate catch event” is inherited from “Catch Event” which is associated with “DataOutputAccociation”. On the other hand, “Intermediate Throw Event” is inherited from “ThrowEvent” which is associated with “DataInputAssociation”.
It could also be seen in xsd. in “Table 10.113 – IntermediateCatchEvent XML schema” is inherited from “tCatchEvent” which is explained in “table 10.104 – Catch Event XML Schema”. And there association with “DataOuput” and “DataOutputAssociation” is clear. With the same logic “dataInput” and “dataInputAssociation” is stated for “intermediate Throw Event”.
So the the catching part should be something like this:
<intermediateCatchEvent id=”myIntermediateCatchEvent” >
and throwing part can be something like:
<intermediateCatchEvent id=”catchSignalEvent” name=”On Alert”>
<!– signal event definition –>
of course, with whistles and bells defined in activiti guide