当前位置: 首页 > 知识库问答 >
问题:

Activiti补偿

闾丘昊然
2023-03-14

我想要的

我在寻找在Activiti上下文达到等待状态之前回滚它的方法。例如,我有:

public class MyService implements JavaDelegate {

  @Override
  public void execute(DelegateExecution execution) {
    int a = calcA();
    boolean res1 = saveToDB(a);  // save to application context
    execution.setVariable("a" , a); //save to activiti context

    if (!a)
      rollback(); //rollback execution contaxt 
  }
}

真是个问题:

我不想手动删除执行变量。我已经试过普通交易-没有结果。现在我想到了补偿事件。

问题:

补偿事件是回滚Activiti上下文还是应该在适当的CompensationserviceTask中手动执行?

共有1个答案

逑和蔼
2023-03-14

抛出异常可以做到这一点,它将从引擎回滚整个事务。

 类似资料:
  • Activiti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速,稳定的BPMN2流程引擎。它易于与 Spring集成使用。

  • Activiti Designer是#Activiti#配套的基于Eclipse的可视化流程设计器,有Activiti团队开发,紧密贴合BPMN2.0规范以及Activiti的扩展元素。 除了可视化设计之外,还可以打包流程资源文件(包括bpmn、png、jar)、自动生成流程测试代码(JUnit)。 版本更新一般在引擎发布后一周左右,支持Eclipse 3.6+。 插件安装地址:http://ac

  • 我对Activiti非常陌生。我有一个具体的问题,假设我有两个ativiti引擎在两个实例上运行,并且两者都共享公共存储库。目前,如果我在实例A上启动任何任务,并且由于Activiti的默认特性而突然关闭它,它会被B选中,这正是我不想发生的,因为两个实例运行不同版本的软件。我需要下面的行为“在实例A上启动的作业应该由活动A完成,前提是我们暂停它”。这是可能的吗? 非常感谢!

  • Activiti Modeler是一个BPMN web建模组件,它是Activiti Explorer web应用的一部分。 Modeler是Signavio核心组件项目的一个分支。 新版Activiti Modeler的初始开发是由KIS BPM捐献给Activiti项目的。 和之前Activiti Modeler(Signavio核心组件)主要的区别是新Modeler是作为Activiti项目

  • Activiti Explorer,我习惯称之为Activiti控制台,后面也这么翻译。Activiti控制台是一个web应用程序,当我们从Activiti的官方 网站下载Activiti的压缩zip文件时候,Activiti控制台在${Activiti_home}/wars文件夹下面。该控制台的目的并不是 创建一个完善的web应用程序,仅仅是为客户端用户准备的应用程序,但是却能够练习和展示Act

  • 流程引擎的API和服务 引擎API是与Activiti打交道的最常用方式。 我们从ProcessEngine开始, 创建它的很多种方法都已经在 配置章节中有所涉及。 从ProcessEngine中,你可以获得很多囊括工作流/BPM方法的服务。 ProcessEngine和服务类都是线程安全的。 你可以在整个服务器中仅保持它们的一个引用就可以了。 ProcessEngine processEngin