在Spring应用中引入Jbpm4开发应用

1.       执行创建的脚本

create table JBPM4_DEPLOYMENT (

        DBID_ bigint not null auto_increment,

        NAME_ longtext,

        TIMESTAMP_ bigint,

        STATE_ varchar(255),

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_DEPLOYPROP (

        DBID_ bigint not null auto_increment,

        DEPLOYMENT_ bigint,

        OBJNAME_ varchar(255),

        KEY_ varchar(255),

        STRINGVAL_ varchar(255),

        LONGVAL_ bigint,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_EXECUTION (

        DBID_ bigint not null auto_increment,

        CLASS_ varchar(255) not null,

        DBVERSION_ integer not null,

        ACTIVITYNAME_ varchar(255),

        PROCDEFID_ varchar(255),

        HASVARS_ bit,

        NAME_ varchar(255),

        KEY_ varchar(255),

        ID_ varchar(255) unique,

        STATE_ varchar(255),

        SUSPHISTSTATE_ varchar(255),

        PRIORITY_ integer,

        HISACTINST_ bigint,

        PARENT_ bigint,

        INSTANCE_ bigint,

        SUPEREXEC_ bigint,

        SUBPROCINST_ bigint,

        PARENT_IDX_ integer,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_HIST_ACTINST (

        DBID_ bigint not null auto_increment,

        CLASS_ varchar(255) not null,

        DBVERSION_ integer not null,

        HPROCI_ bigint,

        TYPE_ varchar(255),

        EXECUTION_ varchar(255),

        ACTIVITY_NAME_ varchar(255),

        START_ datetime,

        END_ datetime,

        DURATION_ bigint,

        TRANSITION_ varchar(255),

        NEXTIDX_ integer,

        HTASK_ bigint,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_HIST_DETAIL (

        DBID_ bigint not null auto_increment,

        CLASS_ varchar(255) not null,

        DBVERSION_ integer not null,

        USERID_ varchar(255),

        TIME_ datetime,

        HPROCI_ bigint,

        HPROCIIDX_ integer,

        HACTI_ bigint,

        HACTIIDX_ integer,

        HTASK_ bigint,

        HTASKIDX_ integer,

        HVAR_ bigint,

        HVARIDX_ integer,

        MESSAGE_ longtext,

        OLD_INT_ integer,

        NEW_INT_ integer,

        OLD_STR_ varchar(255),

        NEW_STR_ varchar(255),

        OLD_TIME_ datetime,

        NEW_TIME_ datetime,

        PARENT_ bigint,

        PARENT_IDX_ integer,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_HIST_PROCINST (

        DBID_ bigint not null,

        DBVERSION_ integer not null,

        ID_ varchar(255),

        PROCDEFID_ varchar(255),

        KEY_ varchar(255),

        START_ datetime,

        END_ datetime,

        DURATION_ bigint,

        STATE_ varchar(255),

        ENDACTIVITY_ varchar(255),

        NEXTIDX_ integer,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_HIST_TASK (

        DBID_ bigint not null,

        DBVERSION_ integer not null,

        EXECUTION_ varchar(255),

        OUTCOME_ varchar(255),

        ASSIGNEE_ varchar(255),

        PRIORITY_ integer,

        STATE_ varchar(255),

        CREATE_ datetime,

        END_ datetime,

        DURATION_ bigint,

        NEXTIDX_ integer,

        SUPERTASK_ bigint,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_HIST_VAR (

        DBID_ bigint not null,

        DBVERSION_ integer not null,

        PROCINSTID_ varchar(255),

        EXECUTIONID_ varchar(255),

        VARNAME_ varchar(255),

        VALUE_ varchar(255),

        HPROCI_ bigint,

        HTASK_ bigint,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_ID_GROUP (

        DBID_ bigint not null auto_increment,

        DBVERSION_ integer not null,

        ID_ varchar(255),

        NAME_ varchar(255),

        TYPE_ varchar(255),

        PARENT_ bigint,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_ID_MEMBERSHIP (

        DBID_ bigint not null auto_increment,

        DBVERSION_ integer not null,

        USER_ bigint,

        GROUP_ bigint,

        NAME_ varchar(255),

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_ID_USER (

        DBID_ bigint not null auto_increment,

        DBVERSION_ integer not null,

        ID_ varchar(255),

        PASSWORD_ varchar(255),

        GIVENNAME_ varchar(255),

        FAMILYNAME_ varchar(255),

        BUSINESSEMAIL_ varchar(255),

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_JOB (

        DBID_ bigint not null auto_increment,

        CLASS_ varchar(255) not null,

        DBVERSION_ integer not null,

        DUEDATE_ datetime,

        STATE_ varchar(255),

        ISEXCLUSIVE_ bit,

        LOCKOWNER_ varchar(255),

        LOCKEXPTIME_ datetime,

        EXCEPTION_ longtext,

        RETRIES_ integer,

        PROCESSINSTANCE_ bigint,

        EXECUTION_ bigint,

        CFG_ bigint,

        SIGNAL_ varchar(255),

        EVENT_ varchar(255),

        REPEAT_ varchar(255),

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_LOB (

        DBID_ bigint not null auto_increment,

        DBVERSION_ integer not null,

        BLOB_VALUE_ longblob,

        DEPLOYMENT_ bigint,

        NAME_ longtext,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_PARTICIPATION (

        DBID_ bigint not null auto_increment,

        DBVERSION_ integer not null,

        GROUPID_ varchar(255),

        USERID_ varchar(255),

        TYPE_ varchar(255),

        TASK_ bigint,

        SWIMLANE_ bigint,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_SWIMLANE (

        DBID_ bigint not null auto_increment,

        DBVERSION_ integer not null,

        NAME_ varchar(255),

        ASSIGNEE_ varchar(255),

        EXECUTION_ bigint,

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_TASK (

        DBID_ bigint not null auto_increment,

        CLASS_ char(1) not null,

        DBVERSION_ integer not null,

        NAME_ varchar(255),

        DESCR_ longtext,

        STATE_ varchar(255),

        SUSPHISTSTATE_ varchar(255),

        ASSIGNEE_ varchar(255),

        FORM_ varchar(255),

        PRIORITY_ integer,

        CREATE_ datetime,

        DUEDATE_ datetime,

        PROGRESS_ integer,

        SIGNALLING_ bit,

        EXECUTION_ID_ varchar(255),

        ACTIVITY_NAME_ varchar(255),

        HASVARS_ bit,

        SUPERTASK_ bigint,

        EXECUTION_ bigint,

        PROCINST_ bigint,

        SWIMLANE_ bigint,

        TASKDEFNAME_ varchar(255),

        primary key (DBID_)

    ) type=InnoDB;

 

    create table JBPM4_VARIABLE (

        DBID_ bigint not null auto_increment,

        CLASS_ varchar(255) not null,

        DBVERSION_ integer not null,

        KEY_ varchar(255),

        CONVERTER_ varchar(255),

        HIST_ bit,

        EXECUTION_ bigint,

        TASK_ bigint,

        DATE_VALUE_ datetime,

        DOUBLE_VALUE_ double precision,

        LONG_VALUE_ bigint,

        STRING_VALUE_ varchar(255),

        TEXT_VALUE_ longtext,

        LOB_ bigint,

        EXESYS_ bigint,

        primary key (DBID_)

    ) type=InnoDB;

 

    create index IDX_DEPLPROP_DEPL on JBPM4_DEPLOYPROP (DEPLOYMENT_);

 

    alter table JBPM4_DEPLOYPROP

        add index FK_DEPLPROP_DEPL (DEPLOYMENT_),

        add constraint FK_DEPLPROP_DEPL

        foreign key (DEPLOYMENT_)

        references JBPM4_DEPLOYMENT (DBID_);

 

    create index IDX_EXEC_SUPEREXEC on JBPM4_EXECUTION (SUPEREXEC_);

 

    create index IDX_EXEC_INSTANCE on JBPM4_EXECUTION (INSTANCE_);

 

    create index IDX_EXEC_SUBPI on JBPM4_EXECUTION (SUBPROCINST_);

 

    create index IDX_EXEC_PARENT on JBPM4_EXECUTION (PARENT_);

 

    alter table JBPM4_EXECUTION

        add index FK_EXEC_PARENT (PARENT_),

        add constraint FK_EXEC_PARENT

        foreign key (PARENT_)

        references JBPM4_EXECUTION (DBID_);

 

    alter table JBPM4_EXECUTION

        add index FK_EXEC_SUBPI (SUBPROCINST_),

        add constraint FK_EXEC_SUBPI

        foreign key (SUBPROCINST_)

        references JBPM4_EXECUTION (DBID_);

 

    alter table JBPM4_EXECUTION

        add index FK_EXEC_INSTANCE (INSTANCE_),

        add constraint FK_EXEC_INSTANCE

        foreign key (INSTANCE_)

        references JBPM4_EXECUTION (DBID_);

 

    alter table JBPM4_EXECUTION

        add index FK_EXEC_SUPEREXEC (SUPEREXEC_),

        add constraint FK_EXEC_SUPEREXEC

        foreign key (SUPEREXEC_)

        references JBPM4_EXECUTION (DBID_);

 

    create index IDX_HACTI_HPROCI on JBPM4_HIST_ACTINST (HPROCI_);

 

    create index IDX_HTI_HTASK on JBPM4_HIST_ACTINST (HTASK_);

 

    alter table JBPM4_HIST_ACTINST

        add index FK_HACTI_HPROCI (HPROCI_),

        add constraint FK_HACTI_HPROCI

        foreign key (HPROCI_)

        references JBPM4_HIST_PROCINST (DBID_);

 

    alter table JBPM4_HIST_ACTINST

        add index FK_HTI_HTASK (HTASK_),

        add constraint FK_HTI_HTASK

        foreign key (HTASK_)

        references JBPM4_HIST_TASK (DBID_);

 

    create index IDX_HDET_HACTI on JBPM4_HIST_DETAIL (HACTI_);

 

    create index IDX_HDET_HPROCI on JBPM4_HIST_DETAIL (HPROCI_);

 

    create index IDX_HDETAIL_HACTI on JBPM4_HIST_DETAIL (HACTI_);

 

    create index IDX_HDETAIL_HVAR on JBPM4_HIST_DETAIL (HVAR_);

 

    create index IDX_HDETAIL_HTASK on JBPM4_HIST_DETAIL (HTASK_);

 

    create index IDX_HDETAIL_HPROCI on JBPM4_HIST_DETAIL (HPROCI_);

 

    create index IDX_HDET_HVAR on JBPM4_HIST_DETAIL (HVAR_);

 

    create index IDX_HDET_HTASK on JBPM4_HIST_DETAIL (HTASK_);

 

    alter table JBPM4_HIST_DETAIL

        add index FK_HDETAIL_HPROCI (HPROCI_),

        add constraint FK_HDETAIL_HPROCI

        foreign key (HPROCI_)

        references JBPM4_HIST_PROCINST (DBID_);

 

    alter table JBPM4_HIST_DETAIL

        add index FK_HDETAIL_HACTI (HACTI_),

        add constraint FK_HDETAIL_HACTI

        foreign key (HACTI_)

        references JBPM4_HIST_ACTINST (DBID_);

 

    alter table JBPM4_HIST_DETAIL

        add index FK_HDETAIL_HTASK (HTASK_),

        add constraint FK_HDETAIL_HTASK

        foreign key (HTASK_)

        references JBPM4_HIST_TASK (DBID_);

 

    alter table JBPM4_HIST_DETAIL

        add index FK_HDETAIL_HVAR (HVAR_),

        add constraint FK_HDETAIL_HVAR

        foreign key (HVAR_)

        references JBPM4_HIST_VAR (DBID_);

 

    alter table JBPM4_HIST_TASK

        add index FK_HSUPERT_SUB (SUPERTASK_),

        add constraint FK_HSUPERT_SUB

        foreign key (SUPERTASK_)

        references JBPM4_HIST_TASK (DBID_);

 

    create index IDX_HVAR_HPROCI on JBPM4_HIST_VAR (HPROCI_);

 

    create index IDX_HVAR_HTASK on JBPM4_HIST_VAR (HTASK_);

 

    alter table JBPM4_HIST_VAR

        add index FK_HVAR_HPROCI (HPROCI_),

        add constraint FK_HVAR_HPROCI

        foreign key (HPROCI_)

        references JBPM4_HIST_PROCINST (DBID_);

 

    alter table JBPM4_HIST_VAR

        add index FK_HVAR_HTASK (HTASK_),

        add constraint FK_HVAR_HTASK

        foreign key (HTASK_)

        references JBPM4_HIST_TASK (DBID_);

 

    create index IDX_GROUP_PARENT on JBPM4_ID_GROUP (PARENT_);

 

    alter table JBPM4_ID_GROUP

        add index FK_GROUP_PARENT (PARENT_),

        add constraint FK_GROUP_PARENT

        foreign key (PARENT_)

        references JBPM4_ID_GROUP (DBID_);

 

    create index IDX_MEM_USER on JBPM4_ID_MEMBERSHIP (USER_);

 

    create index IDX_MEM_GROUP on JBPM4_ID_MEMBERSHIP (GROUP_);

 

    alter table JBPM4_ID_MEMBERSHIP

        add index FK_MEM_GROUP (GROUP_),

        add constraint FK_MEM_GROUP

        foreign key (GROUP_)

        references JBPM4_ID_GROUP (DBID_);

 

    alter table JBPM4_ID_MEMBERSHIP

        add index FK_MEM_USER (USER_),

        add constraint FK_MEM_USER

        foreign key (USER_)

        references JBPM4_ID_USER (DBID_);

 

    create index IDX_JOBRETRIES on JBPM4_JOB (RETRIES_);

 

    create index IDX_JOB_CFG on JBPM4_JOB (CFG_);

 

    create index IDX_JOB_PRINST on JBPM4_JOB (PROCESSINSTANCE_);

 

    create index IDX_JOB_EXE on JBPM4_JOB (EXECUTION_);

 

    create index IDX_JOBLOCKEXP on JBPM4_JOB (LOCKEXPTIME_);

 

    create index IDX_JOBDUEDATE on JBPM4_JOB (DUEDATE_);

 

    alter table JBPM4_JOB

        add index FK_JOB_CFG (CFG_),

        add constraint FK_JOB_CFG

        foreign key (CFG_)

        references JBPM4_LOB (DBID_);

 

    create index IDX_LOB_DEPLOYMENT on JBPM4_LOB (DEPLOYMENT_);

 

    alter table JBPM4_LOB

        add index FK_LOB_DEPLOYMENT (DEPLOYMENT_),

        add constraint FK_LOB_DEPLOYMENT

        foreign key (DEPLOYMENT_)

        references JBPM4_DEPLOYMENT (DBID_);

 

    create index IDX_PART_TASK on JBPM4_PARTICIPATION (TASK_);

 

    alter table JBPM4_PARTICIPATION

        add index FK_PART_SWIMLANE (SWIMLANE_),

        add constraint FK_PART_SWIMLANE

        foreign key (SWIMLANE_)

        references JBPM4_SWIMLANE (DBID_);

 

    alter table JBPM4_PARTICIPATION

        add index FK_PART_TASK (TASK_),

        add constraint FK_PART_TASK

        foreign key (TASK_)

        references JBPM4_TASK (DBID_);

 

    create index IDX_SWIMLANE_EXEC on JBPM4_SWIMLANE (EXECUTION_);

 

    alter table JBPM4_SWIMLANE

        add index FK_SWIMLANE_EXEC (EXECUTION_),

        add constraint FK_SWIMLANE_EXEC

        foreign key (EXECUTION_)

        references JBPM4_EXECUTION (DBID_);

 

    create index IDX_TASK_SUPERTASK on JBPM4_TASK (SUPERTASK_);

 

    alter table JBPM4_TASK

        add index FK_TASK_SWIML (SWIMLANE_),

        add constraint FK_TASK_SWIML

        foreign key (SWIMLANE_)

        references JBPM4_SWIMLANE (DBID_);

 

    alter table JBPM4_TASK

        add index FK_TASK_SUPERTASK (SUPERTASK_),

        add constraint FK_TASK_SUPERTASK

        foreign key (SUPERTASK_)

        references JBPM4_TASK (DBID_);

 

    create index IDX_VAR_EXESYS on JBPM4_VARIABLE (EXESYS_);

 

    create index IDX_VAR_TASK on JBPM4_VARIABLE (TASK_);

 

    create index IDX_VAR_EXECUTION on JBPM4_VARIABLE (EXECUTION_);

 

    create index IDX_VAR_LOB on JBPM4_VARIABLE (LOB_);

 

    alter table JBPM4_VARIABLE

        add index FK_VAR_LOB (LOB_),

        add constraint FK_VAR_LOB

        foreign key (LOB_)

        references JBPM4_LOB (DBID_);

 

    alter table JBPM4_VARIABLE

        add index FK_VAR_EXECUTION (EXECUTION_),

        add constraint FK_VAR_EXECUTION

        foreign key (EXECUTION_)

        references JBPM4_EXECUTION (DBID_);

 

    alter table JBPM4_VARIABLE

        add index FK_VAR_EXESYS (EXESYS_),

        add constraint FK_VAR_EXESYS

        foreign key (EXESYS_)

        references JBPM4_EXECUTION (DBID_);

 

    alter table JBPM4_VARIABLE

        add index FK_VAR_TASK (TASK_),

        add constraint FK_VAR_TASK

        foreign key (TASK_)

        references JBPM4_TASK (DBID_);

 

 


 

 

2.       加入依赖的jar包

Jbpm.jar

 

配置自己的Mysql 库

如在src下或其他源代码目录下,放置

 

Jpbm.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>

 

<jbpm-configuration>

  <import resource="jbpm.default.cfg.xml" />

  <import resource="jbpm.tx.hibernate.cfg.xml" />

  <import resource="jbpm.jpdl.cfg.xml" />

  <import resource="jbpm.identity.cfg.xml" />

</jbpm-configuration>

 


 

Jbpm.hibernate.cfg.xml

 

<?xml version="1.0" encoding="utf-8"?>

 

<!DOCTYPE hibernate-configuration PUBLIC

          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

  <session-factory>

     <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

     <property name="hibernate.connection.url">jdbc:mysql://localhost/eoffice?useUnicode=true&amp;characterEncoding=utf-8</property>

     <property name="hibernate.connection.username">root</property>

     <property name="hibernate.connection.password">000</property>

     <property name="hibernate.format_sql">true</property>

     <mapping resource="jbpm.repository.hbm.xml" />

     <mapping resource="jbpm.execution.hbm.xml" />

     <mapping resource="jbpm.history.hbm.xml" />

     <mapping resource="jbpm.task.hbm.xml" />

     <mapping resource="jbpm.identity.hbm.xml" />

  </session-factory>

</hibernate-configuration>

 



 

扩展流程中的角色与用户为自己系统中的用户及角色。

 

AppUser实体需要扩展org.jbpm.api.identity.User接口

AppRole实体需要扩展org.jbpm.api.identity.Group接口

 

实现自己系统中的IdentityService接口

 

如写一个类(UserSession)实现org.jbpm.pvm.internal.identity.spi.IdentitySession这个接口。

 

public class UserSession implements IdentitySession{

      

        //仅需要扩展以下方法即可

 

         //---------------------------------methods above are not need overwrite--------------------------------------------

  

    @Override

    public Group findGroupById(String groupId) {

       // TODO Auto-generated method stub

       return null;

    }

 

    @Override

    public List<Group> findGroupsByUser(String arg0) {

       // TODO Auto-generated method stub

       return null;

    }

 

    @Override

    public List<Group> findGroupsByUserAndGroupType(String arg0, String arg1) {

       // TODO Auto-generated method stub

       return null;

    }

 

    @Override

    public User findUserById(String arg0) {

       // TODO Auto-generated method stub

       return null;

    }

 

    @Override

    public List<User> findUsers() {

       // TODO Auto-generated method stub

       return null;

    }

 

    @Override

    public List<User> findUsersByGroup(String arg0) {

       // TODO Auto-generated method stub

       return null;

    }

 

    @Override

    public List<User> findUsersById(String... arg0) {

       // TODO Auto-generated method stub

       return null;

   }

}

 


加入用户及组的系统扩展实现配置。

Jbpm.identity.cfg.xml

 

<?xml version="1.0" encoding="UTF-8"?>

 

<jbpm-configuration>

  <transaction-context>

     <object class="com.htsoft.core.jbpm.UserSession"/>

  </transaction-context>

</jbpm-configuration>

 



 

 

配置Jbpm.xml的Spring配置文件

<?xml version="1.0" encoding="UTF-8"?>

 

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation=" http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"

    default-lazy-init="true">

  

    <bean id="jbpmConfiguration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration">

        <constructor-arg value="jbpm.cfg.xml" />

    </bean>

  

    <bean id="processEngine" factory-bean="jbpmConfiguration" factory-method="buildProcessEngine" />

    <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />

    <bean id="executionService" factory-bean="processEngine" factory-method="getExecutionService" />

    <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService"/>

    <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService"/>

    <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService"/>

  

    <!--

    <bean id="jbpmTemplate" class="com.bmsoft.jbpm.spring.JbpmTemplate">

       <property name="processEngine" ref="processEngine"/>

       <property name="proDefinitionService" ref="proDefinitionService"/>

       <property name="dataSource" ref="dataSource"/>

    </bean>

     -->

</beans>

 


如下,在此则可以完成在Spring程序中引入Jpbm4的开发应用,后面取可以进行应用流程发布,表单会签等的操作了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值