搜档网
当前位置:搜档网 › Activiti工作流入门详解完整教程

Activiti工作流入门详解完整教程

Activiti工作流入门详解完整教程
Activiti工作流入门详解完整教程

A c t i v i t i工作流入门详

解完整教程

Prepared on 24 November 2020

Activiti入门教程详解完整教程

1.Activiti介绍

Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。

Activiti基于Apache许可的开源BPM平台,创始人TomBaeyens是JBossJBPM 的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。

1.1工作流引擎

ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。

1.2BPMN

业务流程建模与标注(BusinessProcessModelandNotation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(BusinessProcessDiagram) 2.准备环境

2.1Activiti软件环境

1)或者更高版本

2)支持的数据库有:h2,mysql,oracle,mysql,db2等

3)支持Activiti运行的jar包,可以通过maven依赖引入

4)开发环境为或者以上版本,myeclipse为版本

安装流程设计器(eclipse插件)

1)打开HelpInstallNewSoftwareAdd

输入Name:ActivitiDesigner

designer/update/

输入完成后,单击OK按钮等待下载完成后安装。

安装完成后在菜单选项中会出现Activiti的目录选项

设置eclipseactivit插件的画流程图选项

打开菜单Windows-->Preferences-->Activiti-->Save下流程图片的生成方式

勾选上Createprocessdefinitionimagewhensavingthediagram操作,勾选上这个操作后在画流程图后保存eclipse会自动生成对应的流程图片。

准备开发环境

Activiti依赖

在eclipse左边工作栏右键New选择创建MavenProject项目,创建一个名为ActivitiTest的项目

点击Finish完成。

右键项目选择Properties,选择ProjectFacets勾选上图中的选项,点击Apply,再点击OK

然后将项目转换成web项目,右键项目选择Properties,在ProjectFacets中做如下勾选,然后点击Appy应用和OK确定

然后右键项目Properties,选择DeploymentAssembly,将test相关目录Remove掉之保留main下面需要发布的内容,如下图

然后点击Appply和OK

然后在文件中添加以下依赖

Activiti-engine

Activiti-spring

groovy-all

slf4j-api

slf4j-jdk14

junit

junit

test

mysql

mysql-connector-java

然后在命令行下mvncompile编译当前项目,将需要的包下载到本地仓库

1)src/main/resource目录下创建文件,内容如下

xmlns:context=xmlns:tx=

xmlns:jee=xmlns:aop=

xsi:schemaLocation=

>

class=">

jdbcUrl为你电脑数据库的url

jdbcUsername为数据库用户名

jdbcPassword为数据库密码

2)在main/java目录下创建任意目录和类

编写创建Activiti数据表方法

publicclass CreateTable{

/****

*创建流程表

**/

@Test

publicvoid createTable(){

ProcessEngine processEngine=("")

.buildProcessEngine();

"------processEngine:"+processEngine);

}

}

然后运行该测试方法,如果运行成功,在数据库中应该会产生25张Activiti 的相关数据表

表说明

下面是概括了几个常用的数据表

流程部署相关表

act_re_deployement部署对象表

act_rep_procdef流程定义表

act_ge_bytearray资源文件表

act_ge_prperty主键生成策略表(对于部署对象表的主键ID)

流程实例相关表

act_ru_execution正在执行的执行对象表(包含执行对象ID和流程实例ID,如果有多个线程可能流程实例ID不一样)

act_hi_procinst流程实例历史表

act_hi_actinst存放历史所有完成的任务

Task任务相关表

act_ru_task代办任务表(只对应节点是UserTask的)

act_hi_taskinst代办任务历史表(只对应节点是UserTask的)

act_hi_actinst所有节点活动历史表(对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录)

流程变量表

act_ru_variable正在执行的流程变量表

act_hi_variable流程变量历史表

3.核心API

说明:

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

2)产生方式

ProcessEngine processEngine=();

3)可以产生RepositoryService

RepositoryService repositoryService=();

4)可以产生RuntimeService

RuntimeService runtimeService=();

5)可以产生TaskService

TaskService taskService=();

各个Service的作用

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

该service可以用来删除部署的流程定义。

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

是Activiti的任务服务类。可以从这个类中获取任务的相关信息,如当前正在执行的个人待办和用户组待办任务。

