【问题标题】:How to model cancellation of process by user in BPMN2?如何在BPMN2中模拟用户取消流程?
【发布时间】:2014-07-24 18:25:15
【问题描述】:

我正在对处理应用程序的过程进行建模。 现实生活中的过程是这样的:

  • 数据录入人员从邮箱中取出电子邮件(提交),查看此有效申请表或垃圾邮件/垃圾邮件
    • 如果这是有效的表单,她将在系统中创建应用程序对象并开始从表单输入数据
    • 当她处理表单时(它很大),她可能会保存“应用程序”并稍后返回
    • 输入所有数据后,她将提交申请
    • 提交申请后,需要执行更多操作 - 需要收集一些文件并将其附加到申请中
    • 最后将其发送给 QA 进行检查等。

问题是任何时候数据输入人员都可以在现有系统中点击“撤回”,申请将被撤回(取消)。

这应该如何使用 BPMN2 建模?

【问题讨论】:

    标签: business-process-management bpmn business-process


    【解决方案1】:
    • 将所有需要撤回的任务捆绑在一个子进程中。
    • 在具有撤回操作和路由的任务上放置边界事件 这是子过程中的取消退出事件。
    • 在处理所有取消活动的子进程上放置边界取消事件。

    这被称为在 BPMN2 中建模 ACID 事务,简称:

    • 原子,如:全有或全无。
    • 一致,如:防止系统状态不一致。
    • 隔离,如:处理过程的每个实例化,不受其他实例化的任何影响。
    • 持久化,如:进程的状态持久化在数据库中,所以当系统崩溃时可以恢复。

    【讨论】:

      【解决方案2】:

      当我读到上面的答案时,我只能说:我完全同意。

      另一方面,我也同意这样的评论,即如果能看到一个图表来可视化这些答案,那就太好了。

      你在这里:

      该图基于一些有趣的参考网页bpm - design patterns。特别是请找到设计模式25 - Cancel Region

      我相信这就是你所要求的。

      【讨论】:

      • 如果负面意见的作者解释他/她的评价可能是公平的。
      • 这个想法很诱人,所以我没有投反对票。然而,所描绘的图表并不是有效的 BPMN 2.0 图表的一个很好的例子。首先,它必须有一个开始事件。其次,任务A之后的网关丢失了。以下活动应该并行执行还是独占执行?第三,结束事件不应有多个传入序列流。第四,C 和 D 之间的子过程没有被建模。因此,E应该什么时候开始?该评论基于 BPMN 2.0 标准 omg.org/spec/BPMN/2.0/PDF 和 Signavio 的建模指南 modeling-guidelines.org
      【解决方案3】:

      将其建模为 Withdraw 路径,导致退出状态。除其他外,您希望收集有关在退出之前花费在任务上的时间量、退出原因、退出频率、每个数据输入人员的退出率等信息。

      所有的统计数据现在可能并不明显,但为未来的分析进行设计并不总是浪费时间。

      编辑:

      要在图上对此进行建模,当您有许多步骤时,请使用子图来保存主流程,并在主图上显示单个退出路径来表示退出。

      【讨论】:

      • 但是如何准确地将其放在图表上?如果我有 10 个步骤,每个用户都可以取消处理 - 我应该添加 10 个网关和 10 个检查“被撤回吗?”每一步?我能以某种方式在图表上指出这可能会在任何步骤的任何时候发生吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-29
      • 1970-01-01
      • 2020-04-28
      • 2016-01-13
      • 2013-05-19
      相关资源
      最近更新 更多