@startuml sprite $triangle { 0000000F0000000 000000F0F000000 00000F000F00000 0000F00000F0000 000F0000000F000 00F000000000F00 0F00000000000F0 FFFFFFFFFFFFFFF 000000000000000 000000000000000 } <style> activityDiagram { .action { RoundCorner 20 } } </style> start floating note this is most close representation i could create at the moment end note :action 1; fork if (first try?) then (yes) :action 2; else #PaleGreen:(s) detach #PaleGreen:(s) note left socket was added for later use at exception handler, see below end note end if group **act** ComplexActivity <<action>> { floating note --//<<localPrecondition>>//-- some pre condition ---- =input pins input pins are optional //Lavender// coloured object nodes are type of //InputPin//, should be located at top border of an activity =output pins block output pins are optional //SkyBlue// coloured object nodes are type of //OutputPin//, should be located at bottom border of an activity =exception pins exception pins are optional //Pink// coloured object nodes are type of //ExceptionPin//, should be located at bottom border of an activity end note split #Lavender:input_pin_1 :; <<task>> note right declaration of name only end note split again #Lavender:input_pin_2 : str; <<task>> note right type and name declaration end note split again #Lavender:int; <<task>> note right declaration of type only end note end split :"some text"; :x : str; <<task>> note left input constant is saved at local object end note :x += " some additional text"; split : state diagram {{ [*] --> State1 State1 --> [*] State1 : this is a string State1 : this is another string State1 -> State2 State2 --> [*] }} ; :action 3; note left regular flow end note split #SkyBlue:float; <<task>> note right declaration of type only end note split again #SkyBlue:x :; <<task>> note right type is already declared above end note split again #pink:Exception5 <$triangle>; <<task>> note right every action may expose own exceptions end note detach end split split again #pink:Exception1 <$triangle>; <<task>> note left exception may be left without handling, it means that it's out of context of a diagram end note detach split again #Pink:Exception2 <$triangle>; <<task>> note left any further flow which goes after exception should be placed under the complex activity, at the level of //action 4// end note :emergency action; #PaleGreen:(s) detach split again #Pink:Exception3 <$triangle>; <<task>> note left exception may end fork process if needed end note :fork pre kill action; end split again #Pink:Exception4 <$triangle>; <<task>> note left exception may stop execution in general end note :pre abort action; stop end split } :action 4; end fork note left forks were added just for example end note :action 5; stop @enduml
Decode URL
Submit
amiga
aws-orange
black-knight
bluegray
blueprint
cerulean-outline
cerulean
crt-amber
crt-green
cyborg-outline
cyborg
hacker
lightgray
mars
materia-outline
materia
metal
mimeograph
minty
plain
reddress-darkblue
reddress-darkgreen
reddress-darkorange
reddress-darkred
reddress-lightblue
reddress-lightgreen
reddress-lightorange
reddress-lightred
sandstone
silver
sketchy-outline
sketchy
spacelab
spacelab-white
superhero-outline
superhero
toy
united
vibrant
🎉 Discover the future PlantUML Web Editor! 🚀
PNG
SVG
ASCII Art