Activity 固定次数的循环迭代图,如果迭代结束则指向不同的 activity

Activity diagram iteration of loop for fixed number of times and point to a different activity if iteration ends

我开发了以下 activity 图。

一位客户被要求付款,如果他没有在 5 天内付款,公司会打电话给客户,如果他还想上课,就会得到更新。但是,我想重复检查是否在 5 天内收到付款并致电客户进行更新的循环,因为公司可以容忍这 3 次,否则预订将被取消。然而,我不确定如何在我的 activity 图表上将其可视化。

根据您的初步尝试

一种简单的方法是在您的 Payment received witin 5 days / No 分支上添加一个新的决策节点:Customer already contacted 3 times 其中 No 将继续初始流程进行调用,而 Yes 将导致 Cancel booking:

这假设您有每个付款请求的调用次数计数器。

在您的叙述中,我们看到第一次通话与后续通话之间存在差异。在我看来,这种差异应该在 Contact client by phone 内处理,不需要任何特别注意。但是,如果 activity 在初始调用和为提醒采取的操作之间存在更大差异,您可能需要考虑更复杂的分支。但原则是相同的:您将使用几个决策节点来检查调用计数器。

一种不同的方法

实际上没有循环。拨打电话的人不会等待付款到达以拨打第二个电话。原则上payment request received会毫不拖延地通向决策节点,不会卡在那里5天。 5 天对于人类读者来说还可以,但充满了歧义。例如,您是否还会在每次通话后等待 5 天?如果第6天收到付款,但第5天来电者没有立即打电话,等等...

要解决此类计时问题,您最好使用另一个 SO answer from qwerty_so 中解释的计时事件。这使您可以清楚地显示正常流程,并隔离时间驱动的活动。

( 顺便说一句,因为我们看到实际上 activity 与付款请求的状态相关,您可以优雅地补充您的 activity 图状态图.)