【问题标题】:plantUML: swimlanes and overlapping connectorsplantUML:泳道和重叠连接器
【发布时间】:2018-12-03 19:55:18
【问题描述】:

我正在使用 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

并得到:

我希望与接收邮件活动建立非重叠连接,如果我在发送第二封邮件之前添加一个空活动,我看起来更像:

也可以按顺序执行此操作,但我不知道如何分离接收邮件活动并将“邮件到 p1 / p2”相互连接而不使其成为 if 语句。

【问题讨论】:

    标签: plantuml


    【解决方案1】:

    您可以使用与使 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
    

    【讨论】:

      猜你喜欢
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多