jBPM4.4详细讲解
JBPM4.4

JBPM4.4应用开发——入门篇2010-10-27 20:38:24标签:JBPM工作流工作流程入门原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。
否则将追究法律责任。
/1931202/411612首先简单说说JBPM——java Business Process Management (java 业务流程管理)jBPM是一个框架、一堆开放的源代码。
而非一套“应用程序”。
jBPM的流程引擎可以看做是一个java工程——若干java类、依赖库和配置文件;使用和学习jBPM需要如下条件:1.jBPM的流程定义和运行时的上下文需要被存储到关系型数据库中——可以是基于调试目的的内存数据库HSQLDB,也可以是真正的持久化数据库(MySql,Oracle,PostgreSql,Sybase等等);2.jBPM的流程设计一般都需要一个基于客户端的图形化流程设计器软件,当然在jBPM4版本以后可以支持在web上做流程设计(这要归功于Sigvio项目)3.最终,基于jBPM开发出来的应用程序一般都会被部署到一台应用服务器中,以便服务于来自web的访问、监控和管理等。
注意:在jBPM4.3以后,几乎所有的准备工作(安装数据库,建表,安装应用服务器,安装图形化设计器插件等)jBPM软件包的发布者都帮我们做好了。
只要通过Ant脚本“一键获取”所需要的jBPM4整套开发、运行和管理环境。
在安装jBPM之前首先要安装JDK和Ant。
快速开始--------------------------------------------------------一、1.打开cmd命令控制台:进入到${jbpm.home}/install2.运行脚本:ant demo.setup.tomcat或ant.demo.setup.jboss使用这两个服务器都可以。
具体这个命令做了上面事:请查看install目录下的build.xml文件中的目标。
jbpm4.4与ssh集成配置

1. JBPM简介JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的基于java实现的流程业务处理框架(Business Process Management)。
jBPM是公开源代码项目,它使用要遵循Apache License。
支撑企业的流程性业务应用:解释业务规则,使得协作自动化2.JBPM最大特色就是它的商务逻辑定义没有采用目前的一些规范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。
jPdl认为一个商务流程可以被看作是一个UML状态图。
jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换,过图型化的流程定义,直观地描述业务流程。
jBPM的另一个特色是它使用Hibernate来管理它的数据库。
Hibernate是目前Java领域最好的一种数据存储层解决方案,只要是Hibernate 支持的数据库,jBPM 也就支持。
通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。
3.JBPM带来的益处实现了无纸化的工作模式;过程可监控:便于对执行过程的跟踪和监控数据可管理:便于对数据进行检索、分析可靠性:减少人-人交互的主观错误的机率4.JBPM常见应用领域行政管理:行政、事业单位、大中型(国有)企业产品研发和制造:用于对整个研发、生产制造过程的管理和调度电子商务:订单处理其他如大型内容管理系统的多步审核5.JBPM常见场景公文流转、行政审批、订单处理、产品研发、制造过程其他需要多个角色协作、多步完成的活动6.JBPM模型说明加载流程定义:定义工具可以系统提供,也可以只是读取定义结果启动流程:启动选定的流程,创建流程实例办理任务(流程的每一步):执行流程的每个步骤(不一定都需要人参与:自动任务节点)记录流程的状态:对状态的管理是工作流引擎的主要职责7.JBPM主要概念流程定义:预先定义的业务流转逻辑流程实例:业务的一次实际流转过程参与者:任务的执行者活动(任务):组成流程定义的节点活动实例:组成流程实例的元素流转:从一个节点到另一个节点这一行为工作列表:当前需要办理的任务集合工作流引擎:工作流的核心组件,对流程实例、任务实例以及其状态进行管理8.JBPM套件的组成jPDL Designer:流程定义设计器,流程建模工具jPDL Library:流程执行引擎WebConsole:参与者和流程执行环境的交互界面,流程运行期间的监控工具9. 使用jBPM开发工作流的一般流程1) jBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库。
jbpm4 数据库结构关系图 JBPM数据库分析

