plantUML:泳道和重叠连接器

2024-04-12

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

and get: enter image description here

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

也可以按顺序执行此操作,但我不知道如何分离接收邮件活动并将“邮件到 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

plantUML:泳道和重叠连接器 的相关文章

  • 防止回车键触发按钮

    我有一个搜索输入框 当用户按下 Enter 时不需要执行任何操作 我正在使用 EmberJS 和 Jquery 以及以下代码 目前 它可以禁止触发弹出窗口 但由于某些原因 在 IE9 中 当按下 Enter 键时 切换按钮将成为焦点 在 C
  • 多个类的父类的部分特化

    我想对模板类使用部分专业化 以便该模板类的所有子级都将使用该专业化 让我用一个例子来解释一下 template lt typename T unsigned int rows unsigned int cols gt class BaseM
  • Heroku 应用程序上的远程 mysql 数据库

    我可以使用个人 Web 服务器上的 mysql 数据库而不是 heroku 的数据库吗 我这样配置我的生产数据库 production adapter mysql2 database somedatabase username someus
  • FastReport 5.3 Designer无法访问事件

    我在用着快速报告Delphi 10 1 Berlin 中的版本 5 3 14 我正在移植最初编写的 VCL 应用程序DelphiXE 当我打开报告时快速报表设计器单击对象检查器上的 事件 选项卡不会执行任何操作 我也无法单击报告的 代码 选
  • 解释日期:Console.Writeline 与 string.Format

    给出以下 C 代码 var dt DateTime Now Console WriteLine 0 MM dd yy 1 dt string Format 0 MM dd yy dt 当短日期 在 Windows 7 下 Control P
  • 多核::应用?

    有没有类似的东西sapply in the multicore图书馆 或者我必须unlist mclapply 为了达到这个目的 如果它不存在 原因是什么 提前致谢 如果这是一个愚蠢的问题 抱歉 在图书馆parallel 你有mcmappl
  • 来自全新 Yeoman 安装的 gruntserve 返回 - 警告:未找到任务“serve”

    运行后yo angular进而cd进入应用程序的根文件夹 与应用程序文件夹处于同一级别 gruntfile package json等 我尝试grunt serve我收到上述错误 Grunt 不会为我启动服务器 我到处寻找但找不到说要跑np
  • 如何在 Mathematica 中将包含小数点的字母数字(参考)数字转换为字符串

    我有以下类型 DAA76647 1 的参考号 我想将其原封不动地转换为 Mathematica 中的字符串 That is myfn DAA76647 1 给出作为输出 DAA76647 1 是否有捷径可寻 输入不能是字符串 除了转换为字符

随机推荐