是Activiti的查询历史信息的类,在一个流程执行完成后,这个对象为我们提供查询历史信息,可以跟踪流程实例对应所有待办节点的运行情况。

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

代表流程定义的执行实例,当一个部署的流程图启动后,该流程只有一条流程实例数据,但是它的流程任务可以有多个,每个任务对应流程图中相应的流程节点。

4.入门HelloWorld程序

创建流程图方法

点击ActivitiTest项目,在src/main/java目录下创建一个diagrams目录用来存放流程图

在当前项目右键选择ActivitiDiagram流程图输入流程图名称HelloWorld,然后点击OK,

在控制面板的右边栏有相关的画图图标操作

其中一个流程必须包含一个开始节点和一个结束节点,结束节点可以有多个。然后使用StartEvent,UserTask,EndEvent画出下面的流程图,然后用Connection 中的SequenceFlow连线连接起来。

创建流程图,如下图

指定流程图名称,ID和UserTask的处理人

1)选中第一个节点,在General中的name属性中输入当前节点的名称,在Mainconfig中的Assignee中输入该节点的处理人,然后以此类推将3个节点的值设置完成。

,2)然后在流程图旁边的空白出点击一下,输入流程的ID和Name值,然后保存

将流程图部署到Activiti的数据表中

启动完成后在act_re_deployment流程部署表和act_re_procdef流程定义表中会有对应的数据信息.

启动流程实例

其中("HelloWorldKey");中的HelloWorldKey对应流程图中的ID值,在数据表中对应act_re_procdef流程定义表中的key字段

启动完流程后在act_ru_execution表中会产生一条数据,这条数据为当前流程正在执行的任务,其中act_id_字段的值对应流程图节点的ID值

在act_ru_task表中会产生一条任务数据,execution_id_对应act_ru_execution主键,proc_inst_id_为流程实例ID,name_值为流程节点名称,assignee_字段为该待办当前的处理人

查询待办任务

指定查询张三的待办,可以查询出待办为第一个节点的处理任务。

完成待办任务

其中taskId对应act_ru_task表的主键ID,因为当前待办任务为第一个节点提交申请,当执行完这个待办后下一条待办数据将会流转到审批【部门经理】那,然后以此类推可以将部门经理和总经理的待办任务全部查询和执行完成。

5.查询和删除流程定义

1)查询流程定义

2)删除流程定义

6.流程变量操作

设置流程变量

1)设置流程变量有多种方式,可以在流程启动,和任务执行的时候设置

a.启动流程的时候设置

b.通过taskService或者runtimeService设置

提示:如果设置的流程变量值是一个对象类型,这个对象必须实现序列化Serializable操作,并且要为该对象类指定一个版本ID

获取流程变量

见工程操作

7.流程连线

在画流程图的时候可以对流程的连线设置表达式,然后在执行的时候设置流程变量值,然后Activiti会根据对应的值走对应的节点

点击一条连线,在Mainconfig中的Condition属性值中设置${message=='同意'},另外一条线设置为${message=='不同意'},然后在代码中设置对应流程变量值。

见工程操作

8.排他网关

如下图,其中黑色的叉叉对应eclipse画流程图图标中的ExclusiveGateWay图标然后对每条线的Condition属性指定对应的表达式,然后在执行任务时候设置对应的流程变量

Activiti会根据变量的值来判断对应连线中的表达式走对应的流程节点路线。

见工程操作

9.并行网关

十字图标对应图标中的ParallelGateway

并行网关不需要指定连线的表达式,当流程流转到并行任务时会出发多个任务,当多个任务完成后在会将流程流转到下一个节点

见工程操作

10.个人任务的三种指定方式

在Assignee中指定任务具体的处理人

在Assignee中指定任务的处理人或角色变量

当指定Assignee为一个变量值后需要在代码中设置对应的处理人,比如在启动的时候设置userId的值

在工程中可以将起草人的处理变量设置为userId,审批人的处理变量设置为appUserId,然后通过业务模块和登录人来获取对应模块的审批人。

为任务节点设置一个监听类来设置当前节点的处理人

如果设置了监听类就不需要在设置Assignee的值

1)创建一个监听器类,需要实现TaskListener接口