jbpm4 数据库结构关系图JBPM数据库分析持久化基础知识持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。
我们可以这样理解:在一定周期内保持不变就是持久化,持久化是针对时间来说的.数据库中的数据就是持久化了的数据,只要你不去删除或修改.Session会话中Session对象变量也是不变的,是Session容器中持久化对象持久化的方式有很多种,根据周期不同有,page,Session,Application,对象序列化机制对于需要将对象的状态保存到文件中,而后能够通过读入对象状态来重新构造对象,恢复程序状态,对象序列化的过程是对象持久化的方法之一,把对象保存到文件中.广义上说我们需要持久化是由于内存的易失性和过于昂贵造成的。
JBPM流程引擎的持久化有什么特点JBPM流程引擎的持久化层使用的当前流行的ORM框架hibernate,得益于hibernate的一些强大特性,导致JBPM也具有了这样的一些特性,比如通过hibernate的HSQL,我们可以专注我们的业务逻辑,而不用考虑不同的数据库之间T-SQL的差异,这样是jbpm具备一套代码,可以平滑的从不同数据库间进行更换。
JBPM需要持久化基于以下特点1.工作流作为典型的交互性应用,其必须精细控制执行过程,并记录执行的状态,在用户唤醒流程时,能够在流程持久化的那个点继续运行。
同时在流程挂起时,我们将相关数据持久化,也有性能和故障恢复的考虑。
2.流程引擎的运行本身也会产生相关的对象(流程实例、Execution等),需要持久化到数据库3.流程引擎需要记录相关的业务数据4.流程引擎需要记录相关的执行历史数据JBPM流程引擎的数据库结构图各个数据表的功能简单介绍流程部署jbpm4_deployment:发布的记录表,通过dbid跟后两个表进行关联。
Jbpm4-hibernate-spring-整合入门例子

整合例子(附完整的请假流程例子,jbpm基础,常见问题解决)jbpmhibernatespringstrutsvariables任务整合例子(附完整的请假流程例子)。
1. jbpm4.4 测试环境搭建整合环境搭建3. jbpm4.4 基础知识4. 整合过程中常见问题的解决5. 请假流程例子(s2sh+jbpm )6. 总结及参考文章jbpm4.4 测试环境搭建刚接触jbpm 第一件事就是快速搭建环境,测试jbpm 所给的例子。
Jbpm 是一个工作流引擎框架,如果没有javaEE 开发环境,jbpm 也提供了安装脚本(ant ),一键提供安装运行环境。
同时也可以将jbpm 整合到eclipse 或者myeclipse 中。
快速搭建环境的步骤是:1. 安装jbpm-myeclipse 插件,这个插件随jbpm4.4 一起发布,位于jbpm-4.4/install/src/gpd 目录下,这个安装好后,就可以在myeclipse 中编辑流程图了(可视化流程设计)在myeclipse->help->myeclipse configuration centre->software->add site->add from archive file 选择jbpm-4.4/install/src/gpd 下的jbpm-gpd-site.zip安装这个插件应该注意断网,避免其到网上更新。
同时注意:需要选择双击每一项,确保每一项被加入到了(说明:事实上不用选完,带source 的部件不用选择,为了省事就全部选择了)提示:如果安装时不断网,jbpm 插件会自动到网上更新。
同时会弹出一个错误窗口,安装速度异常缓慢。
安装完成后,myeclipse 的references 菜单会变得面目全非。
2. 搭建jbpm 运行环境。
3 .然后配置jpdl 支持4. 确定是否配置jbpm 正确在myeclipse->new->other->关于myeclipse 中配置jbpm 请参考jbpm 的帮助文档,文档给的是在eclipse 下配置jbpm 。
jBPM4.4详细讲解

