This is the old
Activity Diagram (legacy) syntax, to see the new current version see:
Activity Diagram (new).
You can use
(*)
for the starting point and ending point of
the activity diagram.
In some occasion, you may want to use
(*top)
to force the starting point to be at the top of the diagram.
Use
-->
for arrows.
🎉 Copied!
|
@startuml
(*) --> "First Action"
"First Action" --> (*)
@enduml
|
By default, an arrow starts at the last used activity.
You can put a label on an arrow using brackets
[
and
]
just after the arrow definition.
🎉 Copied!
|
@startuml
(*) --> "First Action"
-->[You can put also labels] "Second Action"
--> (*)
@enduml
|
You can use
->
for horizontal arrows. It is possible to
force arrow's direction using the following syntax:
-down->
(default arrow)
-right->
or ->
-left->
-up->
🎉 Copied!
|
@startuml
(*) -up-> "First Action"
-right-> "Second Action"
--> "Third Action"
-left-> (*)
@enduml
|
You can use
if/then/else
keywords to define branches.
🎉 Copied!
|
@startuml
(*) --> "Initialization"
if "Some Test" then
-->[true] "Some Action"
--> "Another Action"
-right-> (*)
else
->[false] "Something else"
-->[Ending process] (*)
endif
@enduml
|
Unfortunately, you will have to sometimes repeat the same activity in the diagram text:
🎉 Copied!
|
@startuml
(*) --> "check input"
If "input is verbose" then
--> [Yes] "turn on verbosity"
--> "run command"
else
--> "run command"
Endif
-->(*)
@enduml
|
By default, a branch is connected to the last defined activity, but it
is possible to override this and to define a link with the
if
keywords.
It is also possible to nest branches.
🎉 Copied!
|
@startuml
(*) --> if "Some Test" then
-->[true] "action 1"
if "" then
-> "action 3" as a3
else
if "Other test" then
-left-> "action 5"
else
--> "action 6"
endif
endif
else
->[false] "action 2"
endif
a3 --> if "last test" then
--> "action 7"
else
-> "action 8"
endif
@enduml
|
You can use
=== code ===
to display synchronization bars.
🎉 Copied!
|
@startuml
(*) --> ===B1===
--> "Parallel Action 1"
--> ===B2===
===B1=== --> "Parallel Action 2"
--> ===B2===
--> (*)
@enduml
|
When you declare activities, you can span on several lines the
description text. You can also add
\n
in the description.
You can also give a short code to the activity with the
as
keyword.
This code can be used latter in the diagram description.
🎉 Copied!
|
@startuml
(*) -left-> "this <size:20>action</size>
is <b>very</b> <color:red>long2</color>
and defined on several lines
that contains many <i>text</i>" as A1
-up-> "Another action\n on several lines"
A1 --> "Short action <img:sourceforge.jpg>"
@enduml
|
You can add notes on a activity using the commands
note left
,
note right
,
note top
or
note bottom
,
just after the description of the activity you want to note.
If you want to put a note on the starting point, define the note
at the very beginning of the diagram description.
You can also have a note on several lines, using the
endnote
keywords.
🎉 Copied!
|
@startuml
(*) --> "Some action"
note right: This action has to be defined
"Some action" --> (*)
note left
This note is on
several lines
end note
@enduml
|
You can define a partition using the
partition
keyword, and
optionally declare a background color for your partition (Using a html
color code or name)
When you declare activities, they are automatically put in the
last used partition.
You can close the partition definition using a closing bracket
}
.
🎉 Copied!
|
@startuml
partition Conductor {
(*) --> "Climbs on Platform"
--> === S1 ===
--> Bows
}
partition Audience #LightSkyBlue {
=== S1 === --> Applauds
}
partition Conductor {
Bows --> === S2 ===
--> WavesArmes
Applauds --> === S2 ===
}
partition Orchestra #CCCCEE {
WavesArmes --> Introduction
--> "Play music"
}
@enduml
|
You can use the
skinparam
command to change colors and fonts for the drawing.
You can use this command :
You can define specific color and fonts for stereotyped activities.
🎉 Copied!
|
@startuml
skinparam backgroundColor #AAFFFF
skinparam activity {
StartColor red
BarColor SaddleBrown
EndColor Silver
BackgroundColor Peru
BackgroundColor<< Begin >> Olive
BorderColor Peru
FontName Impact
}
(*) --> "Climbs on Platform" << Begin >>
--> === S1 ===
--> Bows
--> === S2 ===
--> WavesArmes
--> (*)
@enduml
|
You can change the shape of activities to octagon using the
skinparam activityShape octagon
command.
🎉 Copied!
|
@startuml
'Default is skinparam activityShape roundBox
skinparam activityShape octagon
(*) --> "First Action"
"First Action" --> (*)
@enduml
|
🎉 Copied!
|
@startuml
title Servlet Container
(*) --> "ClickServlet.handleRequest()"
--> "new Page"
if "Page.onSecurityCheck" then
->[true] "Page.onInit()"
if "isForward?" then
->[no] "Process controls"
if "continue processing?" then
-->[yes] ===RENDERING===
else
-->[no] ===REDIRECT_CHECK===
endif
else
-->[yes] ===RENDERING===
endif
if "is Post?" then
-->[yes] "Page.onPost()"
--> "Page.onRender()" as render
--> ===REDIRECT_CHECK===
else
-->[no] "Page.onGet()"
--> render
endif
else
-->[false] ===REDIRECT_CHECK===
endif
if "Do redirect?" then
->[yes] "redirect request"
--> ==BEFORE_DESTROY===
else
if "Do Forward?" then
-left->[yes] "Forward request"
--> ==BEFORE_DESTROY===
else
-right->[no] "Render page template"
--> ==BEFORE_DESTROY===
endif
endif
--> "Page.onDestroy()"
-->(*)
@enduml
|