Summary 12.7
here helps to signify the fact that the workflow process receives the request from
an external process. Signals can also be used to depict other complex synchronous
and asynchronous messaging scenarios.
After the leave request is received by the workflow engine, it is forwarded to the
employee's supervisor (via email, for instance). At this point in time, the work-
flow process is in a holding pattern as it waits on a couple of potential outcomes.
This holding pattern is depicted using a fork element. Here, one of two things can
happen.
• Ideally, the supervisor will receive the request (again via a signal action), pro-
cess it. and send a response back to the workflow engine.
• However, if the supervisor hasn't responded within 24 hours, the process
should terminate. This 24-hour watch period is depicted using a time signal
(i.e., the "bow-tie" icon shown in Figure 12.5).
In cither case, the process comes together again in a join clement. From here, an
email response message (favorable or otherwise) is forwarded back to the initiat-
ing employee, and the process terminates as per usual.
Another element of the activity diagram that we have not yet considered is the
diamond-shaped decision node shown in Figure 12.5. This node looks just like the
merge node described in Section 8.6, UML Tutorial: Activity Diagrams. However,
in this case, there is one input and multiple outputs as opposed to multiple inputs
and a single output. Each of the outputs of
a
decision node is marked with a spe-
cial guard text (e.g.. [Approved] or [Rejected]) that describes the condition(s) in
which that particular output path is selected. As you might expect, decision nodes
are veiy good for depicting an IF/ELSE or CASE statement in a flow.
In many ways, even the advanced elements described in this section barely
scratch the surface with regards to the types of things you can model using activ-
ity diagrams. To learn more about activity diagrams, see Martin Fowler's UML
Distilled (Addison-Wesley. 2004).
12.7 Summary
In this chapter, you applied the object-oriented skills that you have gained
throughout the course of this book to learn how to work with the object-oriented
iXML library. The design techniques used in this chapter have been consistent
327