2)点击任务节点,选择Listener选项卡,点击New,将Event的值改为create 然后选择创建的TaskListenerImpl实现类

然后当任务到达该节点后Activiti会触发监听实现类的notify方法

11.组任务的三种指定方式

在任务节点中设置Candidateuser候选人

设置的候选处理人用英文输入法的逗号隔开,当任务到达该节点后,设置的候选人其中任何一个人都可以处理当前待办,处理完成后待办结束。

在Candidateuser中设置一个变量作为处理人

然后通过启动或者执行流程向下传递的时候设置该流程变量值

通过监听类来设置待办处理人

如果设置了监听类就不需要在设置Assignee的值

和个人任务的监听类一样实现TaskListener接口,然后设置CandidateUser的值

Android基础——Fragment与Activity交互

Android基础——Fragment与Activity交互 今天继续讲解Fragment组件的特性,主要是跟Activity的交互和生命周期的关系,我们前面已经说过Fragment是依赖于Activity的,而且生命周期也跟Activity绑定一起。下面我们看看Fragment跟Activity的关系。 1、为Activity创建事件回调方法 在一些情况下, 你可能需要一个fragment与activity分享事件。一个好的方法是在fragment中定义一个回调的interface, 并要求宿主activity实现它。当activity通过interface接收到一个回调,必要时它可以和在layout中的其他fragment分享信息。例如, 如果一个新的应用在activity中有2个fragment –一个用来显示文章列表(framgent A), 另一个显示文章内容(fragment B) –然后 framgent A必须告诉activity何时一个list item被选中,然后它可以告诉fragmentB去显示文章。 在这个例子中, OnArticleSelectedListener 接口在fragment A中声明: public static class FragmentA extends ListFragment { //... // Container Activity must implement this interface public interface OnArticleSelectedListener { public void onArticleSelected(Uri articleUri); } //... } 然后fragment的宿主activity实现 OnArticleSelectedListener 接口,并覆写 onArticleSelected() 来通知fragment B,从fragment A到来的事件。为了确保宿主activity实现这个接口, fragment A的onAttach() 回调方法(当添加fragment到activity时由系统调用) 通过将作为参数传入onAttach()的Activity做类型转换来实例化一个OnArticleSelectedListener实例。 public static class FragmentA extends ListFragment { OnArticleSelectedListener mListener; //... @Override public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnArticleSelectedListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implementOnArticleSelectedListener"); } } //... } 如果activity没有实现接口,fragment会抛出 ClassCastException 异常。正常情形下,mListener

大学英语综合教程答案

3.Many products for sale seem to scream at us, "Buy me! Buy me!" Advertising is a big busin ess in our world with many products competing for our attention. Think of the last time you boug ht clothes. You probably noticed the variety of colors, patterns, fabrics and brands you could choo se from. Which kind of soft drink would you like to have today or what kind of computer do you want? Advertisers are skilled in the art of making their products look the best to appeal to our se nses. But products aren't always what they seem. Sometimes advertising is deceptive and as cons umers ,we must be careful about what we choose to buy. It is important to learn to compare prod ucts and identify our purpose in purchasing the things we need. But the good thing about advertising is that it helps people to make decisions and refine thei r choices. In the United States, the Ad Council creates timely public service messages to the nation. Th eir purpose is to raise awareness of public problems that citizens can respond to. Inspiring ads ca use individuals to take action and even save lives. Pollution in America, for example has been red uced over the years because of the creative Public Service advertisements that the council provid es" Please, please don't be a litter bug, 'cause every 'litter bit' hurts." Many families have taught t heir children to place litter in the trash can in response to this catchy phrase, which has affected g enerations as each succeeding generation has taught their children not to litter. 4.Nature imposes difficult conditions upon the earth from time to time . The tornado and fo rest fire destroy natural resources ,homes and other structures ,and very often harm or kill peopl e . Technological tragedies happen with little or no warning as we see trains crash and airplanes f all from the sky shortly after take-off. As tragic as calamities are , they seem to bring out the best in human nature . people trained in em ergency care arrive at the scene and begin assisting the inj ured .Others come with equipment to remove debris. Men , women ,and young people willingly c ome to the scene of an accident , hoping to be of help in some way . These selfless acts of kindne ss make our world a better place . compassion eases the wounds of calamities. American Airlines flight number 587 crashed less than three minutes after taking off from JF K Airport in New York in November,2001. Witnesses s aw an engine fire develop on the plane’s nu mber one engine located under the left wing of the aircraft .seconds later ,the airliner crashed int o eight homes ,completely destroying four of them .All 260 people aboard the airplane were kille d along with six people at the crash site ,leaving many people to mourn the loss of their loved on es .the residents (people who live in the area of the crash ) rallied together to comfort those griev ing, while others removed bodies from the wreckage and did the necessary clean-up. 工程实施困难的条件下在地上的时候。龙卷风和森林火灾破坏自然资源,房屋和其他建筑物,和经常伤害或杀死人。技术的悲剧发生在很少或没有预警,因为我们看到火车事故,飞机起飞后不久就从天空坠落。一样悲惨的灾难,他们似乎显示出人性中最好的。在急诊受训的人到达现场并开始帮助受伤的人则跟设备清除残骸。男人,女人,和年轻人自愿来到事故现场,希望能有帮助。这些无私的善举让我们的世界变得更美好。同情减轻灾害的伤口。 美国航空公司587号航班坠毁不到三分钟后从纽约肯尼迪机场起飞,11月2001。目击者看到一个引擎火灾发展在飞机上的1号引擎位于下飞机的左翼,接着后,客机坠毁八家,完全摧毁了四个260名乘客的飞机遇难连同6人在事故现场,造成许多人悼念失去的亲人,居民(住在崩溃的面积)聚集在一起,安慰那些悲伤,而另一些人则从残骸,并把尸体移走必要的清理。 5.Success can be reached in different ways by people in different careers. Bill Gates began at age to program computers,His vision for personal computing has been central to the success of M icrosoft Corporation, the company he founded with his childhood friend in 1975 . The former CEO of General Electric, Jack Welch, is a business legend. A famous quote by Mr. Welch is,” Chang before you have to. ”He believes in leading by example and encourages his empl oyees to do their best every day. Michael Jordan s aid,”I accept failure, but I can’t accept not trying.” He is one of the best athl etes to ever play team sports. His great smile, athletic achievements, and pleasant personality ha ve made him one of the most famous athletes in the world. Michael Jordan spent a lot of time pla ying basketball as a child but in senior middle school he was taken off the team . Instead of giving up , he worked through adversity and became the greatest basketball player yet .

Activiti工作流入门详解完整教学教程

Activiti入门教程详解完整教程 1.A ctiviti介绍 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。 Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss JBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。 1.1工作流引擎 ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。 1.2BPMN 业务流程建模与标注(Business Process Model and Notation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)

2.准备环境 2.1Activiti软件环境 1)JDK1.6或者更高版本 2)支持的数据库有:h2,mysql,oracle,mysql,db2等 3)支持Activiti运行的jar包,可以通过maven依赖引入 4)开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本2.2安装流程设计器(eclipse插件) 1)打开Help →Install New Software →Add 输入Name: Activiti Designer Location: https://www.sodocs.net/doc/5212035323.html,/designer/update/ 输入完成后,单击OK按钮等待下载完成后安装。 安装完成后在菜单选项中会出现Activiti的目录选项