jBPM4.4一、什么是jBPMJBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。
同时它还能被部署在任何一款JAVA应用服务器上。
java Business Process Management :工作流,工作流引擎注:记得j小写,因为j代表java,与Log4j中j一样工作流管理系统不止一中,如还有Intaliol BPMS …但JBoss jBPM灵活性且扩展性高。
jBPM项目于2002.3由Tom Baeyens 发起,2003.12发布1.0版本,2004年10.18发布2.0,并在这天加入了JBOSS组织-→被RedHat公司二、能干什么提供工作流的实现,帮助更好的进行BPM三、jBPM有什么,简介jBPM的Service API 各种服务1:ProcessEngine:流程引擎。
并不负责具体的业务,而是用于获取各种Service。
2:RepositoryService:流程资源服务的接口,如流程定义发布、查询、删除等。
3:ExecutionService:用于操作流程实例的服务,可以进行流程实例发布、查询、流程推进、设置流程变量等操作。
4:TaskService:用于操作人工任务的服务,可以进行任务创建、查询、获取、提交完成、保存、删除等操作。
5:HistoryService:用于操作流程历史的服务,提供对流程历史库(就是已经完成的流程实例)的操作。
比如:历史流程实例,历史活动实例等。
6:IdentityService:用于操作用户、用户组以及成员关系的服务7:ManagementService:流程管理控制服务的接口,只提供异步工作(Job)相关的执行和查询操作。
四、Myeclipse8.5 搭配开发环境1.jbpm-4.4.zip 下载完2.myeclipse→help→Myeclipse Configuration Center →add…….3.找到\jbpm-4.4\install\src\gpd\jbpm-gpd-site.zip 安装这个插件4.记得不要联网安装,不要选source文件5.安装完后window→JBoss jBPM→runtime Location→add 添加jbpm的路径6.添加lib下所有jar包,如果你使用的是tomcat6.0则:要把Juel-api.jar ,juel-impl.jar,juel-engine.jar 拷到tomcat lib 下并把原来的el-api.jar删掉项目中就不要再导上面三个包五、修改配置文件1、将example中的下列配置文件拷贝到java项目的src目录下:jBPM.cfg.xml、jBPM.hibernate.cfg.xml、jBPM.mail.properties、jBPM.mail.templates.xml、process_forms.css2、在以上配置文件中的jBPM.hibernate.cfg.xml,实际上就是我们熟悉的hibernate.cfg.xml,这里,要修改为连接我们的数据库。
jBPM4.4:ProcessDefinitionProcessInstanceExecutionTask关系和区别

实际操作下来也是如此:
?刚开始的时候,ExectionId与ProcessId是相同的;
?如果流程执行中,每时刻只有一个步骤(是否可以说任务)在处理,则ExectionId和ProcessId是相同的,
?但是当同一时刻有多个任务要处理,譬如上述的定时器、或者进入fork/join流程,这个时候ExectionId和ProcessId就不同。
一个Process Instance(流程实例)是一个ProcessDefinition(流程定义)的执行;
一个Process Instance(流程实例)可以有许多同时执行的步骤(concurrent executions)
执行步骤组成了以ProcessIntance(流程实例)为根节点(root)的结构化树
可以理解为Execution为执行路径,当同时有几个路径在执行,ExecutionId就和ProcessId不同了
?而且:Execution是ProcessInstance的基类
具体的表现就是
Java代码
1.// get execution service
2.ExecutionService executionService = processEngine.getExecutionService();
在ExecutionService中,start的是ProcessInstance。
在ProcessInstance的JavaDoc中把ProcessInstance和Execution区别讲了出来:
ProcessInstance的Javadoc 写道
a process instance is one execution of a process definition. One process instance can have many concurrent executions. Executions are structured in a tree of which the ProcessInstance is the root.
基于S2SHJBPM44的学生请...

