activiti流程开发基本步骤 activiti 流程开发指南 activiti 主要接口 三、如何实现一个业务流程 四、如何管理所有流程与实例 五、开发流程 什么是BPMN 首先BPMN规范是由标准组织BPMI发布的。BPMN 月。此规范展示了BPMI 组织两年多的努力成果。BP MN的主要目标就是 要提供被所有业务用户理解的一套 标记语言,包括业务分析者、软件开发者以 及业务管理者与监察者。BP MN还将支持生成可执行的BPEL4WS语言。所以, BPMN在业务流程设计与流程实现之间搭建了一条标准化的桥梁。 BPMN定义了 业务流程图,其基于流程图技术,同时为创建业务流程操作的图形 化模型进行了裁减。业务流程的模型就是图形化对象的网图,包括活动(也可以说工 作)和定义操作顺序的流控制。 业务流程图由一系列的图形化元素组成。这些元素简化了模型的开发,且业务分析者看上去非常熟悉。这些元素每个都有各自的特性,且与大多数的建模器类 似。比如,活动是矩形,条件是菱形.应该强调的是:开发BPMN的动力就是为了在 创建业务流程模型时提供一个简单的机制,同时又能够处理来自业务流程的复杂 性。要处理这两个矛盾的需求的方法就是将标记的图形化方面组织分类为特定的 类别.这里提供标记类别中的一小部分,以便 业务流程图的读者可以简单地识别出 元素的基本类型从而理解图形.以下是四种基本的类型: 3)泳道 activiti 流程开发基本步骤 4)人工信息 BPMN2.0 概要: 二、activit i主要接口 ProcessE ngi ne pro cessEng ine es。getDe fau tProcessEngin RuntimeSer vice untimeService proce ssEngin e.getRun timeServ ice();\ufeebR ep osi ryServicerep osit oryS ervice proces sE ngine.ge tR eposit oryService(); TaskServ ice t ask Service = proces sEngine。ge tTaskSer vice(); Manage ment Service manage ment Se rvice processEn gine.ge tManag eme ntService();\ufeebIdent yService identit yS ervice ssEngine.ge tIden tity Service();\ufeebHistory Se rvi ce his toryService proces sEn gine.getHisto ryS ervice();\ufeebFormService mService = proc essEngine.ge tFormServic Process Eng ines。getDef aultP rocessEn gine()会在第一次调用时 初始化 并创建一个流程引擎,以后再调用就会返回相同的流程引擎。 使用对应的方法可以 创建和关闭所有流程引擎:Proc essEn gines。ini rocessEngin es。des troy()。 activiti 流程开发基本步骤 rocessEn gines 会扫描所有ac tiviti.cfg.xml ctiviti—co nt ex t.xml 文件。 对于activiti。cfg。xml 文件,流程引擎会使用A ctiviti 的经典 方式构建:Pr oce ssE ngin eConfi guration.create ProcessEng ineC onfi guration FromInp utStream(inpu tSt ream).buil dPro ce ssEngine()。 对于activiti—c onte xt.xml 文件,流程引擎会使用Sprin g方法 构建:先创建一个Spring 的环境, 然后通过环境获得流程引擎。 所有服务都是无状态的。这意味着可以在多节点集群环境下运行A ctivi ti,每个节 点都指向同一个数据库, 不用担心哪个机器实际执行前端的调用。 无论在哪里执 行服务都没有问题 Re po sitoryS ervice 可能是使用Activit i引擎时最先接触的服务。 它提供了 管理和控制发布包和流程定义的操作。 这里不涉及太多细节,流程定义是BPMN 2.0 流程的java 实现。 它包含了一个流程每个环节的结构和行为. 发布包是Ac iviti引擎的打包单位。一个发布包可以包含多个B PMN 2.0 ml文件和其他资 开发者可以自由选择把任意资源包含到发布包中.既可以把一个单独的B PMN xml文件放到发布包里,也可以把整个流程和相关资源都放在一起。 (比如,'h —proces se s'实例可以包含hr 流程相关的任何资源). 可以通过Re posi oryServ ice来部署这种发布包. 发布一个发布包,意味着把它上传到引擎中,所 有流程都会在保存进数据库之前分析解析好。 从这点来说,系统知道这个发布包的 存在,发布包中包含的流程就已经可以启动了. 除此之外,服务可以 暂停或激活发布包,对应全部和特定流程定义。 暂停意味着它们不能再执行任何操作了,激活是对应的反向操作。 获得流程定义的pojo版本, 可以用来通过jav a解析流程,而不必通过 xml。 正如Reposito rySer vice 负责静态信息(比如,不会改变的数据,至少是不怎么改 untimeS erv ice 正好是完全相反的。它负责启动一个流程定义 的新实例. 如上所述,流程定义定义了流程各个节点的结构和行为。 流程实例就是这样 一个流程定义的实例.对每个流程定义来说,同一时间会有很多实例在执行。 Runtime Se rvice 也可以用来获取和保存流程变量。 这些数据是特定于某个流程实例的, 并会被很多流程中的节点使用 (比如,一个排他网关常常使用流程变量来决定选择哪条 路径继续流程)。 Run timeservi ce 也能查询流程实例和执行. 执行对应BPMN 2.0 ken'.基本上执行指向流程实例当前在哪里。最后,RuntimeSer vice activiti 流程开发基本步骤 可以在流程实例等待外部触发时使用,这时可以用来继续流程实例。 流程实例可以 有很多暂停状态,而服务提供了多种方法来’触发’实例, 接受外部触发后,流程实例就 会继续向下执行。 任务是由系统中真实人员执行的,它是Act iviti 这类BPMN引擎的核心功能之一。 所有与任务有关的功能都包含在Tas kServi ce中: 认领并完成一个任务。认领意味着一个人期望成为任务的执行者, 即这个用户会完成这个任务。完成意味着“做这个任务要求的事情". 通常来说会 有很多种处理形式。 Iden ti tyServi ce非常简单.它可以管理(创建,更新,删除,查询。