询问Activiti图并行任务

时间:2014-01-04 07:12:14

标签: process bpm activiti

我的业务流程必须转换为Activiti BPM图或其他BPM引擎。 这是我缩短的业务流程: - 用户1创建业务事务 - 然后用户2完成他的任务以改变交易状态。 我的问题是:在创建业务事务之后,用户1可以删除该事务,其中用户2无法完成其任务(或者他的任务被用户1自动删除)。 那么如何使用BPM图来表达该业务?我现在对使用并行网关感到困惑吗?

2 个答案:

答案 0 :(得分:0)

用户2的任务类似于(更新事务状态)应该在更新状态之前首先检查特定实体是否存在,然后可能放置逻辑/物理锁定,指示它在必要时正在使用。类似地,在用户1的任务中,应该在删除之前进行检查以查看该实体是否被另一个用户保持/锁定。所以这一步不仅仅是一个动作。

答案 1 :(得分:0)

您指出的业务流程细分实际上是一种常见做法。 通常,授权发起人取消可能具有现有任务的流程或流程的一部分。

处理此问题的最简单方法是:

  1. 启动流程后,拆分流程并向用户1发送“状态”任务,并向用户2发送“流程事务”任务。
  2. 让状态任务(用户1)提供一个简单的UI选项来取消将发送终止事件的进程(每个事件立即关闭)或者如果需要清理,则发送信号事件以关闭进程实例。
  3. “流程事务”任务将有一个事件监听器,它接收信号事件,自动关闭任务并流动(通过清理逻辑)到最后。
  4. 请注意,如果您使用终止事件,则步骤3不是必需的,但它是一种“撬棍方法”,根据我的经验,总是需要实例清理(通知用户他们的流程任务消失的原因,撤消DB或记录交易系统,向其他系统发送消息)。

    作为一个单独的注释,BP-3(http://www.bp-3.com)提供了一整套Activiti服务,包括:

    1. 迁移支持(从其他BPM系统到Activiti)
    2. Activiti BPM引擎的预生产支持
    3. BPM流程设计,开发,审核服务
    4. Activiti BPM引擎的生产支持
    5. 一般咨询服务
    6. 他们或许可以帮助您制定迁移策略。