Activiti

Activiti 同时被 2 个专栏收录
5 篇文章 0 订阅
3 篇文章 0 订阅
  1. Activiti流程引擎的配置文件是名为activiti.cfg.xml的XML文件。
  2. 从Activiti5.12开始,SLF4J被用作日志框架,替换了之前的java.util.logging,所有的日志都转发给SLF4J允许使用你选择的日志实现。

   Activiti是基于Apache V2协议发布的。Activiti需要运行在JDK1.6或以上版本。

开始步骤:

  • Activiti的下载安装。在确保本地已经安装JRE和Tomcat,以及配置好JDK环境变量。从Activiti下载好的activiti-explorer.war文件,复制到tomcat的webapp文件夹下。运行tomcat的bin文件夹下的startup.bat或者startup.sh脚本来启动tomcat。在tomcat启动后,打开浏览器访问http://localhost:8080/activiti-explorer。使用kermit/kermit登录。
  • Activiti数据库配置。Activiti Explorer默认运行在H2内存数据库上,也可以根据自己实际需要配置其他的数据库,比如Oracle,MySQL。   
  • 当部署业务存档时,会扫描具有.bpmn20.xml或.bpmn扩展名的BPMN文件,每一个这种文件都会被解析,并且可以包含多个流程定义。

流程引擎的API和服务:

  • 引擎API是与Activiti打交道的最常用方式。从ProcessEngine中,可以获取很多包括囊括工作流/BPM方法的服务。ProcessEngine和服务类都是线程安全的,在整个服务器中仅保持一个它们的引用就可以了。下图所示:

 

 

  • ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
  • RuntimeService runtimeService = processEngine.getRuntimeService();
  • RepositoryService repositoryService = processEngine.getRepositoryService();
  • TaskService taskService = processEngine.getTaskService();
  • ManagementService managementService = processEngine.getManagementService();
  • IdentityService identityService = processEngine.getIdentityService();
  • HistoryService historyService = processEngine.getHistoryService();
  • FormService formService = processEnige.getFormService();

    ProcessEngines.getDefaultProcessEngine()在第一次被调用时将进行初始化并构建流程引擎,在之后的调用都将返回相同的流程引擎。流程引擎的创建通过ProcessEngines.init()实现,关闭由ProcessEngine.destory()实现。

    ProcessEngines会扫描所有activiti.cfg.xml与activiti-context.xml文件,对于所有的activiti.cfg.xml文件,流程引擎会以标准Activiti方式构建:ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(inputStream).buildProcessEngine().对于所有的acticiti-context.xml文件,流程引擎会以Spring的方式构建:首先构建Spring应用上下文,然后从该上下文中获取流程引擎。

    RepositoryService提供了管理与控制deployments(部署)与processdefinitions(流程定义)的操作。此外,这个服务还可以:

  1. 查询引擎已知的部署与流程定义;
  2. 暂停或激活部署中的某些流程,或整个部署。暂停意味着不能再对它操作,激活是其反操作;
  3. 读取各种资源,比如部署中保存的文件,或者引擎自动生成的流程图;
  4. 读取POJO版本的流程定义,使用它可以用Java而不是xml的方式检查流程。 

        RuntimeService用于启动流程定义的新流程实例。也用于读取和存储processes variables(流程变量)。其中流程变量是指给定流程持有的数据,可以在许多流程的构造中使用(例如排它网关exclusive gateway经常使用流程变量决定流程下一步要选择的路径)RuntimeService还可以用于查询流程实例与执行(execution)。执行代表了BPMN2.0中的‘token’的概念。RuntimeService服务提供了许多操作用于通知流程实例,告知已经接收到外部触发,使流程实例可以继续运行。

    TaskService(任务有关的服务):

  1. 查询分派给用户或组的任务
  2. 创建standalone(独立运行)任务,这是一种没有关联到流程实例的任务。
  3. 决定任务的执行用户(assignee),或者将用户通过某种方式与任务关联。
  4. 认领(claim)与完成(complete)任务。认领指的是某人决定称为任务的执行用户,即他将要处理这个任务。完成任务是指做这个任务所要求的工作,比如审批填写表单,同意与否。             

   IdentityService(关于身份的服务)它常用于管理(创建,删除,更新,查询)组与用户。注意:Activiti在分配任务给用户的时候,并不会验证系统中是否存在该用户。因为Activiti有时要与LDAP Active Diretory等服务结合使用。

    FormService是可选服务。这个服务引入了start form(开始表单)与task form(任务表单)的概念。开始表单是在流程实例启动前显示的表单,而任务表单是用户完成任务时显示的表单。

    HistoryService暴露所有Activiti引擎收集的历史数据。当执行流程时,引擎会保存许多数据(可以配置),例如流程实例启动时间,谁在执行哪个任务,完成任务所花费的时间,每个流程实例的执行路径,等等。这个服务主要提供查询这些数据的能力。

    ManagementService通常在用Activiti编写用户应用时不需要使用。它可以用于读取数据库表与表原始数据的信息,也提供了对作业(job)的查询和管理操作。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值