基于S2SH+JBPM4.4的学生请假系统仅供参考,请勿照搬职责分工表技术集成(S2SH+JBPM4.4),业务逻辑设计与实现,报告撰写界面设计与实现(jQuery),S2SH相关问题共同讨论数据库设计及建表,参与逻辑设计与问题讨论姓名:学院:计算机科学与技术专业:软件工程指导老师:目录1 前言 (1)1.1 背景介绍 (1)1.2 研究现状 (1)1.3 课题研究内容 (1)1.4 本文章节安排 (1)1.5 本章小结 (2)2 核心技术简介 (3)2.1 S2SH技术简介 (3)2.2 Struts2框架简介 (3)2.3 Spring框架简介 (4)2.4 Hibernate框架简介 (4)2.5 JBPM流程管理技术简介 (5)2.6 jQuery技术简介 (6)2.7 本章小结 (7)3 请假系统需求分析 (8)3.1 任务概述 (8)3.2 用户特点 (8)3.3 功能需求 (8)3.4 界面需求 (10)3.5 操作需求 (10)3.6 本章小结 (10)4 概要设计 (11)4.1 设计思想 (11)4.2 总体设计 (11)4.3 数据库结构说明 (11)4.4 流程设计 (13)4.5 本章小结 (13)5 详细设计 (14)5.1 数据库物理结构设计 (14)5.2 各功能模块详细设计 (14)5.3 本章小结 (18)6 具体实现 (19)6.1 系统开发与运行环境 (19)6.2 开发环境的搭建 (19)6.3 数据库系统实现 (27)6.4 DAO层实现 (28)6.5 Action层的实现 (28)7 总结 (36)1 前言1.1背景介绍近几年,我国校园网络建设取得了实质性的进展。
网络已经不再局限于单纯地提供信息服务,而是日益成为一个操作平台,为用户提供强大的服务功能。
在关注信息技术与课程教学整合的同时,学校日常工作也逐渐走上信息化的道路,结合软件系统,满足老师和学生的日常需求,是我们目前要考虑的问题。
jbpm4工作流详解