activiti流程开发基本步骤详解

activiti流程开发指南 ?一、BPMN ?二、activiti主要接口 ?三、如何实现一个业务流程 ?四、如何管理所有流程与实例 ?五、开发流程 ?六、api 一、BPMN 1. 什么是BPMN 首先BPMN规范是由标准组织BPMI发布的.BPMN 1.0规范发布于2004年5月。此规范展示了BPMI组织两年多的努力成果。BPMN的主要目标就是要提供被所有业务用户理解的一套标记语言,包括业务分析者、软件开发者以及业务管理者与监察者。BPMN还将支持生成可执行的 BPEL4WS语言。所以,BPMN在业务流程设计与流程实现之间搭建了一条标准化的桥梁。 BPMN定义了业务流程图,其基于流程图技术,同时为创建业务流程操作的图形化模型进行了裁减。业务流程的模型就是图形化对象的网图,包括活动(也可以说工作)和定义操作顺序的流控制。 2. BPMN基础 业务流程图由一系列的图形化元素组成。这些元素简化了模型的开发,且业务分析者看上去非常熟悉。这些元素每个都有各自的特性,且与大多数的建模器类似。比如,活动是矩形,条件是菱形。应该强调的是:开发BPMN的动力就是为了在创建业务流程模型时提供一个简单的机制,同时又能够处理来自业务流程的复杂性。要处理这两个矛盾的需求的方法就是将标记的图形化方面组织分类为特定的类别。这里提供标记类别中的一小部分,以便业务流程图的读者可以简单地识别出元素的基本类型从而理解图形。以下是四种基本的类型: 1)流对象 2)连接对象 3)泳道

