plantUML:泳道和重叠的连接

时间:2018-06-25 09:22:33

标签: plantuml

我正在使用plantUML泳道来可视化内部流程,但是不幸的是,当我想显示已执行和分离的流程时遇到重叠的线条。

我正在使用这个:     @startuml

title something

|#dee4e8|p1|
|#c4c9cd|p2|
|#daf0fe|Backend|

|Backend|
start
    :something;
    if (open) then (yes)
        :generate open data;
        split
            #3f3:Mail to p1\nMAIL ID: **3010**|
            |p1|
            :Receive Mail **3010**;
            detach
        split again
            |Backend|
            #3f3:Mail to p2\nMAIL ID: **3006**|
            |p2|
            :Receive Mail **3006**;
            detach
        end split
    endif
    |Backend|
    #HotPink:something else>

stop

@enduml

并获得: enter image description here

我想与接收邮件活动建立不重叠的连接,如果我在发送第二封邮件之前添加一个空活动,我会更像这样:

enter image description here

也可以按顺序执行此操作,但是我不知道如何在不将if语句变为“ if”的情况下,将接收邮件活动分离并相互连接“邮件到p1 / p2”。

1 个答案:

答案 0 :(得分:1)

您可以使用与if的“ else”部分相同的技巧,使其出现在其他步骤的下方。

请注意,您实际上并没有使用正确的else语义(这会将else分支定位在一边),但是您的“ something else”实际上是endif之后的延续,只是电子邮件操作中没有链接到分队。

您可以使用相同的技巧使p2出现在p1下方。即不是将p2作为拆分的一部分,而是在结束拆分后将其移动。这将使其显示在p1部分的下方,但是由于分离,p1将没有连接器。

@startuml

title something

|#dee4e8|p1|
|#c4c9cd|p2|
|#daf0fe|Backend|

|Backend|
start
    :something;
    if (open) then (yes)
        :generate open data;
        split
            #3f3:Mail to p1\nMAIL ID: **3010**|
            |p1|
            :Receive Mail **3010**;
            detach
        split again
            |Backend|
            #3f3:Mail to p2\nMAIL ID: **3006**|
        end split
        |p2|
        :Receive Mail **3006**;
        detach
    endif
    |Backend|
    #HotPink:something else>
stop
@enduml

enter image description here