如何在PlantUML时序图中结束参与者的线路

8

在序列图中,有没有一种方法可以在图的结尾之前结束参与者的线条呢?例如,如果我想显示数据库存储过程如何相互调用:

@startuml
participant SP0
SP0 -> SP0 : Do minor stuff
create participant SP2
SP0 -> SP2 : Exec SP2
SP2 -> SP2 : Insert into table Tbl
SP2 -> SP2 : Do other stuff
SP2 -> SP0
SP0 -> SP0 : Do minor stuff
@enduml

在这里输入图片描述

我希望在SP2将处理结果返回给SP0后立即终止SP2的运行。此外,如果我稍后从SP0调用复杂的过程SP3,我希望将它与SP2在垂直方向上放置在同一级别。

我可以使用“hide footbox”命令删除页脚,但是该行仍然存在。此外,“activate”和“destroy”命令也不能终止该行。

谢谢!


我知道这很老了,但你有想出什么办法吗? - Vivere
呵呵,我想我没有。 - Lauri Peltonen
3个回答

1
这个选项在序列帮助不可用。我想你必须在右侧拥有SP3。缩短图表宽度的技巧是在长消息或注释中添加换行符\n

感谢您的输入。宽度不是问题所在。问题更多地涉及到图表给人的印象,即存储过程会随着SP0的持续而继续进行。 - Lauri Peltonen
@lauri你能具体指出是哪一个SP吗?如果你指的是SP0,你可以使用激活SP0 - Ricardo
让我们重新表述一下:问题更多地在于该图表给人的印象是存储过程SP2会随着SP0的持续而持续。 - Lauri Peltonen
1
虽然你似乎无法结束 SP2 的虚线,但你可以使用 destroy SP2 来传达信息。在这个例子中,我认为很清楚 CWorkDone 后不会继续执行。 - Ricardo

0

最近我成为了PlantUML的忠实粉丝。据我所知,其中支持的第一个图表是序列图。

奇怪的是,恰恰这个图表不符合UML标准。对象的生命线在创建时开始,但在销毁后并不会结束

作为一名C++开发人员,有时我会开玩笑说,PlantUML作为Java应用程序是否等待垃圾收集器?

此图显示了销毁的常规可视化。
(图片来源:https://creately.com/blog/diagrams/sequence-diagram-tutorial/


-1

您可以使用“激活”和“停用”来更好地理解。如果您想让读者明白,您的参与者在完成某些任务后不再存在,您也可以使用“销毁”。请查找示例:

@startuml
actor User
participant "Class1" as A
participant "Class2" as B
participant "Class3" as C

User -> A: DoWork
activate A

A -> B: Create Request
activate B

B -> C: DoWork
activate C
C --> B: WorkDone
destroy C

B --> A: Request Created
deactivate B

A --> User: Done
deactivate A
@enduml

输出: 输入图像描述


1
我的问题特别是关于结束行,我说“destroy”和“activate”都不会做到这一点。 - Lauri Peltonen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接