plantUML:泳道和重叠连接器
plantUML: swimlanes and overlapping connectors
我正在使用 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
并得到:
我希望与接收邮件 activity 建立非重叠连接,如果我在发送第二封邮件之前添加一个空的 activity,我看起来会更像:
也可以按顺序执行此操作,但我不知道如何分离接收邮件活动并将 "Mail to p1 / p2" 彼此连接而不使其成为 if 语句。
您可以使用与使 if 的“else”部分出现在其他步骤下方相同的技巧。
请注意,您实际上并没有使用正确的 else 语义(这会将 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
我正在使用 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
并得到:
我希望与接收邮件 activity 建立非重叠连接,如果我在发送第二封邮件之前添加一个空的 activity,我看起来会更像:
也可以按顺序执行此操作,但我不知道如何分离接收邮件活动并将 "Mail to p1 / p2" 彼此连接而不使其成为 if 语句。
您可以使用与使 if 的“else”部分出现在其他步骤下方相同的技巧。
请注意,您实际上并没有使用正确的 else 语义(这会将 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