1、创建公文流转相关的实体类,并创建数据库表
2、根据对用例的分析,初步建立公文流转相关的接口
3、实现接口
- 集成JBPM到OA系统(第一步:创建数据库表)
◆拷贝相关的依赖包到WEB-INF/lib下面(bsh.jar/ jcr-1.0.jar/ jbpm-identity.jar/ jbpm-jpdl.jar)
◆修改hibernate.cfg.xml,添加JBPM的映射配置,以及缓存属性的配置
◆因为JBPM中的User对象与OA系统中的User对象名称上有冲突,所以需要,修改OA系统中User映射的auto-import属性为"false"。(参考User.hbm.xml)
◆当修改了User映射的auto-import="false"之后,需要在查询User对象的时候,使用其全路径类名(请参考UserManagerImpl.java)
◆启动Tomcat,应能正确创建JBPM的所有数据库表
- 集成JBPM到OA系统(第二步:与Spring集成)
◆JBPM与Spring整合,需要用到第三方的集成包:spring-modules-0.8.zip
◆将其中的spring-modules-jbpm31.jar拷贝到WEB-INF/lib下面即可
◆JBPM与Spring整合的方法是:将JbpmConfiguration对象的创建交给Spring来完成
◆所以,JBPM与Spring整合需要在spring配置文件中配置JbpmConfiguration对象的创建
配置JbmpConfiguration
- <bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
- <property name="configuration" value="classpath:jbpm.cfg.xml">
- property>
- bean>
◆这时候,需要jbpm.cfg.xml,这是JBPM的配置文件,我们可以从:JBPM_HOME\src\jpdl\org\jbpm目录下拷贝default.jbpm.cfg.xml文件,并重新命名为jbpm.cfg.xml
- 集成JBPM到OA系统(第三步:如何实现业务逻辑类,请参考WorkflowManagerImpl.java)
◆用到jbpmConfiguration对象的时候,需要注入
<property name="jbpmConfiguration" ref="jbpmConfiguration"></property>
◆当我们使用JbpmContext对象来操纵JBPM的时候,需要将JbpmContext的HibernateSession对象设置为当前的HibernateSession对象
- private JbpmContext getContext(){
- JbpmContext context = jbpmConfiguration.createJbpmContext();
- context.setSession(getSession());
- return context;
- }
流程的定义
流程的定义建议使用jBPM提供的eclipse下的插件,图形化配置插件安装文件可以到jbpm-starters-kit-3.1.4\jbpm-designer\jbpm-gpd-feature\eclipse下找到,需注意版本。使用这种方式可以把定义的流程描述的三个文件压缩成zip包,统一的部署到数据库中,方便b/s系统中显示图片当前节点信息。
1插件安装
把jbpm-gpd-feature文件夹复制到C:\Program Files\MyEclipse-6.0M1\eclipse\plugins下,注意自己的ecplise路径。
在C:\Program Files\MyEclipse-6.0M1\eclipse\links文件夹下建立jbpm-gpd.link文件。内容如下:path=C:\\Program Files\\MyEclipse-6.0M1\\eclipse\\plugins\\jbpm-gpd-feature。
这样再重新启动eclipse就可以使用流程定义功能了。
2流程的定义
在Eclipse环境中选择file->new->other下的jboss jbpm->process definition流程定义。要在自己的项目文件中先指定文件要创建的文件夹。
这样会产生三个文件:gpd.xml、processdefinition.xml、processimage.jpg。
processimage.jpg文件是定义流程产生的图片、gpd.xml文件是图形文件的座标说明。用于在b/s下显示流程流转的图片位置。