ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:546.03KB ,
资源ID:22758284      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22758284.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(activitiWord下载.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

activitiWord下载.docx

1、 Activiti EngineActiviti BPM的核心引擎 运行时核心组件,解析流程定义文件(.bpmn20.xml文件),将其转化为纯粹的内存Java对象,以供运行时各个功能使用; Activiti引擎,基于流程虚拟机(PVM)进行构建(关于PVM的详细介绍,参见8.1.2章节),是Activiti项目的绝对的底层核心组件。它可以直接运行原生的BPMN2.0规范格式的流程定义。是业内目前第一个,也是唯一的一个从建模到执行,完全按照BPMN2.0规范进行实现的BPM项目。这也是笔者选择它作为BPM开源产品介绍的最直接原因。Activiti引擎具备三个重要的特性。首先就是事件监听器。这个

2、特性允许引擎可以直接执行一个动作(即为流程图中的某个特定的事件,定义的一段java代码或脚本)。这意味着,开发人员可以利用特定的技术细节来装饰完善一个流程,而这个细节不会在流程图中显示。此特性提高了业务人员与技术人员之间的协作,而业务人员不用面对流程图中的技术问题。第二个特性是定制活动。Activiti引擎实现了对BPMN的支持,有很多可直接使用的活动类型。但是业务人员仍旧有可能需要一些与这些已定义的活动不匹配的活动类型。在这种情景下,开发人员可以采用java代码编写一个定制的活动,用来实现业务人员所描述的复杂行为。这个功能应该说是非常好用的功能,因为对于商业产品来讲,活动类型都是定义好的。是

3、一个封装的黑盒子,是不可能提供定制功能的。另一个创新的特性是,它提供了对某些冗长的BPMN规范进行实现的快捷方式或捷径。例如采用比BPMN的XML格式更紧凑的XML描述格式。而这种XML格式不是Activiti的专有扩展,它可以被转换为有效的BPMN XML。所以说,Activiti的流程定义,并不是百分百的BPMN的XML格式。协作工具(Collaboration Tool)组件 Activiti Cycle完全是一种新类型的BPM组件。它是一个用来促进业务人员、开发人员和IT操作人员协作的web应用程序。目前,大多数的BPM产品都关注于怎样将业务人员创建的分析流程模型转换为可执行流程模型。

4、实际的情况就是,这些BPM产品为业务人员和开发人员提供独立的工具,但是对于他们之间的协作并没有提供很好的支持。在现实的场景中,业务文档有业务人员所持有,而软件程序由开发团队所管理,被部署的软件应用则被IT管理人员所管理。三者之间不能很好的协作。我们可以想象这样一个场景,业务经理用文档来维护需求和visio格式的流程图,开发人员管理可执行的流程和大量的java源文件,IT维护人员管理部署在tomcat中的.war文件和存储在Activiti数据库中的流程。Activiti Cycle首先分为左右两个区域,左侧区域是所有交付物的浏览器,这些交付物存储在仓库中。包括: 一个网络驱动器,例如Visio

5、n图,图片,word文档,excel图表等;一个业务模型仓库,例如Signavio建模器中包含的BPMN流程模型;一个SVN仓库,包含java源文件和可执行的BPMN流程;一个包含业务文档的maven仓库;Activiti实例,包含一系列被部署的各个版本的交付组件; 右侧区域,则分为上中下三个部分,分别是左侧选中交付物的具体明细(包含查看、设定所有人、增加关联链接)、工作区域和讨论区。现在业务分析员、开发人员和维护人员,可以在为他们自己提供的区域内,利用相关工具进行工作,而Activiti Cycle则负责组织他们的协作。Activiti API1. ProcessEngineprocessE

6、ngine=ProcessEngines.getDefaultProcessEngine();2. 3. RuntimeServiceruntimeServiceprocessEngine.getRuntimeService();4. RepositoryServicerepositoryServiceprocessEngine.getRepositoryService();5. TaskServicetaskServiceprocessEngine.getTaskService();6. ManagementServicemanagementServiceprocessEngine.getM

7、anagementService();7. IdentityServiceidentityServiceprocessEngine.getIdentityService();8. HistoryServicehistoryServiceprocessEngine.getHistoryService();9. FormServiceformServiceprocessEngine.getFormService();通过ProcessEngineBuilder读取activiti的配置文件,就可以生成流程引擎实例。通过流程引擎实例processEngine,我们就可以通过getXXXService

8、()取得各种包含workflow/BPM方法的service。RepositoryService:提供方法获取各种流程和部署文件的信息.TaskService :提供对任务相关的各种操作identityService :管理用户和用户组。FormService :获取或者绑定数据到流程实例上RuntimeService :提供操作部署文件,流程文件和流程实例的方法ManagementService :提供管理员对流程引擎的监控,和流程引擎服务应用无关。HistoryService :提供正在执行和过去执行的各种流程实例信息 Activiti.cfg.xml文件内必须包含一个Id为process

9、EngineConfiguration的 bean。processEngineConfiguration对象可以通过解析xml文件得到也可以通过java代码得到ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration(); processEngineConfiguration.setJdbcDriver(com.mysql.jdbc.Driver); processEngineConfiguration

10、.setJdbcUrl(jdbc:mysql:/localhost:3306/activiti?autoReconnect=true processEngineConfiguration.setJdbcUsername(root processEngineConfiguration.setJdbcPassword(0000 processEngineConfiguration.setDatabaseSchemaUpdate(true processEngineConfiguration.setJobExecutorActivate(false); ProcessEngine processEn

11、gine = processEngineConfiguration.buildProcessEngine(); System.out.println(processEngine.toString(); 要根据你在build.*.properties文件指定的属性来创建数据的配置文件,在setup文件内运行ant cfg.create,可以在setup/build/activiti.cfg内找到生成的配置文件。 processEngine以及那些服务对象都是线程安全的。ProcessEngines.getDefaultProcessEngine()会在第一次被调用时初始并构建 process e

12、ngine,接下来对该方法的调用返回的都是同一个流程引擎。利用 ProcessEngines.init()、ProcessEngines.destroy()可以正确创建、关闭流程引擎。 流程初始化:xml文件中流程定义的id属性(这个id 接下来可以通过RuntimeService的startProcessInstanceByKey 方法来启动该流程定义的一个新流程实例。这个方法总是选取流程定义的最新部署版本)作为流程定义的key属性;xml文件中流程定义的name属性作为流程定义的name属性,如果不指定name属性,那么id属性作为name;带有特定key的流程第一次被部署时,被分配的版本

13、号为1,同一key值的流程定义的后续部署,版本号会被设置为比当前最大的部署版本号大1的值,key属性用来区分流程定义;流程定义的id属性被设置为 processDefinitionKey : processDefinitionVersion : generated-id ,其中generated-id是唯一性的数字,用来确保缓存在集群环境下流程定义id的唯一性。 部署流程:1.流程定义将存储到为Activiti引擎配置好了的持久化数据仓库中。因此通过我们的部署业务流程,就确保了在重启引擎后也能获得该流程定义。2.BPMN2.0流程定义文件会被解析到一个内存对象模型,可以通过Activiti A

14、PI对它进行操作。部署“1. 使用activiti Probe部署2. 编程式部署 String barFileName = path/to/process-one.bar; ZipInputStream inputStream = new ZipInputStream(new FileInputStream(barFileName);repositoryService.createDeployment() .name(process-one.bar) .addZipInputStream(inputStream) .deploy();3. 使用ant部署 fileset dir=.inclu

15、de name=activiti-cfg.jar/your-db-driver.jar/fileset$activiti.home/libactiviti-engine-$activiti.version.jaribatis-sqlmap-*.jar/classpath/taskdefdeploy-bar file=./yourprocess.bar / ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(financialReport将创建一个流程实例,并首先通过start事件。通过start事

16、件后,流程会沿着start事件的所有输出流执行,执行到第一个任务。此时activiti引擎会向持久化数据库中存储一个任务。此时,关联在该任务上的用户或组的分配得以解析,并且也被存储到数据库中。Activiti引擎会继续流程的执行步骤直到流程进入一种等待状态,比如用户任务。在这样的一种状态,流程实例的当前状态被存储到数据库中。流程会保持该状态直到所有用户决定完成其任务。那时,流程引擎会继续执行流程直到流程进入一个新的等待状态或流程终点。 事件用于对发生在流程生命周期的事情进行建模。事件总是被形象成一个圆圈。存在两种主要的事件类型:捕获事件和抛出事件。 捕获:流程执行到该事件时,会等待事件触发。事

17、件触发类型由内部图标或xml中的类型声明来定义。捕获事件视觉上可以通过白色的图标区分 抛出:流程执行到该事件时,事件就会触发。该事件触发的类型由内部图标或xml中的类型声明来定义。黑色图标区分。 Start事件:总是捕获型的,从概念上将,该事件会一直等待直到触发发生。Activiti特有属性:formKey和initiatorActiviti:formKey 指向一个用户必须在启动新流程实例时填写的表单模板。可以包含任何文本,用于标示你的表单。但对于内置的表单渲染,Activiti:formKey的值最好是所在的同一个流程归档文件内的资源的引用。startEvent id=request ac

18、tiviti:formKey=org/activiti/request.form None Start事件:没有为启动流程实例指定触发器,这意味着流程引擎不能预期什么时候流程实例要被启动。None start事件使用在通过调用startProcessInstanceByXXX方法启动流程实例ProcessInstance processInstance = runtimeService.startProcessInstanceByXXX();子流程总是使用none start事件。由不带内图标的圆表示Xml表示:不带子元素的普通start事件声明:start name=my start eve

19、nt Timer start事件用于在给定的时间点创建流程实例。它可以用在只启动一次的流程中,也可以用你在特定时间间隔下启动的流程。子流程不能用timer start事件。theStarttimerEventDefinitiontimeDate2011-03-11T12:13:14/timerEventDefinition/startEvent End事件:结束事件总是抛出型的。这意味着当流程执行到结束事件时,有一个结果会被抛出。结果的类型是以事件的内部黑色图标来表示的。 None End事件:意味着没有指定在进入该事件时抛出的结果。这样,流程引擎除了结束当前的执行路径不会在执行任何其他操作。

20、Xml表示为没有子元素的普通的end事件的声明。不带内部图标的粗边框圆:endEvent id=endmy end event Error End事件:当流程执行到error end事件时,会结束当前的执行路径,并抛出error。Error可以被与之匹配的中间边界error事件捕获。如果没有找到匹配的边界error事件,默认会使用none end事件。Xml表示为带有errorEventDefinition子元素的end事件。图标为内有error图标的特殊end事件myErrorEndEventerrorEventDefinition errorRef=myError/endEvent 定时器

21、事件:Timer事件是被定义的定时器触发的事件。可以作为start事件、internediate事件或boundary事件来使用。只有开启job executor时,定时器事件才能被触发(即,需要在activiti.cfg.xml中将jobExecutorActivat设置为true,默认为false)。定时器只能有一个下面的元素:1. timeDate:该格式以ISO 8601格式指定了触发事件的确定时间2. timeDuration:指定定时器事件在触发前运行多长时间,timeDurationP10D3. timeCycle:指定循环的时间间隔timeCycleR3/PT10H示例:bou

22、ndaryEvent id=escalationTimer cancelActivity= attachedToRef=firstLineSupport$duration 顺序流sequenceFlow id=flow1 sourceRef= targetRef=theTask 带条件的顺序流:可以在顺序流上定义条件。当顺序流左侧是BPMN2.0的活动时,就会计算输出顺序流上的条件。选取条件成立的输出顺序流来执行。带条件的顺序流是以xml中含有conditionExpression子元素的普通流来表示。目前仅支持tFormalExpression,目前conditionExpression只能

23、使用UEL,在此使用的表达式的解析的结果必须是布尔类型的值。flowconditionExpression xsi:type=tFormalExpression!CDATA$order.price 100 & order.price /conditionExpression/sequenceFlow 默认顺序流:所有的BPMN2.0任务以及getways都可以有一个默认的顺序流。只有当没有其他顺序流被选取的情况下,才选取该顺序流。exclusiveGateway id=exclusiveGwExclusive Gateway default=flow2task1$conditionAtask2flow3task3$conditionB 单一分支(Exclusive Gateway)当多个顺序流条件为true的情况下,xml中最

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1