您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > jBPM4.4-API-中文文档
1.工作流基础1.1.工作流相关概念工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。工作流管理系统(WfMS,WorkflowManagementSystem)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。工作流管理系统是定义、创建、执行工作流的系统,应能提供以下三个方面的功能支持:1.定义工作流:包括具体的活动、规则等2.运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度3.运行交互功能:指在工作流运行中,WfMS与用户(活动的参与者)及外部应用程序工具交互的功能。一、定义工作流二、执行工作流采用工作流管理系统的优点1.提高系统的柔性,适应业务流程的变化2.实现更好的业务过程控制,提高顾客服务质量3.降低系统开发和维护成本工作流框架有:Jbpm、OSWorkflow、ActiveBPEL、YAWL等OA(办公自动化)主要技术之一就是工作流。1.2.开源工作流jBPM4.4介绍jBPM即javaBusinessProcessManagement,是基于java的业务流程管理系统。jBPM是市面上相当流行的一款开源工作流引擎,引擎底层基于ActiveDiagram模型。jBPM4.4使用了hibernate(3.3.1版),因此可以很好的支持主流数据库。jBPM4.4共有18张表。jBPM官方主页:准备jBPM4.4环境2.1.jBPM4.4所需环境jBPMrequiresaJDK(standardjava)version5orhigher.:下载相关资源1,jBPM下载地址:,Eclipse下载地址(EclipseIDEforJavaEEDevelopers(163MB),Version:3.5):=/technology/epp/downloads/release/galileo2.3.安装流程设计器(GPD,Eclipse插件)GPD(GraphicalProcessDesigner)是一个Eclipse插件。安装方法说明(jBPM4.4UserGuide,2.11.2.InstalltheGPDpluginintoeclipse):Help--InstallNewSoftware...ClickAdd...IndialogAddSitedialog,clickArchive...Navigatetoinstall/src/gpd/jbpm-gpd-site.zipandclick'Open'ClickingOKintheAddSitedialogwillbringyoubacktothedialog'Install'SelectthejPDL4GPDUpdateSitethathasappearedClickNext...andthenFinishApprovethelicenseRestarteclipsewhenthatisasked查看是否成功安装了插件:WindowPreference中是否有JbossjBPM项。2.4.在Eclipse中添加jPDL4.4Schema校验流程定义文件的xsd文件的路径为:JBPM_HOME/src/jpdl-4.4.xsd。添加到Eclipse中的方法为(jBPM4.4UserGuide,2.11.5.AddingjPDL4schematothecatalog):ClickWindow--PreferencesSelectXML--XMLCatalogClick'Add...'The'AddXMLCatalogEntry'dialogopensClickthebuttonwiththemap-iconnexttolocationandselect'FileSystem...'Inthedialogthatopens,selectfilejpdl-4.4.xsdinthesrcdirectoryofthejBPMinstallationroot.Click'Open'andcloseallthedialogs2.5.准备jBPM4.4的开发环境2.5.1.添加jBPM4.4的jar包1.${JBPM_HOME}/jbpm.jar(核心包)2.JBPM_HOME/lib/*.jar,不添加以下jar包:servlet-api.jar,junit.jar。其中junit.jar一定不要添加,因为是3.8.2版本,与我们使用的junit4有冲突。3.所使用的数据库对应的驱动的jar包(第2步所添加的jar包中已包含mysql的jdbc驱动jar包)。2.5.2.添加并定制配置文件1.配置文件可以从JBPM_HOME/examples/src/中拷贝:jbpm.cfg.xml、logging.properties、jbpm.hibernate.cfg.xml。2.修改logging.properties中的日志输出级别为WARNING:java.util.logging.ConsoleHandler.level=WARNING3.修改jbpm.hibernate.cfg.xml中的数据库连接信息。如果使用MySql,使用的方言一定要是org.hibernate.dialect.MySQL5InnoDBDialect。4.数据库连接编码一定要是UTF-8。否则可能会在部署含有中文字符的流程定义时会抛异常,说sql语法错误。说明:如果要改变jbpm.hibernate.cfg.xml的文件名称,需要做:1、从JBPM_HOME/src/中拷贝jbpm.tx.hibernate.cfg.xml放到工程的src/下,然后进行修改。2、修改jbpm.tx.hibernate.cfg.xml中的hibernate主配置文件的路径配置(指定的是相对于classpath的相对路径)。2.5.3.初始化数据库1,方法一:执行sql脚本文件${JBPM4.4_HOME}/install/src/db/create/jbpm.*.create.sql2,方法二:使用Hibernate的自动建表,在jbpm.hibernate.cfg.xml中配置:hibernate.hbm2ddl.auto=update。3.核心概念与相关API(ServiceAPI)3.1.概念:Processdefinition,processinstance,execution3.1.1.ProcessdefinitionProcessDefinition,流程定义:一个流程的步骤说明。如一个请假流程、报销流程、借款流程等,是一个规则。例:3.1.2.ProcessinstanceProcessInstance,流程实例:代表流程定义的一次执行。如张三昨天按请假流程请了一次假。一个流程实例包括了所有运行阶段,其中最典型的属性就是跟踪当前节点的指针。3.1.3.ExecutionExecution,执行:一般情况下,一个流程实例是一个执行树的根节点。使用树状结构的原因在于,这一概念只有一条执行路径,使用起来更简单。业务API不需要了解流程实例和执行之间功能的区别。因此,API里只有一个执行类型来引用流程实例和执行。假设汇款和存档可以同时执行,那么主流程实例就包含了2个用来跟踪状态的子节点:4.1.ProcessEngine与ServiceAPI4.1.1.Configuration与ProcessEngineInteractingwithjBPMoccursthroughservices.TheserviceinterfacescanbeobtainedfromtheProcessEnginewhichisbuildfromaConfiguration.AProcessEngineisthreadsafeandcanbestoredinastaticmemberfield.使用默认的配置文件(jbpm.cfg.xml)生成Configuration并构建ProcessEngine:ProcessEngineprocessEngine=newConfiguration().buildProcessEngine();或是使用如下代码获取使用默认配置文件的、单例的ProcessEngine对象:ProcessEngineprocessEngine=Configuration.getProcessEngine();或是使用指定的配置文件(要放到classPath下):ProcessEngineprocessEngine=newConfiguration().setResource(my-own-configuration-file.xml).buildProcessEngine();4.1.2.jBPMServiceAPIjBPM所有的操作都是通过Service完成的,以下是获取Service的方式:RepositoryServicerepositoryService=processEngine.getRepositoryService();ExecutionServiceexecutionService=processEngine.getExecutionService();TaskServicetaskService=processEngine.getTaskService();HistoryServicehistoryService=processEngine.getHistoryService();ManagementServicemanagementService=processEngine.getManagementService();各个Service的作用:RepositoryService管理流程定义ExecutionService管理执行的,包括启动、推进、删除Execution等操作TaskService管理任务的HistoryService历史管理(执行完的数据管理,主要是查询)IdentityServicejBPM的用户、组管理ManagementService4.1.3.API风格方法调用链每一个方法都是流程有关的一个业务操作,默认是一个独立的事务。4.1.4.查询的有关API(风格)功能说明相应的查询API查询“流程定义”ProcessDefinitionQueryprocessDefinitionQuery=processEngine.getRepositoryService().createProcessDefinitionQuery();查询“执行对象”ProcessInstanceQueryprocessInstanceQuery=(流程实例)processEngine.getExecutionService()//.createProcessInstanceQuery();查询“任务”TaskQuerytaskQuery=//processEngine.getTaskService()//.createTaskQuery();查询“执行历史”(流程实例历
本文标题:jBPM4.4-API-中文文档
链接地址:https://www.777doc.com/doc-5576470 .html