4)人工信息 BPMN2.0概要:https://www.sodocs.net/doc/5212035323.html,/workclass/201206272.asp 二、activiti主要接口 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 = processEngine.getFormService(); ProcessEngines.getDefaultProcessEngine()会在第一次调用时初始化并创建一个流程引擎,以后再调用就会返回相同的流程引擎。使用对应的方法可以创建和关闭所有流程引擎:ProcessEngines.init()和ProcessEngines.destroy()。 ProcessEngines会扫描所有activiti.cfg.xml和activiti-context.xml文件。对于activiti.cfg.xml文件,流程引擎会使用Activiti的经典方式构建: ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream (inputStream).buildProcessEngine(). 对于activiti-context.xml文件,流程引擎会使用Spring方法构建:先创建一个Spring的环境,然后通过环境获得流程引擎。

Activiti6.0工作流使用说明文档V1.0

Activiti工作流使用说明文档 V1.0 2019年8月9日

目录 一、模型设计器 (4) 1.1任务 (5) 1.1.1 用户任务 (5) 1.1.2 服务任务 (5) 1.1.3 脚本任务 (6) 1.1.4 业务规则任务 (7) 1.1.5 接收任务 (7) 1.1.6 手动任务 (7) 1.1.7 邮件任务 (8) 1.1.8 Camel任务 (8) 1.1.9 Mule任务 (8) 1.1.10 决策任务 (9) 1.2构造 (10) 1.2.1 子流程 (10) 1.2.2 事件子流程 (11) 1.3泳道列表 (11) 1.4分支 (12) 1.4.1 排他分支 (12) 1.4.2 并行分支 (12) 1.4.3 包容分支 (13) 1.4.4 事件分支 (13) 1.5事件 (14) 1.5.1 定时器事件 (14) 1.5.2 信号事件 (14) 1.5.3 消息事件 (16) 1.5.4 错误事件 (16) 1.5.5 边界事件 (17) 1.5.6 中间事件 (18)

1.5.7 开始事件 (18) 1.5.8 结束事件 (18) 1.6属性元素 (18) 1.6.1 异步 (18) 1.6.2 排他 (19) 1.6.3 补偿 (19) 1.6.4 中断任务 (20) 1.6.5 分配 (21) 1.6.6 到期时间 (22) 1.6.7 表单 (22) 1.6.8 表达式 (24) 1.6.9 多实例 (25) 1.7监听器配置 (28) 1.7.1 执行监听器 (29) 1.7.2 任务监听器 (30) 1.7.3 事件监听器 (32) 1.7.4 全局事件监听器 (33) 二、workflow-service (34) 2.1数据更新逻辑 (34) 2.2方法表达式配置 (35) 2.3自定义外置表单 (36) 2.4事件监听器配置 (37) 2.5方法调用说明 (37) 三、常见问题 (37)

大学英语综合教程3 unit 3

