【Activiti:学以致用】【第一章】 工作流核心API

万事开头难,把以前学java的步骤重来一遍,所以这次决定先介绍Activiti“JDK”!!!

1.ProcessEngine

说明:

1)     在Activiti中最核心的类,其他的类都是由他而来。

2)     产生方式:     

在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。

1)     可以产生RepositoryService

2)     可以产生RuntimeService

3)     可以产生TaskService

各个Service的作用:


RepositoryService


管理流程定义


RuntimeService


执行管理,包括启动、推进、删除流程实例等操作


TaskService


任务管理


HistoryService


历史管理(执行完的数据的管理)


IdentityService


组织机构管理


FormService


一个可选服务,任务表单管理


ManagerService


 




2.RepositoryService

是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。

1)     产生方式

2)     可以产生DeploymentBuilder,用来定义流程部署的相关参数

3)     删除流程定义

3.RuntimeService

是activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。


4.TaskService

是activiti的任务服务类。可以从这个类中获取任务的信息。

5.HistoryService

是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。

6.ProcessDefinition

流程定义类。可以从这里获得资源文件等。

7.ProcessInstance

代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。流程实例就表示一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个。

8.Execution

Activiti用这个对象去描述流程执行的每一个节点。在没有并发的情况下,Execution就是同ProcessInstance。流程按照流程定义的规则执行一次的过程,就可以表示执行对象Execution。

 如图为ProcessInstance的源代码:

从源代码中可以看出ProcessInstance就是Execution。但在现实意义上有所区别:

在单线流程中,如上图的贷款流程,ProcessInstance与Execution是一致的。

这个例子有一个特点:wiremoney(汇钱)和archive(存档)是并发执行的。   这个时候,总线路代表ProcessInstance,而分线路中每个活动代表Execution。

总结:

* 一个流程中,执行对象可以存在多个,但是流程实例只能有一个。

* 当流程按照规则只执行一次的时候,那么流程实例就是执行对象。

时间: 2024-09-10 11:01:25

【Activiti:学以致用】【第一章】 工作流核心API的相关文章

第五章 Hibernate核心API介绍与其使用

5.1 Configuration接口5.1.1加载hibernate.cfg.xml并完成系统的配置        Configuration接口的作用是对Hibernate进行配置.并启动Hibernate和连接数据库系统.       在Hibernate的启动过程中,Configuration类的实例首先定位缺省XML配置文件(hibernate.cfg.xml),并读取关的配置项目,然后创建出一个SessionFactory对象.根5.1.2据Configuration对象创建一个Se

Knockout应用开发指南 第一章:入门

原文:Knockout应用开发指南 第一章:入门 1    Knockout简介 (Introduction) Knockout是一个轻量级的UI类库,通过应用MVVM模式使JavaScript前端UI简单化. Knockout有如下4大重要概念: 声明式绑定 (Declarative Bindings):使用简明易读的语法很容易地将模型(model)数据关联到DOM元素上. UI界面自动刷新 (Automatic UI Refresh):当您的模型状态(model state)改变时,您的UI

第一章 C#简介(rainbow 翻译) (转自重粒子空间)

<展现 C#> 第一章 C#简介(rainbow 翻译)   出处:http://www.informit.com/matter/ser0000001/chapter1/ch01.shtml 正文: 展现   C#  第一章                      C#    简介 欢迎您加入C#的世界! 这一章将把您引进C#的天地,并回答一些相关的问题,如:您为什么要使用C#,C++和C#的主要有什么不同点,以及为什么C#使开发更容易而且还使您感到很有趣.为什么是另外一种编程语言?必须回答

《.net编程先锋C#》第一章 C#简介(转)

编程 第一章 C# 简介 欢迎您加入C#的世界! 这一章将把您引进C#的天地,并回答一些相关的问题,如:您为什么要使用C#,C++和C#的主要有什么不同点,以及为什么C#使开发更容易而且还使您感到很有趣.为什么是另外一种编程语言? 必须回答的一个问题:当您已经使用C++或VB从事企业开发时,为什么还要学习另一种语言? 市场式的回答就是:"在企业计算领域,C#将会变成为用于编写"下一代窗口服务"(Next Generation Windows Services,简写为NGWS

《.net编程先锋C#》第一章 C#简介

编程 第一章 C# 简介 欢迎您加入C#的世界! 这一章将把您引进C#的天地,并回答一些相关的问题,如:您为什么要使用C#,C++和C#的主要有什么不同点,以及为什么C#使开发更容易而且还使您感到很有趣.为什么是另外一种编程语言? 必须回答的一个问题:当您已经使用C++或VB从事企业开发时,为什么还要学习另一种语言? 市场式的回答就是:"在企业计算领域,C#将会变成为用于编写"下一代窗口服务"(Next Generation Windows Services,简写为NGWS

Solaris培训第一章:系统概念

第一章:系统概念(System Concepts) Objectives Upon completion of this module, you should be able to Match the three parts of an operating system (kernel, shell, and file system) to their definitions Identify the three most common shells in the Solaris environ

Android群英传笔记——第一章:Android体系与系统架构

Android群英传笔记--第一章:Android体系与系统架构 图片都是摘抄自网络 今天确实挺忙的,不过把第一章的笔记做一下还是可以的,嘿嘿 1.1 Google的生态圈 还是得从Android的起源说起,Android是一个以Linux为基础的开源移动设备操作系统,主要用于智能手机和平板电脑,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中.Android已发布的最新版本为Android 6.0.1(M). Android系统最初由安

Java 程序性能优化《第一章》Java性能调优概述 1.2性能调优的层次

Java 程序性能优化<第一章>1.2性能调优的层次 为了提升系统性能,开发人员开始从系统各个角度和层次对系统进行优化.除了最常见的代码优化外,在软件架构上.JVM虚拟机层.数据库以及操作系统层面都可以通过各种手段进行优化,从而在整体上提升系统的性能. 1.2.1 设计调优 设计调优处于所有调优手段的上层,它往往需要在软件开发之前进行.在软件开发之处,软件架构师就应该评估系统可能存在的各种潜在问题,并给出合理的设计方案.由于软件设计和架构对整体质量有决定性的影响,所以,设计调优对系统性能的影响

Java 程序性能优化《第一章》Java性能调优概述 1.1性能概述

Java 程序性能调优<第一章>Java性能调优概述(1.1性能概述) 1.1 性能概述 为什么程序总是那么慢?它现在到底在干什么?时间都花在哪里了?也许,你经常会抱怨这些问题,如果是这样,那说明你的程序出了性能问题.和功能问题相比,性能问题在有些情况下,可能不算什么大问题,将就将就,也就过去了.但是严重的性能问题会导致程序瘫痪.假死.直至崩溃.本书就先来认识性能的各种表现和指标. 1.1.1 看懂程序的性能 对客户端程序而言,拙劣的性能会严重影响用户体验,界面停顿.抖动.响应迟钝等问题会遭到