`

完整工作流JBPM项目实战全过程教程1---准备工作

阅读更多

      偶然机会,认识了工作流系统,并且在www.open-open.com(相当不错的开源项目站点,极力推荐!)上了解了些相当出色的工作流系统,不过呼声最高的应该属JBoss 的JBPM工作流组件了。

    正好有个项目需要用到工作流机制,遂学习了下JBPM,感受了下JBPM带来的的便捷体验。现在我就把我的学习经历记录下来。和大家共同分享,也希望对那些刚研究JBPM的同仁们有所帮助。

     ok,那就开始吧!

一。对于没有接触过JBPM的,可以先了解下JBPM应用场合,和JBPM的相关概念。我想如下这些东西将对你的JBPM学习很有帮助。

   1。JBPM开发指南.pdf---------http://dl2.csdn.net/fd.php?i=12492886032537&s=020d83ba442aba86919657b97e51a699----对JBPM中的配置进行了比较详细的阐述。

   2。还有就是大师级人物--陈刚 的教程http://www.blogjava.net/chengang/archive/2006/07/13/57986.html

,不过,这个教程只是简单的介绍了下JBPM的使用。对于初次接触JBPM的学习者来说,是个很好的选择。它将让你对JBPM有个较清晰的认识。

   3。还有就是传智播客的一套关于JBPM的视频,verycd上就可以search到。这里就不给地址了。自己动手找找吧。

   好了,如果你对JBPM有些认识了,那就开始来做个Struts+Hibernate+Spring+JBPM的文章审批系统吧。

 

首先介绍下该系统具体做些什么吧!

          用户在该系统中发表文章,然后请求发布,该文章需要经过层层审批,再确定是否能发布。就像一个出版社中,当要出版一篇文章,需要经过 一级审批,二级审批,三级审批.......最终确定发表该文章。需要说明的是,为了体现JBPM对流程的适配的特性,我们做的系统会定义4个不同的流程来展示JBPM的这一特性。对于不同的流程,系统会自动按照不同的流程定义文件来执行。

         准备工作:

  该系统的数据库环境为MySQL,如果要在其他数据库上完成也很简单,只需要在目标数据库建立起JBPM的表结构和业务表就可以,这里,就可以参考前面陈刚老师的教程了。就不再赘述了(如果需要可到附件中获得)。业务表建表语句如下:

/*==============================================================*/
/* Table: Article                                               */
/*==============================================================*/
create table Article
(
   ArticleNo            int AUTO_INCREMENT not null comment '文章号',
   UserNo               int comment '用户号',
   TypeNo               int comment '文章类型号',
   ArticleName          varchar(128) comment '文章名称',
   Content              text comment '文章内容',
   PiId                 bigint comment '对应流程实例号',
   AuditState           varchar(64) comment '审批状态',
   AuditComment         varchar(255) comment '审批说明',
   State                int comment '文章状态',
   primary key (ArticleNo)
);

alter table Article comment '文章表';

/*==============================================================*/
/* Table: ArticleType                                           */
/*==============================================================*/
create table ArticleType
(
   TypeNo               int AUTO_INCREMENT not null comment '文章类型号',
   PdName               varchar(255) comment '流程名称',
   TypeName             varchar(40) comment '类型名称',
   primary key (TypeNo)
);

alter table ArticleType comment '文章类型表';

/*==============================================================*/
/* Table: User                                                  */
/*==============================================================*/
create table User
(
   UserNo               int AUTO_INCREMENT not null comment '用户号',
   DutyNo               int comment '职责号',
   LoginName            varchar(50) not null comment '账号',
   Password             varchar(32) comment '密码',
   UserName             varchar(50) comment '姓名',
   primary key (UserNo)
);

alter table User comment '用户表';

/*==============================================================*/
/* Table: UserDuty                                              */
/*==============================================================*/
create table UserDuty
(
   DutyNo               int AUTO_INCREMENT not null comment '职责号',
   Name                 varchar(255) comment '名称',
   DutyType             varchar(20) comment '职责类型',
   DutyValue            varchar(64) comment '职责值',
   primary key (DutyNo)
);

alter table UserDuty comment '用户职责表';

alter table Article add constraint FK_Relationship_1 foreign key (TypeNo)
      references ArticleType (TypeNo) on delete restrict on update restrict;

alter table Article add constraint FK_Relationship_2 foreign key (UserNo)
      references User (UserNo) on delete restrict on update restrict;

alter table User add constraint FK_Relationship_3 foreign key (DutyNo)
      references UserDuty (DutyNo) on delete restrict on update restrict;

insert  into `userduty`(`DutyNo`,`Name`,`DutyType`,`DutyValue`)
   values (1,'管理员','管理员','管理员');
insert  into `userduty`(`DutyNo`,`Name`,`DutyType`,`DutyValue`)
   values (2,'普通用户','普通用户','普通用户');
insert  into `userduty`(`DutyNo`,`Name`,`DutyType`,`DutyValue`)
   values (3,'一级审批员','审批员','一级审批');
insert  into `userduty`(`DutyNo`,`Name`,`DutyType`,`DutyValue`)
   values (4,'二级审批员','审批员','二级审批');
insert  into `userduty`(`DutyNo`,`Name`,`DutyType`,`DutyValue`)
   values (5,'三级审批员','审批员','三级审批');
insert  into `userduty`(`DutyNo`,`Name`,`DutyType`,`DutyValue`)
   values (6,'四级审批员','审批员','四级审批');
insert  into `user`(`UserNo`,`DutyNo`,`LoginName`,`Password`,`UserName`)
   values (1,1,'manager','manager','管理员');
insert  into `user`(`UserNo`,`DutyNo`,`LoginName`,`Password`,`UserName`)
   values (2,2,'guest','guest','普通用户');
insert  into `user`(`UserNo`,`DutyNo`,`LoginName`,`Password`,`UserName`)
   values (3,3,'one','one','一级审批员');
insert  into `user`(`UserNo`,`DutyNo`,`LoginName`,`Password`,`UserName`)
   values (4,4,'two','two','二级审批员');
insert  into `user`(`UserNo`,`DutyNo`,`LoginName`,`Password`,`UserName`)
   values (5,5,'three','three','三级审批员');
insert  into `user`(`UserNo`,`DutyNo`,`LoginName`,`Password`,`UserName`)
   values (6,6,'four','four','四级审批员');

 (建表文件请附件下载)

 

OK,今天到此为止,需要休息了,明天续。。。 

  • sql.rar (4 KB)
  • 描述: 建表语句
  • 下载次数: 1517
分享到:
评论
10 楼 telen_itcyc 2014-09-26  
                     
9 楼 selarey 2009-03-06  
写的不错啊,正在研究OA,需要用到。
8 楼 ★无名★ 2009-03-06  
入门看尚学堂的OA吧 里面JBPM讲的还算详细,传智的那个太垃圾 什么都没讲就拿出来做广告来了,要不就是拿不出手!
7 楼 jackyrong 2008-12-10  
楼主,你这个文是参考了elipse整合web开发一书来写的吧,最后一章讲jbpm的
6 楼 walk123 2008-12-04  
真的很不错,不知道楼主有没有什么关于JBPM的好书推荐呢?在网上搜资料,找得很累.
5 楼 tzh306 2008-10-30  
真的好需要这样的资料呀,谢谢了.先下下来再慢慢看.
4 楼 h521999 2008-10-30  
写的不错,对于我这样初学JBPM者,很适合!
3 楼 qjzhyf 2008-10-28  
好东西啊。好东西。收藏一下。感谢LZ
2 楼 Run 2008-10-28  
下集呢?
1 楼 DreamOne 2008-10-27  
期特,楼主下集

相关推荐

    完整工作流JBPM项目实战全过程教程2---项目详细讲解

    【标题】"完整工作流JBPM项目实战全过程教程2---项目详细讲解"涉及的主要知识点是JBPM(Java Business Process Management)的工作流程管理以及如何在实际项目中应用。JBPM是一个开源的工作流管理系统,用于设计、...

    完整工作流JBPM项目实战全过程教程3----项目后续DIY

    在本教程中,我们将深入探讨基于JBPM的工作流项目实战全过程,特别关注“项目后续DIY”阶段。JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了全面的业务流程管理和工作流自动化功能...

    JBPM开发实战教程

    通过本教程的学习,读者可以全面了解JBPM的基本概念、安装配置过程以及如何基于JBPM开发实际项目中的工作流应用。无论是初学者还是有一定经验的开发者,都能够从中获得有价值的信息和技术指导。希望读者能够在实践中...

    jbpm实战讲解.pdf

    ### JBPM实战讲解知识点概述 #### 一、JBPM概览与重要性 JBPM,全称为Java Business Process Management,是JBoss旗下的一款强大的工作流和业务流程管理框架。它旨在帮助企业通过自动化业务流程,提高效率和灵活性...

    JBPM工作流演示系统使用说明

    JBPM工作流演示系统,作为一个专注于JBPM技术的初级开发实例,旨在帮助新手快速理解JBPM的工作原理及其在实际项目中的应用方式。该系统通过一个具体的场景——请假流程管理,来展示工作流引擎在企业级应用中的集成与...

    JBPM案例详解(全)

    JBPM不仅包含了工作流引擎,还包括任务服务、规则服务、事件服务等组件,形成了一套完整的流程管理框架。 二、JBPM核心概念 1. 工作流模型:使用BPMN 2.0语言定义流程,包括开始事件、结束事件、任务、网关、事件等...

    《轻量级Java EE企业应用实战(第3版)》中简单工作流系统源码

    3. **工作流引擎**:可能使用了如Activiti或Jbpm等开源工作流引擎,它们提供了一套完整的流程定义和执行机制,使得工作流的创建和管理变得简单。 4. **数据库设计**:理解数据库表结构和实体类之间的关系,包括用户...

    JBPM的文档例子说明详细

    - **实战教程**: 通过实际项目演练,加深对JBPM的理解和应用能力。 - **社区支持**: 论坛和GitHub上的社区活跃,可以找到很多问题的解决方案。 总之,JBPM作为一款强大的业务流程管理工具,可以帮助企业实现流程...

    最新Java-培训大纲.pdf

    授课方式采用Case-Project-Evolution(CPE教学法),通过案例学习、项目开发和项目改进,让学员逐步掌握软件开发的全过程,提高实战能力。 综上所述,这份Java培训大纲提供了全面而深度的Java学习路径,旨在培养出...

    Java学习路线图文.pdf

    Java学习路线涵盖从初级入门到企业级项目开发的全过程,旨在帮助初学者系统地掌握Java技术。以下将根据提供的内容,详细阐述各个阶段的学习重点和相关知识点。 **初级入门到Java基本开发阶段** 1. **Java视频培训...

    Java学习路线图(2).pdf

    Shiro作为权限框架,JBPM4用于工作流开发,这些技术增强了应用程序的安全性和流程控制。 在实用技术部分,路线图推荐了Ant和Maven作为项目管理和构建工具,JUnit进行单元测试,Log4j和Slf4j用于日志记录,以及...

Global site tag (gtag.js) - Google Analytics