Unit 3 Security Part Ⅰ Listening Comprehension Section A Directions: In this section, you will hear three news reports. At the end of each news report, you will hear two or three questions. Both the news report and the questions will be spoken only once. After you hear a question, you must choose the best answer from the four choices marked A), B) C) and D). Then mark the corresponding letter on Answer Sheet 1 with a single line through the centre. Questions 1 and 2 are based on the news item you have just heard. 1. A) All the schools were closed. B) 14 people were killed. C) A terrorist attack took place in one of the schools there. D) Many parents refused to send their children to school. 2. A) School administrators there also received terrorist threats. B) Schools were closed there, too. C) Many parents took a day off from work to care for their children at home. D) 700,000 students didn‘t come to school. Questions 3 and 4 are based on the news item you have just heard. 3. A) In the Arctic. B) In Washington D.C. C) In Montreal. D) In Quebec. 4. A) They live in Arctic in winter. B) Snow owl is the official bird of Quebec. C) They are often seen in Canada. D) They are not afraid of traffic on the road. Questions 5 and 7 are based on the news item you have just heard. 5. A) The major events of the Winter Olympics. B) The high cost of the Winter Olympics. C) The countries participating the Winter Olympics. D) The main attractions of the Winter Olympics. 6. A) At least $15 billion. B) At least $50 billion. C) At least $13 billion. D) At least $7 billion. 7. A) People involved in the project have taken some of the money. B) The likelihood of corruption was increased. C) Security measures cost a lot of money. D) The building of Stadiums cost a lot of money. Questions 9 to 12 are based on the conversation you have just heard. 9. A) Next Friday. B) Next year. C) Next Month. D) Next Monday. 10. A) Her mother. B) Her cousin. C) Her husband. D) Her son. 11. A) Because a civil war broke out in Mexico. B) Because the bird flu broke out in Mexico. C) Because the swine flu broke out in Mexico. D) Because there was an earthquake in Mexico. 12. A) Avoid direct contact with chickens, ducks and other birds.

Activiti工作流数据库表结构

Activiti数据表结构 目录 1ACTIVITI数据库表结构 ----------------------------------------------------------------------------------------------- 2 1.1数据库表名说明 ------------------------------------------------------------------------------------------------ 2 1.2数据库表结构---------------------------------------------------------------------------------------------------- 3 1.2.1Activiti数据表清单: ---------------------------------------------------------------------------------------- 3 1.2.2表名:ACT_GE_BYTEARRAY (通用的流程定义和流程资源)-------------------------------- 3 1.2.3表名:ACT_GE_PROPERTY (系统相关属性) ----------------------------------------------------- 4 1.2.4表名:ACT_HI_ACTINST (历史节点表) ------------------------------------------------------------ 5 1.2.5表名:ACT_HI_ATTACHMENT (附件信息)-------------------------------------------------------- 6 1.2.6表名:ACT_HI_COMMENT (历史审批意见表)-------------------------------------------------- 6 1.2.7表名:ACT_HI_DETAIL (历史详细信息)----------------------------------------------------------- 7 1.2.8表名:ACT_HI_IDENTITYLINK (历史流程人员表) ---------------------------------------------- 8 1.2.9表名:ACT_HI_PROCINST(历史流程实例信息)核心表---------------------------------------- 8 1.2.10表名:ACT_HI_TASKINST(历史任务流程实例信息)核心表------------------------------ 9 1.2.11表名:ACT_HI_VARINST(历史变量信息) ------------------------------------------------------ 9 1.2.12表名:ACT_ID_GROUP(用户组表) ------------------------------------------------------------ 10 1.2.13表名:ACT_ID_INFO (用户扩展信息表) ---------------------------------------------------- 10 1.2.14表名:ACT_ID_MEMBERSHIP(用户用户组关联表) -------------------------------------- 11 1.2.15表名:ACT_ID_USER(用户信息表) ------------------------------------------------------------ 11 1.2.16表名:ACT_RE_DEPLOYMENT(部署信息表)------------------------------------------------ 12 1.2.17表名:ACT_RE_MODEL (流程设计模型部署表) ----------------------------------------------- 12 1.2.18表名:ACT_RE_PROCDEF (流程定义表) ---------------------------------------------------- 13 1.2.19表名:ACT_RU_EVENT_SUBSCR (运行时事件) ------------------------------------------------- 14 1.2.20表名:ACT_RU_EXECUTION (运行时流程执行实例) ----------------------------------- 15 1.2.21表名:ACT_RU_IDENTITYLINK(身份联系) --------------------------------------------------- 15 1.2.22表名:ACT_RU_JOB(运行中的任务)---------------------------------------------------------- 16 1.2.23表名:ACT_RU_TASK(运行时任务数据表) ------------------------------------------------------ 16 1.2.24表名:ACT_RU_VARIABLE(运行时流程变量数据表) ----------------------------------------- 17 2ACTIVITI中主要对象的关系 -------------------------------------------------------------------------------------- 18

Java学习路线图-学习视频资料分享