jbpm4⼯作流详解jBPM4的学习流程 1>jBPM4通过org.jbpm.pvm.internal.ant.JbpmDeployTask通过读取jbpm.cfg.xml中的JDBC数据连接信息 2>对jbpm4的数据库表简单介绍 3>通过ProcessEngine类的贯穿来获取服务接⼝(Service API)来认识所有的常⽤类 4>对流程定义语⾔中活动⼏个常⽤的介绍 5>事件的介绍 JBPM:部署流程定义 jBPM4通过org.jbpm.pvm.internal.ant.JbpmDeployTask通过读取jbpm.cfg.xml中的JDBC数据连接信息直接将业务流程部署到数据库中。
它不仅可以部署单个业务流程,也可以部署⼀组业务流程归档到服务器上。
jbpm⾸先扫描业务流程归档中所有以.jpdl.xml结尾的⽂件,并解析,然后⽤来发起流程实例,业务流程归档中所有其他资源也会在部署过程中被持久化到数据库中。
所有这些资源被统⼀编号保存在数据库表jbpm4_lob中我们可以通过jbpm4提供的RepositoryService.getResourceAsStream API随时访问这些资源。
jbpm4的数据库表简单介绍JBPM4_DEPLOYMENT 流程定义表 JBPM4_DEPLOYPROP 流程定义属性表JBPM4_EXECUTION 流程实例表 JBPM4_HIST_ACTINST 流程活动(节点)实例表JBPM4_HIST_DETAIL 流程历史详细表JBPM4_HIST_PROCINST 流程实例历史表JBPM4_HIST_TASK 流程任务实例历史表 JBPM4_HIST_VAR 流程变量(上下⽂)历史表JBPM4_ID_GROUP ⾓⾊表 JBPM4_ID_MEMBERSHIP ⽤户⾓⾊表 JBPM4_ID_USER ⽤户表 JBPM4_JOB 定时表 JBPM4_LOB 存储表JBPM4_PARTICIPATION 参与者表 JBPM4_SWIMLANE 泳道表 JBPM4_TASK 任务表 JBPM4_VARIABLE 上下⽂表(1)JBPM4_DEPLOYMENT、(2)JBPM4_DEPLOYPROP及(3)JBPM4_LOB:存储上传⼀个包含png和jpdl.xml的zip包的相关数据 jbpm4_deployment表多了⼀条记录 jbpm4_deployprop表多了四条记录,对应langid,pdid,pdkey,pdversion jbpm4_lob 表多了⼆条记录,保存流程图png图⽚和jpdl.xml (4)JBPM4_HIST_PROCINST与(5)JBPM4_HIST_ACTINST 分别存放的是Process Instance、Activity Instance的历史记录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
jBPM4.4一、什么是jBPMJBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。
同时它还能被部署在任何一款JAVA应用服务器上。
java Business Process Management :工作流,工作流引擎注:记得j小写,因为j代表java,与Log4j中j一样工作流管理系统不止一中,如还有Intaliol BPMS …但JBoss jBPM灵活性且扩展性高。
jBPM项目于2002.3由Tom Baeyens 发起,2003.12发布1.0版本,2004年10.18发布2.0,并在这天加入了JBOSS组织-→被RedHat公司二、能干什么提供工作流的实现,帮助更好的进行BPM三、jBPM有什么,简介jBPM的Service API 各种服务1:ProcessEngine:流程引擎。
并不负责具体的业务,而是用于获取各种Service。
2:RepositoryService:流程资源服务的接口,如流程定义发布、查询、删除等。
3:ExecutionService:用于操作流程实例的服务,可以进行流程实例发布、查询、流程推进、设置流程变量等操作。
4:TaskService:用于操作人工任务的服务,可以进行任务创建、查询、获取、提交完成、保存、删除等操作。
5:HistoryService:用于操作流程历史的服务,提供对流程历史库(就是已经完成的流程实例)的操作。
比如:历史流程实例,历史活动实例等。
6:IdentityService:用于操作用户、用户组以及成员关系的服务7:ManagementService:流程管理控制服务的接口,只提供异步工作(Job)相关的执行和查询操作。
四、Myeclipse8.5 搭配开发环境1.jbpm-4.4.zip 下载完2.myeclipse→help→Myeclipse Configuration Center →add…….3.找到\jbpm-4.4\install\src\gpd\jbpm-gpd-site.zip 安装这个插件4.记得不要联网安装,不要选source文件5.安装完后window→JBoss jBPM→runtime Location→add 添加jbpm的路径6.添加lib下所有jar包,如果你使用的是tomcat6.0则:要把Juel-api.jar ,juel-impl.jar,juel-engine.jar 拷到tomcat lib 下并把原来的el-api.jar删掉项目中就不要再导上面三个包五、修改配置文件1、将example中的下列配置文件拷贝到java项目的src目录下:jBPM.cfg.xml、jBPM.hibernate.cfg.xml、jBPM.mail.properties、jBPM.mail.templates.xml、process_forms.css2、在以上配置文件中的jBPM.hibernate.cfg.xml,实际上就是我们熟悉的hibernate.cfg.xml,这里,要修改为连接我们的数据库。
<propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><propertyname="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><property name="ername">test</property><property name="connection.password">test</property><property name="dialect">org.hibernate.dialect.Oracle9iDialect</property>3、在这里还需要强调,其中的一个配置:<property name="hibernate.hbm2ddl.auto">create-drop</property>如果这个配置存在的话,那么每次操作数据库都会把原来的数据表干掉,然后重新建立。
所以,我们在第一次访问数据库的时候打开它,以后则关闭。
六、工作方式采用xml定义流程方式,这Xml代码既可以直接放在java中,也可以单独存在一个xml文件中,然后我们对其进行解析。
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(“<xml>…”)ProcessDefinition.parseXmlResource("helloWorld.xml");七、JPDL学习JPDL(JBPM Process Definition Language)是构建于jBPM框架上的流程语言之一。
JPDL详细定义了这个状态图的每个部分,如: 开始、结束状态,状态之间的转换等。
这种语言的定义对于用户来说比较容易理解,也比较容易对其进行扩展。
一个JBPM的流程定义XML文件中包含一个< process-definition>元素,而一个< process-definition>元素又包含零个或一个< description>元素,零个或多个的< swimlane>元素,一个< start-state>元素,零个或多个的< state>元素或< decision>元素或< fork>元素或< join>元素,以及零个或多个的< action>元素,零个或多个<task-node>和<node>元素,一个< end-state>元素等等。
此外,< process definition>元素有一个标示符,以“name”属性来表示,这个属性必须存在,用来表示该流程的名称。
在jPDL中提供了任务(tasks)、待处理状态(wait states)、计时器(timers)、自动处理(automated actions)…等术语,并通过图型化的流程定义,很直观地描述业务流程。
总结:可以理解为一个产生XML的图形化设计建模软件。
八、流程定义(ProcessDefinition)就是对一个流程抽象的对象化定义。
一套系统中,用户可以定义并保存多个流程定义实体,如:报销流程定义、请假流程定义、人事录用流程定义等。
流程节点:是对流程中的过程环节/行为的抽象对象化定义。
结点有两个主要职责:一,实现某个指定行为,这在jBPM中就是执行一段制定的Java代码;二,传递、维持流程的延续,直至达到最终结点。
流程实例(ProcessInstance):流程实例是流程定义的运行时状态,它记录了一个流程运行的起始时间、结束时间等状态信息。
任务实例(Task):用来描述一个任务实例对象,可以分配给指定的操作者处理,当任务完成后,将触发流程继续向下流转。
任务实例的生命周期很简单,生成实例-->处理-->任务结束。
九、ProcessEngine流程引擎工作流软件的核心,负责装载并解释过程定义、控制过程实例、安排活动上面的代码演示了如何通过classpath根目录下默认的配置文件jbpm.cfg.xml创建一个//2.第二种发布的方式,发布打包的zip文件repositoryService.createDeployment().addResourcesFromZipInputStre am(zipInputStream).deploy();//拿到已经发布的所有流程List<ProcessDefinition> lists =processEngine.getRepositoryService().createProcessDefinitionQuery().l ist();注: 在流程发布的时候流程引擎会吧一个ID分配给流程定义。
这个ID的格式为{key}-{version}如果没哟指定key则引擎会再流程的名称基础上自动生成,其实将不是字母和数字的字符替换成下划线。
然后我们就可以检索流程定义了!十一、启动流程//第一种:processEngine.getExecutionService().startProcessInstanceById(Proc essId,map);这里processId是已经发布的流程定义Id,我们告诉jBPM我们启动哪个流程,而map是作为我们向下传递数据的map封装。
这里主要是确定开始申请节点的名称//第二种:key就是流程的名称如我们发布了一个MyProcess.zip流程executionService.startProcessInstanceByKey("MyProcess",map);分析quaApplyAdd方法:十二、流程下发pleteProcessById(taskIdString, "task", "分公司级飞管标准专员审核报批", map);十三、任务列表(Worklists)List<Task> tasks =processEngine.getTaskService().createTaskQuery().list();for(Task t :tasks){System.out.println(t.getActivityName());//当前节点System.out.println(t.getId()); //System.out.println(t.getAssignee());//发起者System.out.println(t.getCreateTime());System.out.println(t.getName());}过程执行中需要用户交互的地方,工作流引擎把任务添加到任务表中,以便任务表处理器对其处理,任务表处理器管理与工作流参与者的交互。
用户自己从任务表中选择执行任务,任务表也用来指示任务的完成。
十四、任务操作ProcessEngine processEngine = Configuration.getProcessEngine();TaskService taskService = processEngine.getTaskService();String taskId = “70003”;//这个是流程运行中生成的任务idMap map = new HashMap();map.put("dmResult", 1);map.put("days", 15);pleteTask(taskId,map);//任务下发十五、历史操作ProcessEngine engine = Configuration.getProcessEngine();HistoryService hs = engine.getHistoryService();List<HistoryProcessInstance> list =hs.createHistoryProcessInstanceQuery().list();for(HistoryProcessInstance hpi : list){System.out.println("state="+hpi.getState()+" ,pdid=”+hpi.getProcessDefinitionId()+",piid=”+hpi.getProcessInstanceId()+",startTime="+hpi.getStartTime());}Start活动:Start活动的意义在于指定了一个流程实例应该从哪来开始,即流程定义的入口。