如何解决在活动图中,什么符号表示一项活动必须在两天内完成?
客户可以立即或稍后为订单付款。当订单是后付款时,我想在活动图中绘制一个表示客户必须在两天内付款的符号。如果客户在两天内未付款,系统会将订单标记为已取消。
在此附加图像中,第一个泳道用于演员 Customer,第二个泳道用于演员 System。我创建了一个时间事件符号,表示客户必须在 48 小时内付款。然后,我将 merge/branch 节点放在客户泳道上,以表示客户是必须付款的参与者。
我在当前图表中想到的问题是有人可能会误解时间事件符号。有人可能会将此符号理解为系统将始终等待 48 小时,然后才能将订单标记为取消或等待发货。实际上,一旦客户付款,系统就会将订单标记为等待发货。但是,如果客户在 48 小时后仍未付款,系统会将订单标记为已取消。
如何绘制更好的图表来表示上述描述?
解决方法
接受时间事件操作(例如带有单个 TimeEvent 触发器的 AcceptEventAction)不能有输入流,因此您的图表无效,然后不显示你想要的。
Decision 之后的流程守卫必须写在方括号 ([]
) 之间。
我将合并/分支节点放在客户泳道上,以表示客户是必须付款的参与者。
但这是独立于客户的系统检查,所以这是错误的/不清楚
创建订单的两个操作不在客户泳道中的事实对我来说也是错误的/不清楚
在创建一个等待付款状态的订单之后,您可以创建一个专用于客户当前订单的新计时器。如果客户在 2 天前付款,则删除相应的计时器。
但是这可以产生很多计时器,您还可以在 fifo 中记住当前订单更多超时,并且您有一个独特的计时器。如果客户在 2 天前付款,相应的订单将从 fifo 中删除。
- 那个独特的计时器可以定期检查记忆的订单,但即使在什么都不做的时候,它也会唤醒系统。
- 可以在记住第一个订单时启动该唯一计时器,然后当系统唤醒时它会管理太旧的订单,然后如果 fifo 变空则停止计时器,否则它会根据延迟进行更新fifo 中的第一个(较旧的)顺序
根据 @qwerty_so's comment,我决定使用可中断区域。这个区域的中断触发是系统接受支付。这是新图表。
编辑
根据 @bruno's comments 和 @Axel Scheithauer's comments,我裁剪了我的活动图的更完整的图像。 An Accept Time Event Action seems to be able to have incoming edges/flows,与@bruno 的评论相反。此外,我认为不完整的截图是导致我的图表混乱的原因。
我还修改了我的图表,使可中断区域的信号来自接受时间事件操作而不是接受事件操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。