Java学习路线图-学习视频资料分享 Java的火爆袭来,吸引了大批的初学者涉猎,想入行Java,却苦于自己没有基础,担心学不好。小编告诉你,这些担心都是浮云,你只是惧怕走进一个新天地,人都是一样的,面对自己不熟悉的领域总会有莫名的恐惧感。不是不可以,只是你缺乏的是勇敢迈出去的勇气。 小编整理了一份关于Java自学的学习路线图,希望帮助每一位想学习Java 的小伙伴快速成长为Java开发工程师。 第一阶段:Java基础 Java开发介绍 Java数组 Java面向对象 常用基础类 集合 IO流

异常 网络 反射 第二阶段:JavaWeb HTML5 CSS3 JavaScript MySQL使用JDBC连接池Servlet JSP AJAX jQuery Bootstrap 第三阶段:Java框架Maven Hibernate Spring Spring MVC MyBatis WebService

Activiti 第四阶段:Java + 云数据 Linux版本 astDFS MySQL优化 Nginx反向代理 Quartz 作业调度 Redis 高性能(Key-Value)数据库 Shiro 安全(权限)框架 Lucene&Solr全文检索 Zookeeper 分布式系统 MyCAT 大数据集群 Dubbo实现分布式架构 ActiveMQ 消息队列 分布式事务和单点登录 分布式框架原理(采用视频资料教学) 基于SpringMVC的集成单元测试MockMVC SpringBoot 快速构建JavaEE项目 Java自学书籍: 1、《Head First Java, 2nd Edition(中文版)》 这本书不仅内容丰富、有趣且通俗易懂,并且涵盖了所有Java 相关的基础

工作流Activiti的学习总结(十二) activiti官方十分钟快速学习

根据activiti官方提供的编写 1.财务部门填写月财务报告 2.股东审核月财务审计报告 流程图: 流程配置: <;?xml version=";1.0"; encoding=";UTF-8";?>; <;definitions xmlns=";https://www.sodocs.net/doc/5212035323.html,/spec/BPMN/20100524/MODEL"; xmlns:xsi=";https://www.sodocs.net/doc/5212035323.html,/2001/XMLSchema-instance"; xmlns:activiti=";https://www.sodocs.net/doc/5212035323.html,/bpmn"; xmlns:bpmndi=";https://www.sodocs.net/doc/5212035323.html,/spec/BPMN/20100524/DI"; xmlns:omgdc=";https://www.sodocs.net/doc/5212035323.html,/spec/DD/20100524/DC"; xmlns:omgdi=";https://www.sodocs.net/doc/5212035323.html,/spec/DD/20100524/DI"; typeLanguage=";https://www.sodocs.net/doc/5212035323.html,/2001/XMLSchema"; expressionLanguage=";https://www.sodocs.net/doc/5212035323.html,/1999/XPath"; targetNamespace=";https://www.sodocs.net/doc/5212035323.html,/bpmn20";>; <;process id=";financialReport"; name=";Monthly financial report reminder process";>; <;startEvent id=";startevent1"; name=";月财务报告审核开始";>;<;/startEvent>; <;!-- 采用用户组为accountancy编写财务报告 -->; <;userTask id=";usertask1"; name=";财务编写月财务报告"; activiti:candidateGroups=";accountancy";>;<;/userTask>; <;userTask id=";usertask2"; name=";股东审核月财务审计报告"; activiti:candidateGroups=";management";>;<;/userTask>; <;endEvent id=";endevent1"; name=";月财务报告审核结束";>;<;/endEvent>; <;sequenceFlow id=";flow1"; name=";"; sourceRef=";startevent1"; targetRef=";usertask1";>;<;/sequenceFlow>; <;sequenceFlow id=";flow2"; name=";"; sourceRef=";usertask1"; targetRef=";usertask2";>;<;/sequenceFlow>; <;sequenceFlow id=";flow3"; name=";"; sourceRef=";usertask2"; targetRef=";endevent1";>;<;/sequenceFlow>; <;/process>; <;bpmndi:BPMNDiagram id=";BPMNDiagram_financialReport";>; <;bpmndi:BPMNPlane bpmnElement=";financialReport"; id=";BPMNPlane_financialReport";>; <;bpmndi:BPMNShape bpmnElement=";startevent1"; id=";BPMNShape_startevent1";>; <;omgdc:Bounds height=";35"; width=";35"; x=";30"; y=";200";>;<;/omgdc:Bounds>; <;/bpmndi:BPMNShape>; <;bpmndi:BPMNShape bpmnElement=";usertask1"; id=";BPMNShape_usertask1";>;

Android官方开发教程中文版(二)

Android官方开发教程中文版 添加操作栏 添加操作栏 操作栏是你能为你的Activity实现的重要的设计元素之一,它提供了几种用户界面特性,使你的应用能够保持和其它应用的一致性,以便用户很快熟悉它。主要功能包括:1.用专门的空间为你的应用指定标识并且指示出用户在应用中的位置。 2.以可预测的方式访问重要的操作(如搜索) 3.支持导航和视图切换(使用选项卡或下拉列表) 本课程提供了关于操作栏基础知识的快速指南,要获得关于操作栏各种特性的更多信息,请参考“操作栏”指南。 设置操作栏 操作栏的最基本形式是为Activity显示标题以及在标题左边显示应用图标。即使是这种简单的形式,操作栏也有利于通知用户当前的位置,以及为你的应用保持一致性。 操作栏包括一个应用图标和Activity标题 设置一个基本的操作栏需要你的应用使用一个Activity主题并启用操作栏。如何获取这样一个主题取决于你的应用支持的最低Android版本。因此这节课根据你的应用支持的Android最低版本分为两个部分。 仅支持Android3.0及以上版本 从Android3.0开始(API级别11),操作栏被包含在所有使用Theme.Holo(或它的派生类)主题的Activity中,当targetSdkVersion或minSdkVersion的值大于等于11时,Theme.Holo 是默认主题。 因此,要在Activity中添加操作栏,只需简单地把这两个属性之一的值设为11或更高就可以了,如:

关于bpmn.io流程设计器

关于bpmn.io流程设计器 一、概要说明 例子分为两部分:视频例子和代码例子。 视频文件直观的展示了如何使用bpmn.io流程设计器绘制流程图。代码文件验证了使用bpmn.io绘制的流程图可以被activitiAPI正确解析。 视频文件名与代码文件名相对应。代码bpmn和svg文件都以my前缀开头。 经试验,bpmn.io流程设计器不支持(代码不能解析)直接指定Assignee,也不支持在usertask图元上使用流程变量指定Assignee。(实际上项目中也不会使用以上两种方法指定Assignee,因为是写死在xml中属于硬编码) 二、bpmn.io设计器使用 注意:bpmn.io设计器在画图的时候与eclipse不同的地方在与经常会使用【设置】按钮对选中的图元进行设置,包括类别的选择等。 三、根据activiti技术要点绘图 见视频文件

四、小结 1、activiti工作流中,如果一个任务完成后,存在多条连线,应该如何处理? 在连线中,使用流程变量。 当一个任务完成后,根据这几天连线的条件设置流程变量,例如${流程变量的名称==”流程变量的值”},{}符号是boolean类型,在完成任务的时候,设置流程变量,activiti引擎判断走哪条线。 2、activiti工作流中,排他网关和并行网关都能执行什么功能? 排他网关:分支,通过连线设置流程变量,activiti引擎判断执行哪条线,如果条件不符合,会执行默认的连线离开,注意:排他网关只能执行其中的一个流程。(排除其他流程) 并行网关:可以同时执行多个流程,直到总流程的结束。可以对流程进行分支和聚合,注意:流程实例和执行对象是不一样的。一个流程实例只有一个,但是执行对象可以存在多个。如果是单例流程(没 有分支和聚合),那么流程实例ID和执行对象ID是相同的。 执行对象(Execution)的含义就是一个流程对象(ProcessInstance)具体要执行的过程对象。 3、分配个人任务的三种方式 直接给值,在流程设计器中指定Assignee。bpmn.io不支持 使用流程变量${变量的名称==”变量的值”}。bpmn.io不支持 使用类,使用监听类(实现activiti接口),指定任务的办理人(setAssignee())。bpmn.io支持五、工作流思想 工作流的主要作用是分离了业务逻辑和过程逻辑,让业务开发人员专注于核心的业务开发,过程逻辑

相关主题